]> code.ossystems Code Review - openembedded-core.git/commitdiff
classes/testsdk: Add function run_test_context
authorAníbal Limón <limon.anibal@gmail.com>
Sun, 31 Jan 2016 01:58:29 +0000 (19:58 -0600)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Wed, 10 Feb 2016 15:51:03 +0000 (15:51 +0000)
This helper functions will be serve as well to run extensible
sdk tests so generalize it to get function context as arg.

Signed-off-by: Aníbal Limón <limon.anibal@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
meta/classes/testsdk.bbclass

index ba8897e5eae27f5f609cc478f6a85cca96a98821..88057e5a2eb66a429cd6b766de5da14c752c46d2 100644 (file)
@@ -5,13 +5,40 @@
 TEST_LOG_DIR ?= "${WORKDIR}/testimage"
 TESTSDKLOCK = "${TMPDIR}/testsdk.lock"
 
+def run_test_context(CTestContext, d, testdir, tcname, pn):
+    import glob
+    import time
+
+    targets = glob.glob(d.expand(testdir + "/tc/environment-setup-*"))
+    for sdkenv in targets:
+        bb.plain("Testing %s" % sdkenv)
+        tc = CTestContext(d, testdir, sdkenv)
+
+        # this is a dummy load of tests
+        # we are doing that to find compile errors in the tests themselves
+        # before booting the image
+        try:
+            tc.loadTests()
+        except Exception as e:
+            import traceback
+            bb.fatal("Loading tests failed:\n%s" % traceback.format_exc())
+
+        starttime = time.time()
+        result = tc.runTests()
+        stoptime = time.time()
+        if result.wasSuccessful():
+            bb.plain("%s SDK(%s):%s - Ran %d test%s in %.3fs" % (pn, os.path.basename(tcname), os.path.basename(sdkenv),result.testsRun, result.testsRun != 1 and "s" or "", stoptime - starttime))
+            msg = "%s - OK - All required tests passed" % pn
+            skipped = len(result.skipped)
+            if skipped:
+                msg += " (skipped=%d)" % skipped
+            bb.plain(msg)
+        else:
+            raise bb.build.FuncFailed("%s - FAILED - check the task log and the commands log" % pn )
+
 def testsdk_main(d):
-    import unittest
     import os
-    import glob
-    import oeqa.runtime
     import oeqa.sdk
-    import time
     import subprocess
     from oeqa.oetest import SDKTestContext
 
@@ -31,32 +58,7 @@ def testsdk_main(d):
         bb.fatal("Couldn't install the SDK:\n%s" % e.output)
 
     try:
-        targets = glob.glob(d.expand(sdktestdir + "/tc/environment-setup-*"))
-        for sdkenv in targets:
-            bb.plain("Testing %s" % sdkenv)
-            tc = SDKTestContext(d, sdktestdir, sdkenv)
-
-            # this is a dummy load of tests
-            # we are doing that to find compile errors in the tests themselves
-            # before booting the image
-            try:
-                tc.loadTests()
-            except Exception as e:
-                import traceback
-                bb.fatal("Loading tests failed:\n%s" % traceback.format_exc())
-
-            starttime = time.time()
-            result = tc.runTests()
-            stoptime = time.time()
-            if result.wasSuccessful():
-                bb.plain("%s SDK(%s):%s - Ran %d test%s in %.3fs" % (pn, os.path.basename(tcname), os.path.basename(sdkenv),result.testsRun, result.testsRun != 1 and "s" or "", stoptime - starttime))
-                msg = "%s - OK - All required tests passed" % pn
-                skipped = len(result.skipped)
-                if skipped:
-                    msg += " (skipped=%d)" % skipped
-                bb.plain(msg)
-            else:
-                raise bb.build.FuncFailed("%s - FAILED - check the task log and the commands log" % pn )
+        run_test_context(SDKTestContext, d, sdktestdir, tcname, pn)
     finally:
         bb.utils.remove(sdktestdir, True)