Unuse resources after every test

Fix bug in put_all(). That method was unused before this commit.

Clean the process list after the processes are stopped,
otherwise the suite eventually fails with a 'process terminated
prematurely' error. Before it was not necessary because it was not
reused (a new suite run was created).

Change-Id: Iee12866045145544076c6c18786e1a54f18fc293
diff --git a/src/osmo_gsm_tester/resource.py b/src/osmo_gsm_tester/resource.py
index dbfc4e0..8eec71e 100644
--- a/src/osmo_gsm_tester/resource.py
+++ b/src/osmo_gsm_tester/resource.py
@@ -508,11 +508,11 @@
                     my_item.pop(USED_KEY)
 
     def put_all(self):
+        if not self.reserved:
+            return
         for key, item_list in self.reserved.items():
-            my_list = self.get(key)
-            for my_item in my_list:
-                if my_item.get(USED_KEY):
-                    my_item.pop(USED_KEY)
+            for item in item_list:
+                item.pop(USED_KEY, None)
 
     def free(self):
         if self.reserved:
diff --git a/src/osmo_gsm_tester/suite.py b/src/osmo_gsm_tester/suite.py
index c78c9fc..f4b9260 100644
--- a/src/osmo_gsm_tester/suite.py
+++ b/src/osmo_gsm_tester/suite.py
@@ -256,6 +256,9 @@
                     continue
                 self.current_test = test
                 test.run()
+                self.stop_processes()
+                self.objects_cleanup()
+                self.reserved_resources.put_all()
         except Exception:
             log.log_exn()
         except BaseException as e:
@@ -303,10 +306,8 @@
         self._processes.insert(0, process)
 
     def stop_processes(self):
-        if not self._processes:
-            return
-        for process in self._processes:
-            process.terminate()
+        while self._processes:
+            self._processes.pop().terminate()
 
     def free_resources(self):
         if self.reserved_resources is None: