various fixes from first test runs
Change-Id: Ifa5a780dc0123aa84273c57c726c8c1bea563495
diff --git a/src/osmo-gsm-tester.py b/src/osmo-gsm-tester.py
index 80fec4f..b6e22f1 100755
--- a/src/osmo-gsm-tester.py
+++ b/src/osmo-gsm-tester.py
@@ -115,6 +115,9 @@
if combination_strs:
print('Running default suites:\n ' + ('\n '.join(combination_strs)))
+ else:
+ print('No default suites configured (%r)' % config.DEFAULT_SUITES_CONF)
+
if not combination_strs:
raise RuntimeError('Need at least one suite:scenario or series to run')
diff --git a/src/osmo_gsm_tester/bts_osmotrx.py b/src/osmo_gsm_tester/bts_osmotrx.py
index 5880870..cff63ab 100644
--- a/src/osmo_gsm_tester/bts_osmotrx.py
+++ b/src/osmo_gsm_tester/bts_osmotrx.py
@@ -51,7 +51,10 @@
self.configure()
self.inst = util.Dir(os.path.abspath(self.suite_run.trial.get_inst('osmo-bts-trx')))
- self.env = { 'LD_LIBRARY_PATH': str(self.inst) }
+ lib = self.inst.child('lib')
+ if not os.path.isdir(lib):
+ raise RuntimeError('No lib/ in %r' % self.inst)
+ self.env = { 'LD_LIBRARY_PATH': lib }
self.launch_process(OsmoBtsTrx.BIN_TRX)
self.launch_process(OsmoBtsTrx.BIN_BTS_TRX, '-r', '1', '-c', os.path.abspath(self.config_file))
diff --git a/src/osmo_gsm_tester/config.py b/src/osmo_gsm_tester/config.py
index 6275a47..cbbfa6f 100644
--- a/src/osmo_gsm_tester/config.py
+++ b/src/osmo_gsm_tester/config.py
@@ -61,9 +61,9 @@
DEFAULT_CONFIG_LOCATIONS = [
'.',
- os.path.join(os.getenv('HOME'), '.config', 'osmo_gsm_tester'),
- '/usr/local/etc/osmo_gsm_tester',
- '/etc/osmo_gsm_tester'
+ os.path.join(os.getenv('HOME'), '.config', 'osmo-gsm-tester'),
+ '/usr/local/etc/osmo-gsm-tester',
+ '/etc/osmo-gsm-tester'
]
PATHS_CONF = 'paths.conf'
@@ -81,7 +81,7 @@
PATHS = None
-def get_config_file(basename, fail_if_missing=True):
+def _get_config_file(basename, fail_if_missing=True):
if ENV_CONF:
locations = [ ENV_CONF ]
else:
@@ -90,17 +90,23 @@
for l in locations:
p = os.path.join(l, basename)
if os.path.isfile(p):
- return p
+ return (p, l)
if not fail_if_missing:
- return None
+ return None, None
raise RuntimeError('configuration file not found: %r in %r' % (basename,
[os.path.abspath(p) for p in locations]))
+def get_config_file(basename, fail_if_missing=True):
+ path, found_in = _get_config_file(basename, fail_if_missing)
+ return path
+
def read_config_file(basename, validation_schema=None, if_missing_return=False):
fail_if_missing = True
if if_missing_return is not False:
fail_if_missing = False
path = get_config_file(basename, fail_if_missing=fail_if_missing)
+ if path is None:
+ return if_missing_return
return read(path, validation_schema=validation_schema, if_missing_return=if_missing_return)
def get_configured_path(label, allow_unset=False):
@@ -112,8 +118,11 @@
return env_path
if PATHS is None:
- paths_file = get_config_file(PATHS_CONF)
+ paths_file, found_in = _get_config_file(PATHS_CONF)
PATHS = read(paths_file, PATHS_SCHEMA)
+ for key, path in PATHS.items():
+ if not path.startswith(os.pathsep):
+ PATHS[key] = os.path.join(found_in, path)
p = PATHS.get(label)
if p is None and not allow_unset:
raise RuntimeError('missing configuration in %s: %r' % (PATHS_CONF, label))
diff --git a/src/osmo_gsm_tester/osmo_nitb.py b/src/osmo_gsm_tester/osmo_nitb.py
index 3d5fc6a..7cdc124 100644
--- a/src/osmo_gsm_tester/osmo_nitb.py
+++ b/src/osmo_gsm_tester/osmo_nitb.py
@@ -43,11 +43,14 @@
self.log('Starting osmo-nitb')
self.run_dir = util.Dir(self.suite_run.trial.get_run_dir().new_dir(self.name()))
self.configure()
- inst = util.Dir(self.suite_run.trial.get_inst('openbsc'))
- binary = os.path.abspath(inst.child('bin', 'osmo-nitb'))
+ inst = util.Dir(os.path.abspath(self.suite_run.trial.get_inst('osmo-nitb')))
+ binary = inst.child('bin', 'osmo-nitb')
if not os.path.isfile(binary):
raise RuntimeError('Binary missing: %r' % binary)
- env = { 'LD_LIBRARY_PATH': os.path.abspath(str(inst)) }
+ lib = inst.child('lib')
+ if not os.path.isdir(lib):
+ raise RuntimeError('No lib/ in %r' % inst)
+ env = { 'LD_LIBRARY_PATH': lib }
self.dbg(run_dir=self.run_dir, binary=binary, env=env)
self.process = process.Process(self.name(), self.run_dir,
(binary, '-c',
diff --git a/src/osmo_gsm_tester/trial.py b/src/osmo_gsm_tester/trial.py
index a938971..0a882f8 100644
--- a/src/osmo_gsm_tester/trial.py
+++ b/src/osmo_gsm_tester/trial.py
@@ -50,7 +50,7 @@
def __init__(self, trial_dir):
self.path = trial_dir
- self.set_name(self.path)
+ self.set_name(os.path.basename(self.path))
self.set_log_category(log.C_TST)
self.dir = util.Dir(self.path)
self.inst_dir = util.Dir(self.dir.child('inst'))
@@ -133,7 +133,7 @@
def get_inst(self, bin_name):
bin_tar = self.has_bin_tar(bin_name)
if not bin_tar:
- return None
+ raise RuntimeError('No such binary available: %r' % bin_name)
inst_dir = self.inst_dir.child(bin_name)
if os.path.isdir(inst_dir):