[OE-core] [PATCH] oe-selftest: timestamp the test runs

Ross Burton ross.burton at intel.com
Tue Jun 23 16:31:52 UTC 2015


The selftest can take a couple of hours to run, so add a custom result class to
timestamp the output to make it easy to spot any slow tests.

Signed-off-by: Ross Burton <ross.burton at intel.com>
---
 scripts/oe-selftest | 13 ++++++++++++-
 1 file changed, 12 insertions(+), 1 deletion(-)

diff --git a/scripts/oe-selftest b/scripts/oe-selftest
index a04e9fc..fd58a66 100755
--- a/scripts/oe-selftest
+++ b/scripts/oe-selftest
@@ -176,7 +176,7 @@ def main():
         suite = unittest.TestSuite()
         loader = unittest.TestLoader()
         loader.sortTestMethodsUsing = None
-        runner = unittest.TextTestRunner(verbosity=2)
+        runner = unittest.TextTestRunner(verbosity=2, resultclass=StampedResult)
         # we need to do this here, otherwise just loading the tests
         # will take 2 minutes (bitbake -e calls)
         oeSelfTest.testlayer_path = get_test_layer()
@@ -196,6 +196,17 @@ def main():
         else:
             return 1
 
+class StampedResult(unittest.TextTestResult):
+    """
+    Custom TestResult that prints the time when a test starts.  As oe-selftest
+    can take a long time (ie a few hours) to run, timestamps help us understand
+    what tests are taking a long time to execute.
+    """
+    def startTest(self, test):
+        import time
+        self.stream.write(time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()) + " - ")
+        super(StampedResult, self).startTest(test)
+
 if __name__ == "__main__":
     try:
         ret = main()
-- 
2.1.4




More information about the Openembedded-core mailing list