oeqa/oetest: Remove bb as requirement for oetest.

In order for the test export runner to work oetest needs to be
separated from bitbake environment. There is no need to use bb
import here so we can use a logger instead.

(From OE-Core rev: 22bd8a600823306d7c5965a9a69b8e8888993513)

Signed-off-by: Lucian Musat <george.l.musat@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Lucian Musat 2015-09-23 18:40:25 +03:00 committed by Richard Purdie
parent d70c5cb9ca
commit f1e7fb0856

View File

@ -11,10 +11,16 @@ import os, re, mmap
import unittest import unittest
import inspect import inspect
import subprocess import subprocess
import bb try:
import bb
except ImportError:
pass
import logging
from oeqa.utils.decorators import LogResults, gettag from oeqa.utils.decorators import LogResults, gettag
from sys import exc_info, exc_clear from sys import exc_info, exc_clear
logger = logging.getLogger("BitBake")
def getVar(obj): def getVar(obj):
#extend form dict, if a variable didn't exists, need find it in testcase #extend form dict, if a variable didn't exists, need find it in testcase
class VarDict(dict): class VarDict(dict):
@ -89,7 +95,7 @@ def loadTests(tc, type="runtime"):
suite.dependencies.append(dep_suite) suite.dependencies.append(dep_suite)
break break
else: else:
bb.warn("Test %s was declared as @skipUnlessPassed('%s') but that test is either not defined or not active. Will run the test anyway." % logger.warning("Test %s was declared as @skipUnlessPassed('%s') but that test is either not defined or not active. Will run the test anyway." %
(test, depends_on)) (test, depends_on))
# Use brute-force topological sort to determine ordering. Sort by # Use brute-force topological sort to determine ordering. Sort by
# depth (higher depth = must run later), with original ordering to # depth (higher depth = must run later), with original ordering to
@ -114,19 +120,26 @@ def custom_verbose(msg, *args, **kwargs):
_buffer += msg _buffer += msg
else: else:
_buffer += msg _buffer += msg
try:
bb.plain(_buffer.rstrip("\n"), *args, **kwargs) bb.plain(_buffer.rstrip("\n"), *args, **kwargs)
except NameError:
logger.info(_buffer.rstrip("\n"), *args, **kwargs)
_buffer = "" _buffer = ""
def runTests(tc, type="runtime"): def runTests(tc, type="runtime"):
suite = loadTests(tc, type) suite = loadTests(tc, type)
bb.note("Test modules %s" % tc.testslist) logger.info("Test modules %s" % tc.testslist)
if hasattr(tc, "tagexp") and tc.tagexp: if hasattr(tc, "tagexp") and tc.tagexp:
bb.note("Filter test cases by tags: %s" % tc.tagexp) logger.info("Filter test cases by tags: %s" % tc.tagexp)
bb.note("Found %s tests" % suite.countTestCases()) logger.info("Found %s tests" % suite.countTestCases())
runner = unittest.TextTestRunner(verbosity=2) runner = unittest.TextTestRunner(verbosity=2)
try:
if bb.msg.loggerDefaultVerbose: if bb.msg.loggerDefaultVerbose:
runner.stream.write = custom_verbose runner.stream.write = custom_verbose
except NameError:
# Not in bb environment?
pass
result = runner.run(suite) result = runner.run(suite)
return result return result