Bobby R. Bruce has uploaded this change for review. ( https://gem5-review.googlesource.com/c/public/gem5/+/53343 )

Change subject: tests,ext: Log test time taken in TestLib verbose output
......................................................................

tests,ext: Log test time taken in TestLib verbose output

With this patch the user can obtain the time taken, in seconds, when
using the `-vv` flag.

Note: These are not _exact_ time measurements as they are taken through
the message handler (not directly when tests are stopped and started),
but they should be accurate enough for most purposes.

Change-Id: I57b92d6be1159f126182e12871ce2b700705617a
---
M ext/testlib/handlers.py
1 file changed, 31 insertions(+), 3 deletions(-)



diff --git a/ext/testlib/handlers.py b/ext/testlib/handlers.py
index fa7aea9..95ac32d 100644
--- a/ext/testlib/handlers.py
+++ b/ext/testlib/handlers.py
@@ -267,6 +267,10 @@
             log.LibraryMessage.type_id: self.handle_librarymessage,
         }

+        # A Dictionary for storing test start times, used to calculate the
+ # total execution time of a test. Key = test name; value = start time.
+        self._start_time_dict = {}
+
     def _display_outcome(self, name, outcome, reason=None):
         print(self.color.Bold
                  + SummaryHandler.colormap[outcome]
@@ -283,13 +287,21 @@

     def handle_teststatus(self, record):
         if record['status'] == state.Status.Running:
+            self._start_time_dict[record['metadata'].name] = time.time()
             log.test_log.debug('Starting Test Case: %s' %\
                     record['metadata'].name)

     def handle_testresult(self, record):
-        self._display_outcome(
-            'Test: %s'  % record['metadata'].name,
-            record['result'].value)
+        name = record['metadata'].name
+        self._display_outcome('Test: %s'  % name,record['result'].value)
+
+        if name in self._start_time_dict.keys():
+            time_taken = (
+ time.time() - self._start_time_dict[record['metadata'].name]
+            )
+            log.test_log.debug(
+                f"Test {name} completed in {time_taken:.2f} seconds"
+            )

     def handle_suitestatus(self, record):
         if record['status'] == state.Status.Running:

--
To view, visit https://gem5-review.googlesource.com/c/public/gem5/+/53343
To unsubscribe, or for help writing mail filters, visit https://gem5-review.googlesource.com/settings

Gerrit-Project: public/gem5
Gerrit-Branch: develop
Gerrit-Change-Id: I57b92d6be1159f126182e12871ce2b700705617a
Gerrit-Change-Number: 53343
Gerrit-PatchSet: 1
Gerrit-Owner: Bobby R. Bruce <bbr...@ucdavis.edu>
Gerrit-MessageType: newchange
_______________________________________________
gem5-dev mailing list -- gem5-dev@gem5.org
To unsubscribe send an email to gem5-dev-le...@gem5.org
%(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s

Reply via email to