ext: Add post_test_procedure to testlib runner

This procedure is trigger after a test has finished and before
the tearing down process kicks in.

Change-Id: I58ce10814fbc80d96f2f72565491b18de0ec290a
Signed-off-by: Hoa Nguyen <hoanguyen@ucdavis.edu>
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/33997
Tested-by: kokoro <noreply+kokoro@google.com>
Reviewed-by: Jason Lowe-Power <power.jg@gmail.com>
Maintainer: Jason Lowe-Power <power.jg@gmail.com>
diff --git a/ext/testlib/fixture.py b/ext/testlib/fixture.py
index 79b57c0..bcd22d9 100644
--- a/ext/testlib/fixture.py
+++ b/ext/testlib/fixture.py
@@ -70,6 +70,9 @@
     def setup(self, testitem):
         pass
 
+    def post_test_procedure(self, testitem):
+        pass
+
     def teardown(self, testitem):
         pass
 
diff --git a/ext/testlib/runner.py b/ext/testlib/runner.py
index a59aca3..ee658c9 100644
--- a/ext/testlib/runner.py
+++ b/ext/testlib/runner.py
@@ -128,6 +128,7 @@
             self.testable.status = Status.Running
             self.test()
         finally:
+            self.builder.post_test_procedure(self.testable)
             self.testable.status = Status.TearingDown
             self.builder.teardown(self.testable)
 
@@ -209,6 +210,10 @@
                 raise BrokenFixtureException(fixture, testitem,
                         traceback.format_exc())
 
+    def post_test_procedure(self, testitem):
+        for fixture in self.built_fixtures:
+            fixture.post_test_procedure(testitem)
+
     def teardown(self, testitem):
         for fixture in self.built_fixtures:
             try: