From cce89c44948ee66ad0abb491be57e270038270e4 Mon Sep 17 00:00:00 2001 From: Ross Burton Date: Mon, 22 Jun 2015 17:20:42 +0100 Subject: oe-selftest: timestamp the test runs 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 --- scripts/oe-selftest | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/scripts/oe-selftest b/scripts/oe-selftest index a04e9fc96c..fd58a66123 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() -- cgit 1.2.3-korg