diff options
author | Pau Espin Pedrol <pespin@sysmocom.de> | 2020-05-06 18:35:26 +0200 |
---|---|---|
committer | Pau Espin Pedrol <pespin@sysmocom.de> | 2020-05-06 18:49:31 +0200 |
commit | ab1904a307b531dbd1c738ef04eeeeb68f9920b3 (patch) | |
tree | 665d524265171d0e977633f4c29536b9174d8364 /selftest/template_test | |
parent | 636f560dc2f26d303a0bdb7115744cb402159131 (diff) |
selftest: Move tests into own subdirectories
Change-Id: Id21cda19df131e24402e1a593036e1e33a914920
Diffstat (limited to 'selftest/template_test')
l--------- | selftest/template_test/_prep.py | 1 | ||||
-rw-r--r-- | selftest/template_test/template_test.err | 0 | ||||
-rw-r--r-- | selftest/template_test/template_test.ok | 193 | ||||
-rwxr-xr-x | selftest/template_test/template_test.py | 95 |
4 files changed, 289 insertions, 0 deletions
diff --git a/selftest/template_test/_prep.py b/selftest/template_test/_prep.py new file mode 120000 index 0000000..9cea3fe --- /dev/null +++ b/selftest/template_test/_prep.py @@ -0,0 +1 @@ +../_prep.py
\ No newline at end of file diff --git a/selftest/template_test/template_test.err b/selftest/template_test/template_test.err new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/selftest/template_test/template_test.err diff --git a/selftest/template_test/template_test.ok b/selftest/template_test/template_test.ok new file mode 100644 index 0000000..88b77b0 --- /dev/null +++ b/selftest/template_test/template_test.ok @@ -0,0 +1,193 @@ +- Testing: fill a config file with values +cnf Templates: DBG: rendering osmo-nitb.cfg.tmpl +! Configuration rendered by osmo-gsm-tester +password foo +! +log stderr + logging filter all 1 + logging color 1 + logging print category 1 + logging print extended-timestamp 1 + logging level set-all debug +! +line vty + no login + bind val_ip_address +! +e1_input + e1_line 0 driver ipa + ipa bind val_ip_address +network + network country code val_mcc + mobile network code val_mnc + short name val_short_name + long name val_long_name + auth policy val_auth_policy + location updating reject cause 13 + encryption val_encryption + neci 1 + rrlp mode none + mm info 1 + handover 0 + handover window rxlev averaging 10 + handover window rxqual averaging 1 + handover window rxlev neighbor averaging 10 + handover power budget interval 6 + handover power budget hysteresis 3 + handover maximum distance 9999 + bts 0 + type val_type_bts0 + band val_band_bts0 + cell_identity val_bts.cell_identity_bts0 + location_area_code val_bts.location_area_code_bts0 + training_sequence_code 7 + base_station_id_code val_bts.base_station_id_code_bts0 + ms max power 33 + cell reselection hysteresis 4 + rxlev access min 0 + channel allocator ascending + rach tx integer 9 + rach max transmission 7 + ip.access unit_id val_bts.unit_id_bts0 0 + oml ip.access stream_id val_bts.stream_id_bts0 line 0 + gprs mode gprs + gprs routing area val_bts.routing_area_code_bts0 + gprs network-control-order nc1 + gprs cell bvci val_bts.bvci_bts0 + gprs cell timer blocking-timer 3 + gprs cell timer blocking-retries 3 + gprs cell timer unblocking-retries 3 + gprs cell timer reset-timer 3 + gprs cell timer reset-retries 3 + gprs cell timer suspend-timer 10 + gprs cell timer suspend-retries 3 + gprs cell timer resume-timer 10 + gprs cell timer resume-retries 3 + gprs cell timer capability-update-timer 10 + gprs cell timer capability-update-retries 3 + gprs nsei val_bts.bvci_bts0 + gprs ns timer tns-block 3 + gprs ns timer tns-block-retries 3 + gprs ns timer tns-reset 3 + gprs ns timer tns-reset-retries 3 + gprs ns timer tns-test 30 + gprs ns timer tns-alive 3 + gprs ns timer tns-alive-retries 10 + gprs nsvc 0 nsvci val_bts.bvci_bts0 + gprs nsvc 0 local udp port 23020 + gprs nsvc 0 remote udp port 23000 + gprs nsvc 0 remote ip val_bts.sgsn_ip_addr_bts0 + trx 0 + rf_locked 0 + arfcn val_trx_arfcn_trx0 + nominal power val_trx_nominal_power_trx0 + max_power_red val_trx_max_power_red_trx0 + rsl e1 tei 0 + timeslot 0 + phys_chan_config val_phys_chan_config_0 + timeslot 1 + phys_chan_config val_phys_chan_config_1 + timeslot 2 + phys_chan_config val_phys_chan_config_2 + timeslot 3 + phys_chan_config val_phys_chan_config_3 + trx 1 + rf_locked 0 + arfcn val_trx_arfcn_trx1 + nominal power val_trx_nominal_power_trx1 + max_power_red val_trx_max_power_red_trx1 + rsl e1 tei 0 + timeslot 0 + phys_chan_config val_phys_chan_config_0 + timeslot 1 + phys_chan_config val_phys_chan_config_1 + timeslot 2 + phys_chan_config val_phys_chan_config_2 + timeslot 3 + phys_chan_config val_phys_chan_config_3 + bts 1 + type val_type_bts1 + band val_band_bts1 + cell_identity val_bts.cell_identity_bts1 + location_area_code val_bts.location_area_code_bts1 + training_sequence_code 7 + base_station_id_code val_bts.base_station_id_code_bts1 + ms max power 33 + cell reselection hysteresis 4 + rxlev access min 0 + channel allocator ascending + rach tx integer 9 + rach max transmission 7 + ip.access unit_id val_bts.unit_id_bts1 0 + oml ip.access stream_id val_bts.stream_id_bts1 line 0 + gprs mode gprs + gprs routing area val_bts.routing_area_code_bts1 + gprs network-control-order nc1 + gprs cell bvci val_bts.bvci_bts1 + gprs cell timer blocking-timer 3 + gprs cell timer blocking-retries 3 + gprs cell timer unblocking-retries 3 + gprs cell timer reset-timer 3 + gprs cell timer reset-retries 3 + gprs cell timer suspend-timer 10 + gprs cell timer suspend-retries 3 + gprs cell timer resume-timer 10 + gprs cell timer resume-retries 3 + gprs cell timer capability-update-timer 10 + gprs cell timer capability-update-retries 3 + gprs nsei val_bts.bvci_bts1 + gprs ns timer tns-block 3 + gprs ns timer tns-block-retries 3 + gprs ns timer tns-reset 3 + gprs ns timer tns-reset-retries 3 + gprs ns timer tns-test 30 + gprs ns timer tns-alive 3 + gprs ns timer tns-alive-retries 10 + gprs nsvc 0 nsvci val_bts.bvci_bts1 + gprs nsvc 0 local udp port 23020 + gprs nsvc 0 remote udp port 23000 + gprs nsvc 0 remote ip val_bts.sgsn_ip_addr_bts1 + trx 0 + rf_locked 0 + arfcn val_trx_arfcn_trx0 + nominal power val_trx_nominal_power_trx0 + max_power_red val_trx_max_power_red_trx0 + rsl e1 tei 0 + timeslot 0 + phys_chan_config val_phys_chan_config_0 + timeslot 1 + phys_chan_config val_phys_chan_config_1 + timeslot 2 + phys_chan_config val_phys_chan_config_2 + timeslot 3 + phys_chan_config val_phys_chan_config_3 + trx 1 + rf_locked 0 + arfcn val_trx_arfcn_trx1 + nominal power val_trx_nominal_power_trx1 + max_power_red val_trx_max_power_red_trx1 + rsl e1 tei 0 + timeslot 0 + phys_chan_config val_phys_chan_config_0 + timeslot 1 + phys_chan_config val_phys_chan_config_1 + timeslot 2 + phys_chan_config val_phys_chan_config_2 + timeslot 3 + phys_chan_config val_phys_chan_config_3 +smpp + local-tcp-ip val_ip_address 2775 + system-id test-nitb + policy val_smsc_policy + esme val_system_id_esme0 + password val_password_esme0 + default-route + esme val_system_id_esme1 + no password + default-route +ctrl + bind val_ip_address + +- Testing: expect to fail on invalid templates dir +sucess: setting non-existing templates dir raised RuntimeError + diff --git a/selftest/template_test/template_test.py b/selftest/template_test/template_test.py new file mode 100755 index 0000000..747d508 --- /dev/null +++ b/selftest/template_test/template_test.py @@ -0,0 +1,95 @@ +#!/usr/bin/env python3 + +import _prep + +import sys +import os + +from osmo_gsm_tester.core import template, log + +log.set_level(log.C_CNF, log.L_DBG) + +print('- Testing: fill a config file with values') + +mock_timeslot_list=( + { 'phys_chan_config': 'val_phys_chan_config_0' }, + { 'phys_chan_config': 'val_phys_chan_config_1' }, + { 'phys_chan_config': 'val_phys_chan_config_2' }, + { 'phys_chan_config': 'val_phys_chan_config_3' }, + ) + +mock_bts = { + 'osmobsc_bts_type': 'val_type', + 'band': 'val_band', + 'location_area_code': 'val_bts.location_area_code', + 'routing_area_code': 'val_bts.routing_area_code', + 'cell_identity': 'val_bts.cell_identity', + 'bvci': 'val_bts.bvci', + 'base_station_id_code': 'val_bts.base_station_id_code', + 'ipa_unit_id': 'val_bts.unit_id', + 'stream_id': 'val_bts.stream_id', + 'sgsn': (dict(ip_address=dict(addr='val_bts.sgsn_ip_addr'))), + 'trx_list': ( + dict(arfcn='val_trx_arfcn_trx0', + nominal_power='val_trx_nominal_power_trx0', + max_power_red='val_trx_max_power_red_trx0', + timeslot_list=mock_timeslot_list), + dict(arfcn='val_trx_arfcn_trx1', + nominal_power='val_trx_nominal_power_trx1', + max_power_red='val_trx_max_power_red_trx1', + timeslot_list=mock_timeslot_list), + ) +} + +mock_esme = { + 'system_id': 'val_system_id', + 'password': 'val_password' +} + +def clone_mod(d, val_ext): + c = dict(d) + for name in c.keys(): + if isinstance(c[name], str): + c[name] = c[name] + val_ext + elif isinstance(c[name], dict): + c[name] = clone_mod(c[name], val_ext) + return c + +mock_bts0 = clone_mod(mock_bts, '_bts0') +mock_bts1 = clone_mod(mock_bts, '_bts1') + +mock_esme0 = clone_mod(mock_esme, '_esme0') +mock_esme1 = clone_mod(mock_esme, '_esme1') +mock_esme1['password'] = '' + +vals = dict(nitb=dict( + net=dict( + mcc='val_mcc', + mnc='val_mnc', + short_name='val_short_name', + long_name='val_long_name', + auth_policy='val_auth_policy', + encryption='val_encryption', + bts_list=(mock_bts0, mock_bts1) + ), + ip_address=dict(addr='val_ip_address'), + ), + smsc=dict( + policy='val_smsc_policy', + esme_list=(mock_esme0, mock_esme1) + ), + ) + +print(template.render('osmo-nitb.cfg', vals)) + +print('- Testing: expect to fail on invalid templates dir') +try: + template.set_templates_dir('non-existing dir') + sys.stderr.write('Error: setting non-existing templates dir should raise RuntimeError\n') + assert(False) +except RuntimeError: + # not logging exception to omit non-constant path name from expected output + print('sucess: setting non-existing templates dir raised RuntimeError\n') + pass + +# vim: expandtab tabstop=4 shiftwidth=4 |