summaryrefslogtreecommitdiffstats
path: root/scripts/automation/regression/outer_packages.py
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/automation/regression/outer_packages.py')
-rwxr-xr-xscripts/automation/regression/outer_packages.py56
1 files changed, 42 insertions, 14 deletions
diff --git a/scripts/automation/regression/outer_packages.py b/scripts/automation/regression/outer_packages.py
index f55c247d..bec9fe21 100755
--- a/scripts/automation/regression/outer_packages.py
+++ b/scripts/automation/regression/outer_packages.py
@@ -11,28 +11,56 @@ PATH_TO_PYTHON_LIB = os.path.abspath(os.path.join(TREX_PATH, 'external_libs'))
PATH_TO_CTRL_PLANE = os.path.abspath(os.path.join(TREX_PATH, 'automation', 'trex_control_plane'))
PATH_STL_API = os.path.abspath(os.path.join(PATH_TO_CTRL_PLANE, 'stl'))
-NIGHTLY_MODULES = ['ansi2html',
- 'enum34-1.0.4',
- 'nose-1.3.4',
- 'rednose-0.4.1',
- 'progressbar-2.2',
- 'termstyle',
- 'dpkt-1.8.6',
- 'yaml-3.11',
+
+NIGHTLY_MODULES = [ {'name': 'ansi2html'},
+ {'name': 'enum34-1.0.4'},
+ {'name': 'rednose-0.4.1'},
+ {'name': 'progressbar-2.2'},
+ {'name': 'termstyle'},
+ {'name': 'pyyaml-3.11', 'py-dep': True},
+ {'name': 'nose-1.3.4', 'py-dep': True}
]
+
+def generate_module_path (module, is_python3, is_64bit, is_cel):
+ platform_path = [module['name']]
+
+ if module.get('py-dep'):
+ platform_path.append('python3' if is_python3 else 'python2')
+
+ if module.get('arch-dep'):
+ platform_path.append('cel59' if is_cel else 'fedora18')
+ platform_path.append('64bit' if is_64bit else '32bit')
+
+ return os.path.normcase(os.path.join(PATH_TO_PYTHON_LIB, *platform_path))
+
+
+def import_module_list(modules_list):
+
+ # platform data
+ is_64bit = platform.architecture()[0] == '64bit'
+ is_python3 = (sys.version_info >= (3, 0))
+ is_cel = os.path.exists('/etc/system-profile')
+
+ # regular modules
+ for p in modules_list:
+ full_path = generate_module_path(p, is_python3, is_64bit, is_cel)
+
+ if not os.path.exists(full_path):
+ print("Unable to find required module library: '{0}'".format(p['name']))
+ print("Please provide the correct path using PATH_TO_PYTHON_LIB variable")
+ print("current path used: '{0}'".format(full_path))
+ exit(0)
+
+ sys.path.insert(1, full_path)
+
+
def import_nightly_modules ():
sys.path.append(TREX_PATH)
sys.path.append(PATH_TO_CTRL_PLANE)
sys.path.append(PATH_STL_API)
import_module_list(NIGHTLY_MODULES)
-def import_module_list (modules_list):
- assert(isinstance(modules_list, list))
- for p in modules_list:
- full_path = os.path.join(PATH_TO_PYTHON_LIB, p)
- fix_path = os.path.normcase(full_path) #CURRENT_PATH+p)
- sys.path.insert(1, full_path)
import_nightly_modules()