classes/testsdk: Add function run_test_context

This helper functions will be serve as well to run extensible
sdk tests so generalize it to get function context as arg.

(From OE-Core rev: 51782e5f77cb3f32a31a221c6e0f9b33cf3a33c9)

Signed-off-by: Aníbal Limón <limon.anibal@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Aníbal Limón 2016-01-30 19:58:29 -06:00 committed by Richard Purdie
parent 3577c35f6e
commit f3c2ce2739
1 changed files with 33 additions and 31 deletions

View File

@ -5,13 +5,40 @@
TEST_LOG_DIR ?= "${WORKDIR}/testimage"
TESTSDKLOCK = "${TMPDIR}/testsdk.lock"
def testsdk_main(d):
import unittest
import os
def run_test_context(CTestContext, d, testdir, tcname, pn):
import glob
import oeqa.runtime
import oeqa.sdk
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 os
import oeqa.sdk
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)