pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/22042 )
Change subject: enb,ue,process: move stdout counter helper to process objects ...................................................................... enb,ue,process: move stdout counter helper to process objects this patch adds the stdout counter to count events happening on the stdout (known from the UE already) to the common process class so they can also be used from the eNB (and other objects) In addition, we add a PRACH counter to be used for tests. Change-Id: I434f072b8aa6f4dce9f90889c6b40832f6798ff8 --- M src/osmo_gsm_tester/core/process.py M src/osmo_gsm_tester/obj/enb.py M src/osmo_gsm_tester/obj/enb_amarisoft.py M src/osmo_gsm_tester/obj/enb_srs.py M src/osmo_gsm_tester/obj/ms_srs.py M src/osmo_gsm_tester/obj/srslte_common.py 6 files changed, 31 insertions(+), 17 deletions(-) Approvals: pespin: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/osmo_gsm_tester/core/process.py b/src/osmo_gsm_tester/core/process.py index bac258a..e305c64 100644 --- a/src/osmo_gsm_tester/core/process.py +++ b/src/osmo_gsm_tester/core/process.py @@ -164,6 +164,15 @@ self.outputs[name] = (path, f) return f + def get_counter_stdout(self, keyword): + # Match stdout against keyword + n = 0 + stdout_lines = (self.get_stdout() or '').splitlines() + for l in stdout_lines: + if keyword in l: + n += 1 + return n + def launch(self): preexec_fn = None log.dbg('cd %r; %s %s' % ( diff --git a/src/osmo_gsm_tester/obj/enb.py b/src/osmo_gsm_tester/obj/enb.py index 3944459..d2e48a6 100644 --- a/src/osmo_gsm_tester/obj/enb.py +++ b/src/osmo_gsm_tester/obj/enb.py @@ -346,4 +346,8 @@ def addr(self): return self._run_node.run_addr() + @abstractmethod + def get_counter(self, counter_name): + pass + # vim: expandtab tabstop=4 shiftwidth=4 diff --git a/src/osmo_gsm_tester/obj/enb_amarisoft.py b/src/osmo_gsm_tester/obj/enb_amarisoft.py index ef28100..60985f4 100644 --- a/src/osmo_gsm_tester/obj/enb_amarisoft.py +++ b/src/osmo_gsm_tester/obj/enb_amarisoft.py @@ -247,6 +247,11 @@ def running(self): return not self.process.terminated() + def get_counter(self, counter_name): + if counter_name == 'prach_received': + return self.process.get_counter_stdout('PRACH:') + raise log.Error('counter %s not implemented!' % counter_name) + def get_rfemu(self, cell=0, dl=True): cell_list = self.gen_conf['enb'].get('cell_list', None) if cell_list is None or len(cell_list) < cell + 1: diff --git a/src/osmo_gsm_tester/obj/enb_srs.py b/src/osmo_gsm_tester/obj/enb_srs.py index 6afc873..bf988eb 100644 --- a/src/osmo_gsm_tester/obj/enb_srs.py +++ b/src/osmo_gsm_tester/obj/enb_srs.py @@ -258,6 +258,11 @@ def running(self): return not self.process.terminated() + def get_counter(self, counter_name): + if counter_name == 'prach_received': + return self.process.get_counter_stdout('RACH:') + raise log.Error('counter %s not implemented!' % counter_name) + def get_rfemu(self, cell=0, dl=True): cell_list = self.gen_conf['enb'].get('cell_list', None) if cell_list is None or len(cell_list) < cell + 1: diff --git a/src/osmo_gsm_tester/obj/ms_srs.py b/src/osmo_gsm_tester/obj/ms_srs.py index 610d3e6..2f19f3f 100644 --- a/src/osmo_gsm_tester/obj/ms_srs.py +++ b/src/osmo_gsm_tester/obj/ms_srs.py @@ -382,30 +382,21 @@ proc.launch_sync() return proc - def _get_counter_stdout(self, keyword): - # Match stdout against keyword - n = 0 - stdout_lines = (self.process.get_stdout() or '').splitlines() - for l in stdout_lines: - if keyword in l: - n += 1 - return n - def get_counter(self, counter_name): if counter_name == 'handover_success': - return self._get_counter_stdout('HO successful') + return self.process.get_counter_stdout('HO successful') if counter_name == 'prach_sent': - return self._get_counter_stdout('Random Access Transmission') + return self.process.get_counter_stdout('Random Access Transmission') if counter_name == 'paging_received': - return self._get_counter_stdout('S-TMSI match in paging message') + return self.process.get_counter_stdout('S-TMSI match in paging message') if counter_name == 'reestablishment_attempts': - return self._get_counter_stdout('RRC Connection Reestablishment') + return self.process.get_counter_stdout('RRC Connection Reestablishment') if counter_name == 'reestablishment_ok': - return self._get_counter_stdout('Reestablishment OK') + return self.process.get_counter_stdout('Reestablishment OK') if counter_name == 'rrc_connected_transitions': - return self._get_counter_stdout('RRC Connected') + return self.process.get_counter_stdout('RRC Connected') if counter_name == 'rrc_idle_transitions': - return self._get_counter_stdout('RRC IDLE') + return self.process.get_counter_stdout('RRC IDLE') raise log.Error('counter %s not implemented!' % counter_name) def verify_metric(self, value, operation='avg', metric='dl_brate', criterion='gt', window=1): diff --git a/src/osmo_gsm_tester/obj/srslte_common.py b/src/osmo_gsm_tester/obj/srslte_common.py index e221940..1d03a58 100644 --- a/src/osmo_gsm_tester/obj/srslte_common.py +++ b/src/osmo_gsm_tester/obj/srslte_common.py @@ -97,4 +97,4 @@ return analyzer.get_num_phy_errors(kpi) except ImportError: self.log("Can't load KPI analyzer module.") - return 0 \ No newline at end of file + return 0 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/22042 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gsm-tester Gerrit-Branch: master Gerrit-Change-Id: I434f072b8aa6f4dce9f90889c6b40832f6798ff8 Gerrit-Change-Number: 22042 Gerrit-PatchSet: 6 Gerrit-Owner: srs_andre <an...@softwareradiosystems.com> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin <pes...@sysmocom.de> Gerrit-MessageType: merged