oeqa/sdkext: Adds case and context modules.

The extensible sdk context and case modules extends the sdk ones,
this means that the tests from sdk are run also the sdkext tests.

Enables support in context for use oe-test esdk command for run
the test suites, the same options of sdk are required for run esdk tests.

Removes old related to case and context inside oetest.py.

[YOCTO #10599]

(From OE-Core rev: 1f0bb99249744b87dd39227a4cf37f2341f5499c)

Signed-off-by: Aníbal Limón <anibal.limon@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Aníbal Limón 2016-11-30 11:33:26 -06:00 committed by Richard Purdie
parent 55f05fab2b
commit 14eee4fdf8
3 changed files with 42 additions and 40 deletions

View File

@ -27,7 +27,6 @@ try:
except ImportError:
pass
from oeqa.utils.decorators import LogResults, gettag, getResults
from oeqa.utils import avoid_paths_in_environ
logger = logging.getLogger("BitBake")
@ -145,18 +144,6 @@ class OETestCalledProcessError(subprocess.CalledProcessError):
subprocess.CalledProcessError = OETestCalledProcessError
class oeSDKExtTest(oeSDKTest):
def _run(self, cmd):
# extensible sdk shows a warning if found bitbake in the path
# because can cause contamination, i.e. use devtool from
# poky/scripts instead of eSDK one.
env = os.environ.copy()
paths_to_avoid = ['bitbake/bin', 'poky/scripts']
env['PATH'] = avoid_paths_in_environ(paths_to_avoid)
return subprocess.check_output(". %s > /dev/null;"\
" %s;" % (self.tc.sdkenv, cmd), stderr=subprocess.STDOUT, shell=True, env=env).decode("utf-8")
def getmodule(pos=2):
# stack returns a list of tuples containg frame information
# First element of the list the is current frame, caller is 1
@ -642,30 +629,3 @@ class ExportTestContext(RuntimeTestContext):
extracted_dir = self.d.getVar("TEST_EXPORT_EXTRACTED_DIR")
pkg_dir = os.path.join(export_dir, extracted_dir)
super(ExportTestContext, self).install_uninstall_packages(test_id, pkg_dir, install)
class SDKExtTestContext(SDKTestContext):
def __init__(self, d, sdktestdir, sdkenv, tcname, *args):
self.target_manifest = d.getVar("SDK_EXT_TARGET_MANIFEST")
self.host_manifest = d.getVar("SDK_EXT_HOST_MANIFEST")
if args:
self.cm = args[0] # Compatibility mode for run SDK tests
else:
self.cm = False
super(SDKExtTestContext, self).__init__(d, sdktestdir, sdkenv, tcname)
self.sdkextfilesdir = os.path.join(os.path.dirname(os.path.abspath(
oeqa.sdkext.__file__)), "files")
def _get_test_namespace(self):
if self.cm:
return "sdk"
else:
return "sdkext"
def _get_test_suites(self):
return (self.d.getVar("TEST_SUITES_SDK_EXT") or "auto").split()
def _get_test_suites_required(self):
return [t for t in (self.d.getVar("TEST_SUITES_SDK_EXT") or \
"auto").split() if t != "auto"]

View File

@ -0,0 +1,21 @@
# Copyright (C) 2016 Intel Corporation
# Released under the MIT license (see COPYING.MIT)
import os
import subprocess
from oeqa.utils import avoid_paths_in_environ
from oeqa.sdk.case import OESDKTestCase
class OESDKExtTestCase(OESDKTestCase):
def _run(self, cmd):
# extensible sdk shows a warning if found bitbake in the path
# because can cause contamination, i.e. use devtool from
# poky/scripts instead of eSDK one.
env = os.environ.copy()
paths_to_avoid = ['bitbake/bin', 'poky/scripts']
env['PATH'] = avoid_paths_in_environ(paths_to_avoid)
return subprocess.check_output(". %s > /dev/null;"\
" %s;" % (self.tc.sdk_env, cmd), stderr=subprocess.STDOUT,
shell=True, env=env).decode("utf-8")

View File

@ -0,0 +1,21 @@
# Copyright (C) 2016 Intel Corporation
# Released under the MIT license (see COPYING.MIT)
import os
from oeqa.sdk.context import OESDKTestContext, OESDKTestContextExecutor
class OESDKExtTestContext(OESDKTestContext):
esdk_files_dir = os.path.join(os.path.dirname(os.path.abspath(__file__)), "files")
class OESDKExtTestContextExecutor(OESDKTestContextExecutor):
_context_class = OESDKExtTestContext
name = 'esdk'
help = 'esdk test component'
description = 'executes esdk tests'
default_cases = [OESDKTestContextExecutor.default_cases[0],
os.path.join(os.path.abspath(os.path.dirname(__file__)), 'cases')]
default_test_data = None
_executor_class = OESDKExtTestContextExecutor