osmo-gsm-tester/selftest/template_test.ok

194 lines
5.5 KiB
Plaintext
Raw Normal View History

- Testing: fill a config file with values
fix and refactor logging: drop 'with', simplify With the recent fix of the junit report related issues, another issue arose: the 'with log.Origin' was changed to disallow __enter__ing an object twice to fix problems, now still code would fail because it tries to do 'with' on the same object twice. The only reason is to ensure that logging is associated with a given object. Instead of complicating even more, implement differently. Refactor logging to simplify use: drop the 'with Origin' style completely, and instead use the python stack to determine which objects are created by which, and which object to associate a log statement with. The new way: we rely on the convention that each class instance has a local 'self' referencing the object instance. If we need to find an origin as a new object's parent, or to associate a log message with, we traverse each stack frame, fetching the first local 'self' object that is a log.Origin class instance. How to use: Simply call log.log() anywhere, and it finds an Origin object to log for, from the stack. Alternatively call self.log() for any Origin() object to skip the lookup. Create classes as child class of log.Origin and make sure to call super().__init__(category, name). This constructor will magically find a parent Origin on the stack. When an exception happens, we first escalate the exception up through call scopes to where ever it is handled by log.log_exn(). This then finds an Origin object in the traceback's stack frames, no need to nest in 'with' scopes. Hence the 'with log.Origin' now "happens implicitly", we can write pure natural python code, no more hassles with scope ordering. Furthermore, any frame can place additional logging information in a frame by calling log.ctx(). This is automatically inserted in the ancestry associated with a log statement / exception. Change-Id: I5f9b53150f2bb6fa9d63ce27f0806f0ca6a45e90
2017-06-09 23:18:27 +00:00
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