enb: add abstract method stop()

implement as noop for Amarisoft eNB, srsENB will send q+Enter to stdin,
which is implemented in class srslte_common()

Change-Id: Ide606e1a6b523997215aa2fa39d4d56ae1f49181
diff --git a/src/osmo_gsm_tester/obj/enb.py b/src/osmo_gsm_tester/obj/enb.py
index d2e48a6..50a8832 100644
--- a/src/osmo_gsm_tester/obj/enb.py
+++ b/src/osmo_gsm_tester/obj/enb.py
@@ -327,6 +327,10 @@
         pass
 
     @abstractmethod
+    def stop(self):
+        pass
+
+    @abstractmethod
     def ue_add(self, ue):
         pass
 
diff --git a/src/osmo_gsm_tester/obj/enb_amarisoft.py b/src/osmo_gsm_tester/obj/enb_amarisoft.py
index 60985f4..b7ede3b 100644
--- a/src/osmo_gsm_tester/obj/enb_amarisoft.py
+++ b/src/osmo_gsm_tester/obj/enb_amarisoft.py
@@ -130,6 +130,10 @@
         self.testenv.remember_to_stop(self.process)
         self.process.launch()
 
+    def stop(self):
+        # Not implemented
+        pass
+
     def gen_conf_file(self, path, filename, values):
         self.dbg('AmarisoftENB ' + filename + ':\n' + pprint.pformat(values))
         with open(path, 'w') as f:
diff --git a/src/osmo_gsm_tester/obj/enb_srs.py b/src/osmo_gsm_tester/obj/enb_srs.py
index bf988eb..aee3f61 100644
--- a/src/osmo_gsm_tester/obj/enb_srs.py
+++ b/src/osmo_gsm_tester/obj/enb_srs.py
@@ -119,6 +119,10 @@
         self.dbg('Enabling console trace')
         self.process.stdin_write('t\n')
 
+    def stop(self):
+        # Implemented in srslte_common.py
+        srslte_common.stop(self)
+
     def start_remotely(self):
         remote_env = { 'LD_LIBRARY_PATH': self.remote_inst.child('lib') }
         remote_binary = self.remote_inst.child('bin', srsENB.BINFILE)
diff --git a/src/osmo_gsm_tester/obj/srslte_common.py b/src/osmo_gsm_tester/obj/srslte_common.py
index 1d03a58..21001b7 100644
--- a/src/osmo_gsm_tester/obj/srslte_common.py
+++ b/src/osmo_gsm_tester/obj/srslte_common.py
@@ -36,6 +36,8 @@
             self.stop_sleep_time = 0
 
     def stop(self):
+        # Send q+Enter to stdin to self-terminate application
+        self.process.stdin_write('q\n')
         self.testenv.stop_process(self.process)
         self.sleep_after_stop()