Skip to contentSkip to conversation

OEQA threading support and selftest migration

PATCH In review Aníbal Limón 4 participants 43 messages May 26, 2017 – May 29, 2017

lore
Share & tools
lore
#0 lore raw

cover OEQA threading support and selftest migration

This series is the integration of tree main changes into the OEQA module,

* Implement threading support into OEQA core module
* Enables OEQA threaded mode into {,e}SDK test component
* Migrate current oe-selftest to use the same framework

The following changes since commit 5eed6c644f715783edb0d05926373e719442dd6a:

libpcap: add native package (2017-05-25 23:59:32 +0100)

are available in the git repository at:

git://git.yoctoproject.org/poky-contrib alimon/oeqa_integration
http://git.yoctoproject.org/cgit.cgi/poky-contrib/log/?h=alimon/oeqa_integration

Aníbal Limón (25):
testsdk.bbclass: Remove unused import of OEStreamLogger oeqa/sdk/context.py: Import argparse_oe at OESDKTestContext.run method oeqa/sdk/context.py: Add return to OESDKTestContext.run() method oeqa/core: Don't expose OEStreamLogger in OETestContext oeqa/core/runner: OETestResult remove unneeded override of startTest oeqa/core: Move OETestContext.log{Summary, Details} into OETestResult oeqa/core/threaded: Add new module with OETestLoaderThreaded oeqa/core/threaded: Add OEStreamLoggerThreaded class oeqa/core/runner: OETestResult add internal _tc_map_results oeqa/core/threaded: Add OETestResultThreaded{,Internal} classes oeqa/core/threaded: Add support of OETestRunnerThreaded oeqa/core/threaded: Add OETestContextThreaded class oeqa/core/decorator/depends: Add support for threading mode oeqa/core/decorator/oetimeout: Add support for OEQA threaded mode oeqa/core/tests: Add tests of OEQA Threaded mode oeqa/sdkext/cases: Move sdk_update test into devtool module oeqa/sdk: Enable usage of OEQA thread mode
oeqa/core: Add list tests support in context and runner oeqa/core: Add support for run tests by module, class and name classes/test{export,images}: Change modules to list oeqa/runtime/case: Don't use OEQA framework internal methods scripts/oe-test: Move load_test_components to oeqa.utils oeqa/selftest: Move base class to case module oeqa/selftest/case: Don't figure out the testlayer inside
selftest: Migrate systemd_boot test case to the new framework

Leonardo Sandoval (11):
oeqa/core/README: Improve documentation
oeqa/core/case: fix typo on comment about exception name oeqa/core/context: Raise exception when a manifest is specified but
missing
oeqa/core/context: Use a default iterable modules object oeqa/core/context: Omit docstring output on XMLResult oeqa/core/context: Include a _pre_run method oeqa/selftest/case: Migrate case class to the new OEQA framework scripts/oe-selftest: Move {add,remove}_include files to case oeqa/selftest/case.py: Remove machine selection logic scripts/oe-selftest: Migrate to new framework into
oeqa.selftest.context
oeqa/selftest/cases: Migrate test cases into the new oe-qa framework

 meta-yocto-bsp/lib/oeqa/selftest/__init__.py       |   0
 .../lib/oeqa/selftest/{ => cases}/systemd_boot.py  |  14 +-
 meta/classes/testexport.bbclass                    |   2 +-
 meta/classes/testimage.bbclass                     |   6 +-
 meta/classes/testsdk.bbclass                       |  13 +-
 meta/lib/oeqa/core/README                          |  81 ++-
 meta/lib/oeqa/core/case.py                         |   2 +-
 meta/lib/oeqa/core/context.py                      | 127 +---
 meta/lib/oeqa/core/decorator/depends.py            |   8 +-
 meta/lib/oeqa/core/decorator/oetimeout.py          |  40 +-
 meta/lib/oeqa/core/exception.py                    |   6 +
 meta/lib/oeqa/core/loader.py                       |  66 +-
 meta/lib/oeqa/core/runner.py                       | 192 ++++-
 .../core/tests/cases/loader/threaded/threaded.py   |  12 +
 .../tests/cases/loader/threaded/threaded_alone.py  |   8 +
 .../cases/loader/threaded/threaded_depends.py      |  10 +
 .../tests/cases/loader/threaded/threaded_module.py |  12 +
 meta/lib/oeqa/core/tests/common.py                 |  10 +
 meta/lib/oeqa/core/tests/test_decorators.py        |  12 +
 meta/lib/oeqa/core/tests/test_loader.py            |  30 +-
 meta/lib/oeqa/core/threaded.py                     | 274 +++++++
 meta/lib/oeqa/runtime/case.py                      |   8 +-
 meta/lib/oeqa/sdk/context.py                       |  11 +-
 meta/lib/oeqa/sdkext/cases/devtool.py              |  32 +
 meta/lib/oeqa/sdkext/cases/sdk_update.py           |  39 -
 meta/lib/oeqa/selftest/__init__.py                 |   2 -
 meta/lib/oeqa/selftest/{base.py => case.py}        | 220 +++---
 .../selftest/{ => cases}/_sstatetests_noauto.py    |   7 +-
 meta/lib/oeqa/selftest/{ => cases}/archiver.py     |  14 +-
 meta/lib/oeqa/selftest/{ => cases}/bblayers.py     |  24 +-
 meta/lib/oeqa/selftest/{ => cases}/bbtests.py      |  57 +-
 meta/lib/oeqa/selftest/{ => cases}/buildhistory.py |   5 +-
 meta/lib/oeqa/selftest/{ => cases}/buildoptions.py |  34 +-
 .../oeqa/selftest/{ => cases}/containerimage.py    |   4 +-
 meta/lib/oeqa/selftest/{ => cases}/devtool.py      |  68 +-
 meta/lib/oeqa/selftest/{ => cases}/eSDK.py         |  18 +-
 .../lib/oeqa/selftest/{ => cases}/image_typedep.py |   4 +-
 .../lib/oeqa/selftest/{ => cases}/imagefeatures.py |  16 +-
 meta/lib/oeqa/selftest/{ => cases}/layerappend.py  |  15 +-
 meta/lib/oeqa/selftest/{ => cases}/liboe.py        |   7 +-
 .../{lic-checksum.py => cases/lic_checksum.py}     |   8 +-
 meta/lib/oeqa/selftest/{ => cases}/manifest.py     |  52 +-
 .../oeqa/selftest/{ => cases}/oelib/__init__.py    |   0
 .../selftest/{ => cases}/oelib/buildhistory.py     |   4 +-
 meta/lib/oeqa/selftest/{ => cases}/oelib/elf.py    |   4 +-
 .../lib/oeqa/selftest/{ => cases}/oelib/license.py |   6 +-
 meta/lib/oeqa/selftest/{ => cases}/oelib/path.py   |   4 +-
 meta/lib/oeqa/selftest/{ => cases}/oelib/types.py  |   6 +-
 meta/lib/oeqa/selftest/{ => cases}/oelib/utils.py  |   6 +-
 meta/lib/oeqa/selftest/{ => cases}/oescripts.py    |  15 +-
 meta/lib/oeqa/selftest/{ => cases}/package.py      |   4 +-
 meta/lib/oeqa/selftest/{ => cases}/pkgdata.py      |  29 +-
 meta/lib/oeqa/selftest/{ => cases}/prservice.py    |  27 +-
 meta/lib/oeqa/selftest/{ => cases}/recipetool.py   |  81 ++-
 meta/lib/oeqa/selftest/{ => cases}/runqemu.py      |  31 +-
 .../{runtime-test.py => cases/runtime_test.py}     |  15 +-
 meta/lib/oeqa/selftest/{ => cases}/signing.py      |  15 +-
 meta/lib/oeqa/selftest/{ => cases}/sstate.py       |   5 +-
 meta/lib/oeqa/selftest/{ => cases}/sstatetests.py  |  46 +-
 meta/lib/oeqa/selftest/{ => cases}/tinfoil.py      |  25 +-
 meta/lib/oeqa/selftest/{ => cases}/wic.py          |  84 +--
 meta/lib/oeqa/selftest/context.py                  | 224 ++++++
 meta/lib/oeqa/utils/__init__.py                    |  37 +-
 scripts/oe-selftest                                | 791 +--------------------
 scripts/oe-test                                    |  34 +-
 65 files changed, 1578 insertions(+), 1485 deletions(-)
 delete mode 100644 meta-yocto-bsp/lib/oeqa/selftest/__init__.py
 rename meta-yocto-bsp/lib/oeqa/selftest/{ => cases}/systemd_boot.py (91%)
 create mode 100644 meta/lib/oeqa/core/tests/cases/loader/threaded/threaded.py
 create mode 100644 meta/lib/oeqa/core/tests/cases/loader/threaded/threaded_alone.py
 create mode 100644 meta/lib/oeqa/core/tests/cases/loader/threaded/threaded_depends.py
 create mode 100644 meta/lib/oeqa/core/tests/cases/loader/threaded/threaded_module.py
 create mode 100644 meta/lib/oeqa/core/threaded.py
 delete mode 100644 meta/lib/oeqa/sdkext/cases/sdk_update.py
 delete mode 100644 meta/lib/oeqa/selftest/__init__.py
 rename meta/lib/oeqa/selftest/{base.py => case.py} (46%)
 rename meta/lib/oeqa/selftest/{ => cases}/_sstatetests_noauto.py (97%)
 rename meta/lib/oeqa/selftest/{ => cases}/archiver.py (91%)
 rename meta/lib/oeqa/selftest/{ => cases}/bblayers.py (94%)
 rename meta/lib/oeqa/selftest/{ => cases}/bbtests.py (95%)
 rename meta/lib/oeqa/selftest/{ => cases}/buildhistory.py (94%)
 rename meta/lib/oeqa/selftest/{ => cases}/buildoptions.py (94%)
 rename meta/lib/oeqa/selftest/{ => cases}/containerimage.py (97%)
 rename meta/lib/oeqa/selftest/{ => cases}/devtool.py (99%)
 rename meta/lib/oeqa/selftest/{ => cases}/eSDK.py (92%)
 rename meta/lib/oeqa/selftest/{ => cases}/image_typedep.py (93%)
 rename meta/lib/oeqa/selftest/{ => cases}/imagefeatures.py (95%)
 rename meta/lib/oeqa/selftest/{ => cases}/layerappend.py (93%)
 rename meta/lib/oeqa/selftest/{ => cases}/liboe.py (96%)
 rename meta/lib/oeqa/selftest/{lic-checksum.py => cases/lic_checksum.py} (87%)
 rename meta/lib/oeqa/selftest/{ => cases}/manifest.py (80%)
 rename meta/lib/oeqa/selftest/{ => cases}/oelib/__init__.py (100%)
 rename meta/lib/oeqa/selftest/{ => cases}/oelib/buildhistory.py (97%)
 rename meta/lib/oeqa/selftest/{ => cases}/oelib/elf.py (92%)
 rename meta/lib/oeqa/selftest/{ => cases}/oelib/license.py (93%)
 rename meta/lib/oeqa/selftest/{ => cases}/oelib/path.py (97%)
 rename meta/lib/oeqa/selftest/{ => cases}/oelib/types.py (93%)
 rename meta/lib/oeqa/selftest/{ => cases}/oelib/utils.py (91%)
 rename meta/lib/oeqa/selftest/{ => cases}/oescripts.py (72%)
 rename meta/lib/oeqa/selftest/{ => cases}/package.py (97%)
 rename meta/lib/oeqa/selftest/{ => cases}/pkgdata.py (96%)
 rename meta/lib/oeqa/selftest/{ => cases}/prservice.py (93%)
 rename meta/lib/oeqa/selftest/{ => cases}/recipetool.py (97%)
 rename meta/lib/oeqa/selftest/{ => cases}/runqemu.py (92%)
 rename meta/lib/oeqa/selftest/{runtime-test.py => cases/runtime_test.py} (97%)
 rename meta/lib/oeqa/selftest/{ => cases}/signing.py (96%)
 rename meta/lib/oeqa/selftest/{ => cases}/sstate.py (95%)
 rename meta/lib/oeqa/selftest/{ => cases}/sstatetests.py (97%)
 rename meta/lib/oeqa/selftest/{ => cases}/tinfoil.py (96%)
 rename meta/lib/oeqa/selftest/{ => cases}/wic.py (97%)
 create mode 100644 meta/lib/oeqa/selftest/context.py
Signature · 1 line
2.1.4
#1 lore raw

PATCH 1/36 testsdk.bbclass: Remove unused import of OEStreamLogger

---
 meta/classes/testsdk.bbclass | 1 -
 1 file changed, 1 deletion(-)
meta/classes/testsdk.bbclass +0 -1
index 6a201aa..4740233 100644
@@ -21,7 +21,6 @@ def testsdk_main(d):
     import logging
 
     from bb.utils import export_proxies
-    from oeqa.core.runner import OEStreamLogger
     from oeqa.sdk.context import OESDKTestContext, OESDKTestContextExecutor
     from oeqa.utils import make_logger_bitbake_compatible
 
Signature · 1 line
2.1.4
#2 lore raw

PATCH 2/36 oeqa/sdk/context.py: Import argparse_oe at OESDKTestContext.run method

In reply to Aníbal Limón

This import was at level of OESDKTestContext.register_commands but OESDKTestContext.run method need it to raise exceptions.

---
 meta/lib/oeqa/sdk/context.py | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
meta/lib/oeqa/sdk/context.py +2 -2
index 0189ed8..509d2b4 100644
@@ -44,8 +44,6 @@ class OESDKTestContextExecutor(OETestContextExecutor):
     default_test_data = None
 
     def register_commands(self, logger, subparsers):
-        import argparse_oe
-
         super(OESDKTestContextExecutor, self).register_commands(logger, subparsers)
 
         sdk_group = self.parser.add_argument_group('sdk options')
@@ -109,6 +107,8 @@ class OESDKTestContextExecutor(OETestContextExecutor):
             log(env)
 
     def run(self, logger, args):
+        import argparse_oe
+
         if not args.sdk_dir:
             raise argparse_oe.ArgumentUsageError("No SDK directory "\
                    "specified please do, --sdk-dir SDK_DIR", self.name)
Signature · 1 line
2.1.4
#3 lore raw

PATCH 3/36 oeqa/sdk/context.py: Add return to OESDKTestContext.run() method

In reply to Aníbal Limón

The run() methods of a OETestContext's are expected to return the results.

---
 meta/lib/oeqa/sdk/context.py | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
meta/lib/oeqa/sdk/context.py +1 -1
index 509d2b4..82e4c19 100644
@@ -128,6 +128,6 @@ class OESDKTestContextExecutor(OETestContextExecutor):
                    "environment (%s) specified" % args.sdk_env, self.name)
 
         self.sdk_env = sdk_envs[args.sdk_env]
-        super(OESDKTestContextExecutor, self).run(logger, args)
+        return super(OESDKTestContextExecutor, self).run(logger, args)
 
 _executor_class = OESDKTestContextExecutor
Signature · 1 line
2.1.4
#4 lore raw

PATCH 4/36 oeqa/core: Don't expose OEStreamLogger in OETestContext

In reply to Aníbal Limón

The OEStreamLogger class is used for redirect PyUnit output to a certain logger so there is not need to expose at level of OETestContext because only OETestRunner needs to know.

[YOCTO #11450]

---
 meta/lib/oeqa/core/context.py | 6 ++----
 meta/lib/oeqa/core/runner.py  | 3 +++
 2 files changed, 5 insertions(+), 4 deletions(-)
meta/lib/oeqa/core/context.py +2 -4
index 4476750..2628651 100644
@@ -10,12 +10,11 @@ import collections
 import re
 
 from oeqa.core.loader import OETestLoader
-from oeqa.core.runner import OETestRunner, OEStreamLogger, xmlEnabled
+from oeqa.core.runner import OETestRunner, xmlEnabled
 
 class OETestContext(object):
     loaderClass = OETestLoader
     runnerClass = OETestRunner
-    streamLoggerClass = OEStreamLogger
 
     files_dir = os.path.abspath(os.path.join(os.path.dirname(
         os.path.abspath(__file__)), "../files"))
@@ -52,8 +51,7 @@ class OETestContext(object):
         self.suites = self.loader.discover()
 
     def runTests(self):
-        streamLogger = self.streamLoggerClass(self.logger)
-        self.runner = self.runnerClass(self, stream=streamLogger, verbosity=2)
+        self.runner = self.runnerClass(self, verbosity=2)
 
         self._run_start_time = time.time()
         result = self.runner.run(self.suites)
meta/lib/oeqa/core/runner.py +3 -0
index 44ffecb..40fbf3b 100644
@@ -48,12 +48,15 @@ class OETestResult(_TestResult):
         super(OETestResult, self).startTest(test)
 
 class OETestRunner(_TestRunner):
+    streamLoggerClass = OEStreamLogger
+
     def __init__(self, tc, *args, **kwargs):
         if xmlEnabled:
             if not kwargs.get('output'):
                 kwargs['output'] = os.path.join(os.getcwd(),
                         'TestResults_%s_%s' % (time.strftime("%Y%m%d%H%M%S"), os.getpid()))
 
+        kwargs['stream'] = self.streamLoggerClass(tc.logger)
         super(OETestRunner, self).__init__(*args, **kwargs)
         self.tc = tc
         self.resultclass = OETestResult
Signature · 1 line
2.1.4
#5 lore raw

PATCH 5/36 oeqa/core/runner: OETestResult remove unneeded override of startTest

In reply to Aníbal Limón

I override this method before for keep track of results and forget to remove it, now isn't need.

---
 meta/lib/oeqa/core/runner.py | 3 ---
 1 file changed, 3 deletions(-)
meta/lib/oeqa/core/runner.py +0 -3
index 40fbf3b..0b04e8d 100644
@@ -44,9 +44,6 @@ class OETestResult(_TestResult):
         self.tc._results['skipped'] = self.skipped
         self.tc._results['expectedFailures'] = self.expectedFailures
 
-    def startTest(self, test):
-        super(OETestResult, self).startTest(test)
-
 class OETestRunner(_TestRunner):
     streamLoggerClass = OEStreamLogger
 
Signature · 1 line
2.1.4
#6 lore raw

PATCH 6/36 oeqa/core: Move OETestContext.log{Summary, Details} into OETestResult

In reply to Aníbal Limón

Those methods are used to write in the log the results so it makes sense to have defined at OETestResult because is a format of the result itself.

[YOCTO #11450]

---
 meta/classes/testimage.bbclass |  4 +-
 meta/classes/testsdk.bbclass   |  8 ++--
 meta/lib/oeqa/core/context.py  | 93 ++----------------------------------------
 meta/lib/oeqa/core/runner.py   | 88 +++++++++++++++++++++++++++++++++++++++
 4 files changed, 97 insertions(+), 96 deletions(-)
meta/classes/testimage.bbclass +2 -2
index fb21460..d42907c 100644
@@ -292,8 +292,8 @@ def testimage_main(d):
     # Show results (if we have them)
     if not results:
         bb.fatal('%s - FAILED - tests were interrupted during execution' % pn)
-    tc.logSummary(results, pn)
-    tc.logDetails()
+    results.logSummary(pn)
+    results.logDetails()
     if not results.wasSuccessful():
         bb.fatal('%s - FAILED - check the task log and the ssh log' % pn)
 
meta/classes/testsdk.bbclass +4 -4
index 4740233..edea89c 100644
@@ -70,8 +70,8 @@ def testsdk_main(d):
         component = "%s %s" % (pn, OESDKTestContextExecutor.name)
         context_msg = "%s:%s" % (os.path.basename(tcname), os.path.basename(sdk_env))
 
-        tc.logSummary(result, component, context_msg)
-        tc.logDetails()
+        result.logSummary(component, context_msg)
+        result.logDetails()
 
         if not result.wasSuccessful():
             fail = True
@@ -172,8 +172,8 @@ def testsdkext_main(d):
         component = "%s %s" % (pn, OESDKExtTestContextExecutor.name)
         context_msg = "%s:%s" % (os.path.basename(tcname), os.path.basename(sdk_env))
 
-        tc.logSummary(result, component, context_msg)
-        tc.logDetails()
+        result.logSummary(component, context_msg)
+        result.logDetails()
 
         if not result.wasSuccessful():
             fail = True
meta/lib/oeqa/core/context.py +3 -90

113 lines not on this page · raw message

meta/lib/oeqa/core/runner.py +88 -0

100 lines not on this page · raw message

Signature · 1 line
2.1.4
#7 lore raw

PATCH 7/36 oeqa/core/threaded: Add new module with OETestLoaderThreaded

In reply to Aníbal Limón

The threded module will implement Thread support into the OEQA framework.

The OETestLoaderThreaded overrides discover to return a list of suites every suite will be run by a separate Thread.

Some design considerations are:

- All the tests of a certain module needs to be run at one thread because unittest framework needs to keep track of setUp{Module,
Class,} and tearDown{Module, Class,}.

- Tests that depends on other needs to be run at the same thread because OEQA framework look at the status of dependant test to decide if skip or not, this constraint can be change in the future but a sync mechanishm is needed to implement between the Threads.

[YOCTO #11450]

---
 meta/lib/oeqa/core/threaded.py | 91 ++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 91 insertions(+)
 create mode 100644 meta/lib/oeqa/core/threaded.py
meta/lib/oeqa/core/threaded.py new file +91 -0
new file mode 100644
index 0000000..e6f2140
@@ -0,0 +1,91 @@
+# Copyright (C) 2017 Intel Corporation
+# Released under the MIT license (see COPYING.MIT)
+
+import multiprocessing
+
+from unittest.suite import TestSuite
+from oeqa.core.loader import OETestLoader
+
+class OETestLoaderThreaded(OETestLoader):
+    def __init__(self, tc, module_paths, modules, tests, modules_required,
+            filters, process_num=0, *args, **kwargs):
+        super(OETestLoaderThreaded, self).__init__(tc, module_paths, modules,
+                tests, modules_required, filters, *args, **kwargs)
+
+        self.process_num = process_num
+
+    def discover(self):
+        suite = super(OETestLoaderThreaded, self).discover()
+
+        if self.process_num <= 0:
+            self.process_num = min(multiprocessing.cpu_count(),
+                    len(suite._tests))
+
+        suites = []
+        for _ in range(self.process_num):
+            suites.append(self.suiteClass())
+
+        def _search_for_module_idx(suites, case):
+            """
+                Cases in the same module needs to be run
+                in the same thread because PyUnit keeps track
+                of setUp{Module, Class,} and tearDown{Module, Class,}.
+            """
+
+            for idx in range(self.process_num):
+                suite = suites[idx]
+                for c in suite._tests:
+                    if case.__module__ == c.__module__:
+                        return idx
+
+            return -1
+
+        def _search_for_depend_idx(suites, depends):
+            """
+                Dependency cases needs to be run in the same
+                thread, because OEQA framework look at the state
+                of dependant test to figure out if skip or not.
+            """
+
+            for idx in range(self.process_num):
+                suite = suites[idx]
+
+                for case in suite._tests:
+                    if case.id() in depends:
+                        return idx
+            return -1
+
+        def _get_best_idx(suites):
+            sizes = [len(suite._tests) for suite in suites]
+            return sizes.index(min(sizes))
+
+        def _fill_suites(suite):
+            idx = -1
+            for case in suite:
+                if isinstance(case, TestSuite):
+                    _fill_suites(case)
+                else:
+                    idx = _search_for_module_idx(suites, case)
+
+                    depends = {}
+                    if 'depends' in self.tc._registry:
+                        depends = self.tc._registry['depends']
+
+                    if idx == -1 and case.id() in depends:
+                        case_depends = depends[case.id()] 
+                        idx = _search_for_depend_idx(suites, case_depends)
+
+                    if idx == -1:
+                        idx = _get_best_idx(suites)
+
+                    suites[idx].addTest(case)
+        _fill_suites(suite)
+
+        suites_tmp = suites
+        suites = []
+        for suite in suites_tmp:
+            if len(suite._tests) > 0:
+                suites.append(suite)
+
+        return suites
+
Signature · 1 line
2.1.4
#8 lore raw

PATCH 8/36 oeqa/core/threaded: Add OEStreamLoggerThreaded class

In reply to Aníbal Limón

The OEStreamLoggerThreaded overrides OEStreamLogger to redirect the PyUnit output to a logger.

Instead of log every line when comes the OEStreamLoggerThreaded will buffer the PyUnit output and write everything at end of every suite execution to don't have mixed suite outputs.

[YOCTO #11450]

---
 meta/lib/oeqa/core/threaded.py | 25 +++++++++++++++++++++++++
 1 file changed, 25 insertions(+)
meta/lib/oeqa/core/threaded.py +25 -0
index e6f2140..73b7f2f 100644
@@ -1,10 +1,13 @@
 # Copyright (C) 2017 Intel Corporation
 # Released under the MIT license (see COPYING.MIT)
 
+import threading
 import multiprocessing
 
 from unittest.suite import TestSuite
+
 from oeqa.core.loader import OETestLoader
+from oeqa.core.runner import OEStreamLogger
 
 class OETestLoaderThreaded(OETestLoader):
     def __init__(self, tc, module_paths, modules, tests, modules_required,
@@ -89,3 +92,25 @@ class OETestLoaderThreaded(OETestLoader):
 
         return suites
 
+class OEStreamLoggerThreaded(OEStreamLogger):
+    _lock = threading.Lock()
+    buffers = {}
+
+    def write(self, msg):
+        tid = threading.get_ident()
+
+        if not tid in self.buffers:
+            self.buffers[tid] = ""
+
+        if msg:
+            self.buffers[tid] += msg
+
+    def finish(self):
+        tid = threading.get_ident()
+        
+        self._lock.acquire()
+        self.logger.info('THREAD: %d' % tid)
+        self.logger.info('-' * 70)
+        for line in self.buffers[tid].split('\n'):
+            self.logger.info(line)
+        self._lock.release()
Signature · 1 line
2.1.4
#9 lore raw

PATCH 9/36 oeqa/core/runner: OETestResult add internal _tc_map_results

In reply to Aníbal Limón

This method is to assign results into the TestContext, create an internal one to support change implementation in Thread version.

[YOCTO #11450]

---
 meta/lib/oeqa/core/runner.py | 2 ++
 1 file changed, 2 insertions(+)
meta/lib/oeqa/core/runner.py +2 -0
index 7505838..3ebffc7 100644
@@ -39,7 +39,9 @@ class OETestResult(_TestResult):
         super(OETestResult, self).__init__(*args, **kwargs)
 
         self.tc = tc
+        self._tc_map_results()
 
+    def _tc_map_results(self):
         self.tc._results['failures'] = self.failures
         self.tc._results['errors'] = self.errors
         self.tc._results['skipped'] = self.skipped
Signature · 1 line
2.1.4
#10 lore raw

PATCH 10/36 oeqa/core/threaded: Add OETestResultThreaded{, Internal} classes

In reply to Aníbal Limón

The OETestResultThreadedInternal extends OETestResult to stores results by Thread.

The OETestResultThreaded is a simple class that provides the implementation of interfaces needed by outside like wasSuccesful, stop, logSummary, logDetails.

[YOCTO #11450]

---
 meta/lib/oeqa/core/threaded.py | 73 +++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 72 insertions(+), 1 deletion(-)
meta/lib/oeqa/core/threaded.py +72 -1
index 73b7f2f..f216685 100644
@@ -7,7 +7,7 @@ import multiprocessing
 from unittest.suite import TestSuite
 
 from oeqa.core.loader import OETestLoader
-from oeqa.core.runner import OEStreamLogger
+from oeqa.core.runner import OEStreamLogger, OETestResult
 
 class OETestLoaderThreaded(OETestLoader):
     def __init__(self, tc, module_paths, modules, tests, modules_required,
@@ -114,3 +114,74 @@ class OEStreamLoggerThreaded(OEStreamLogger):
         for line in self.buffers[tid].split('\n'):
             self.logger.info(line)
         self._lock.release()
+
+class OETestResultThreadedInternal(OETestResult):
+    def _tc_map_results(self):
+        tid = threading.get_ident()
+        
+        # PyUnit generates a result for every test module run, test
+        # if the thread already has an entry to avoid lose the previous
+        # test module results.
+        if not tid in self.tc._results:
+            self.tc._results[tid] = {}
+            self.tc._results[tid]['failures'] = self.failures
+            self.tc._results[tid]['errors'] = self.errors
+            self.tc._results[tid]['skipped'] = self.skipped
+            self.tc._results[tid]['expectedFailures'] = self.expectedFailures
+
+class OETestResultThreaded(object):
+    _results = {}
+    _lock = threading.Lock()
+
+    def __init__(self, tc):
+        self.tc = tc
+
+    def _fill_tc_results(self):
+        tids = list(self.tc._results.keys())
+        fields = ['failures', 'errors', 'skipped', 'expectedFailures']
+
+        for tid in tids:
+            result = self.tc._results[tid]
+            for field in fields:
+                if not field in self.tc._results:
+                    self.tc._results[field] = []
+                self.tc._results[field].extend(result[field])
+
+    def addResult(self, result, run_start_time, run_end_time):
+        tid = threading.get_ident()
+
+        self._lock.acquire()
+        self._results[tid] = {}
+        self._results[tid]['result'] = result
+        self._results[tid]['run_start_time'] = run_start_time 
+        self._results[tid]['run_end_time'] = run_end_time 
+        self._results[tid]['result'] = result
+        self._lock.release()
+
+    def wasSuccessful(self):
+        wasSuccessful = True
+        for tid in self._results.keys():
+            wasSuccessful = wasSuccessful and \
+                    self._results[tid]['result'].wasSuccessful()
+        return wasSuccessful
+
+    def stop(self):
+        for tid in self._results.keys():
+            self._results[tid]['result'].stop()
+
+    def logSummary(self, component, context_msg=''):
+        elapsed_time = (self.tc._run_end_time - self.tc._run_start_time)
+
+        self.tc.logger.info("SUMMARY:")
+        self.tc.logger.info("%s (%s) - Ran %d tests in %.3fs" % (component,
+            context_msg, len(self.tc._registry['cases']), elapsed_time))
+        if self.wasSuccessful():
+            msg = "%s - OK - All required tests passed" % component
+        else:
+            msg = "%s - FAIL - Required tests failed" % component
+        self.tc.logger.info(msg)
+
+    def logDetails(self):
+        tid = list(self._results)[0]
+        result = self._results[tid]['result']
+        result.logDetails()
Signature · 1 line
2.1.4
#11 lore raw

PATCH 11/36 oeqa/core/threaded: Add support of OETestRunnerThreaded

In reply to Aníbal Limón

The OETestRunnerThreaded overrides the run method of OETestRunner it recieves a list of suites to be executed by a ThreadPool.

The new run method handles the ThreadPool creation and the OETestResultThreaded fill.

[YOCTO #11450]

---
 meta/lib/oeqa/core/threaded.py | 75 +++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 74 insertions(+), 1 deletion(-)
meta/lib/oeqa/core/threaded.py +74 -1
index f216685..81df340 100644
@@ -3,11 +3,13 @@
 
 import threading
 import multiprocessing
+import queue
+import time
 
 from unittest.suite import TestSuite
 
 from oeqa.core.loader import OETestLoader
-from oeqa.core.runner import OEStreamLogger, OETestResult
+from oeqa.core.runner import OEStreamLogger, OETestResult, OETestRunner
 
 class OETestLoaderThreaded(OETestLoader):
     def __init__(self, tc, module_paths, modules, tests, modules_required,
@@ -185,3 +187,74 @@ class OETestResultThreaded(object):
         tid = list(self._results)[0]
         result = self._results[tid]['result']
         result.logDetails()
+
+class _Worker(threading.Thread):
+    """Thread executing tasks from a given tasks queue"""
+    def __init__(self, tasks, result, stream):
+        threading.Thread.__init__(self)
+        self.tasks = tasks
+
+        self.result = result
+        self.stream = stream
+
+    def run(self):
+        while True:
+            try:
+                func, args, kargs = self.tasks.get(block=False)
+            except queue.Empty:
+                break
+
+            try:
+                run_start_time = time.time()
+                rc = func(*args, **kargs)
+                run_end_time = time.time()
+                self.result.addResult(rc, run_start_time, run_end_time)
+                self.stream.finish()
+            except Exception as e:
+                print(e)
+            finally:
+                self.tasks.task_done()
+
+class _ThreadedPool:
+    """Pool of threads consuming tasks from a queue"""
+    def __init__(self, num_workers, num_tasks, stream=None, result=None):
+        self.tasks = queue.Queue(num_tasks)
+        self.workers = []
+
+        for _ in range(num_workers):
+            worker = _Worker(self.tasks, result, stream)
+            self.workers.append(worker)
+
+    def start(self):
+        for worker in self.workers:
+            worker.start()
+
+    def add_task(self, func, *args, **kargs):
+        """Add a task to the queue"""
+        self.tasks.put((func, args, kargs))
+
+    def wait_completion(self):
+        """Wait for completion of all the tasks in the queue"""
+        self.tasks.join()
+        for worker in self.workers:
+            worker.join()
+
+class OETestRunnerThreaded(OETestRunner):
+    streamLoggerClass = OEStreamLoggerThreaded
+
+    def __init__(self, tc, *args, **kwargs):
+        super(OETestRunnerThreaded, self).__init__(tc, *args, **kwargs)
+        self.resultclass = OETestResultThreadedInternal # XXX: XML reporting overrides at __init__
+
+    def run(self, suites):
+        result = OETestResultThreaded(self.tc)
+
+        pool = _ThreadedPool(len(suites), len(suites), stream=self.stream,
+                result=result)
+        for s in suites:
+            pool.add_task(super(OETestRunnerThreaded, self).run, s)
+        pool.start()
+        pool.wait_completion()
+        result._fill_tc_results()
+
+        return result
Signature · 1 line
2.1.4
#12 lore raw

PATCH 12/36 oeqa/core/threaded: Add OETestContextThreaded class

In reply to Aníbal Limón

This class sets the {loader,runner}Class to the threaded versions and overrides loadTests method to be able specify the process_num.

[YOCTO #11450]

---
 meta/lib/oeqa/core/threaded.py | 14 ++++++++++++++
 1 file changed, 14 insertions(+)
meta/lib/oeqa/core/threaded.py +14 -0
index 81df340..c6058a3 100644
@@ -10,6 +10,7 @@ from unittest.suite import TestSuite
 
 from oeqa.core.loader import OETestLoader
 from oeqa.core.runner import OEStreamLogger, OETestResult, OETestRunner
+from oeqa.core.context import OETestContext
 
 class OETestLoaderThreaded(OETestLoader):
     def __init__(self, tc, module_paths, modules, tests, modules_required,
@@ -258,3 +259,16 @@ class OETestRunnerThreaded(OETestRunner):
         result._fill_tc_results()
 
         return result
+
+class OETestContextThreaded(OETestContext):
+    loaderClass = OETestLoaderThreaded
+    runnerClass = OETestRunnerThreaded
+
+    def loadTests(self, module_paths, modules=[], tests=[],
+            modules_manifest="", modules_required=[], filters={}, process_num=0):
+        if modules_manifest:
+            modules = self._read_modules_from_manifest(modules_manifest)
+
+        self.loader = self.loaderClass(self, module_paths, modules, tests,
+                modules_required, filters, process_num)
+        self.suites = self.loader.discover()
Signature · 1 line
2.1.4
#13 lore raw

PATCH 13/36 oeqa/core/decorator/depends: Add support for threading mode

In reply to Aníbal Limón

The _skipTestDependency needs to know if the thread mode is enabled because the _results are by thread.

[YOCTO #11450]

---
 meta/lib/oeqa/core/decorator/depends.py | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)
meta/lib/oeqa/core/decorator/depends.py +7 -1
index 195711c..baa0434 100644
@@ -3,6 +3,7 @@
 
 from unittest import SkipTest
 
+from oeqa.core.threaded import OETestRunnerThreaded
 from oeqa.core.exception import OEQADependency
 
 from . import OETestDiscover, registerDecorator
@@ -63,7 +64,12 @@ def _order_test_case_by_depends(cases, depends):
     return [cases[case_id] for case_id in cases_ordered]
 
 def _skipTestDependency(case, depends):
-    results = case.tc._results
+    if isinstance(case.tc.runner, OETestRunnerThreaded):
+        import threading
+        results = case.tc._results[threading.get_ident()]
+    else:
+        results = case.tc._results
+
     skipReasons = ['errors', 'failures', 'skipped']
 
     for reason in skipReasons:
Signature · 1 line
2.1.4
#14 lore raw

PATCH 14/36 oeqa/core/decorator/oetimeout: Add support for OEQA threaded mode

In reply to Aníbal Limón

In python signals are only allowed to delivery into the main thread, to support the threading mode test if the runner is threaded and use threading.Timer instead.

There are some considerations like SIGALRM interrupts the execution after N seconds but the Timer only starts a Thread to notice the timeout and the exception will be raised when the test run ends.

[YOCTO #11450]

---
 meta/lib/oeqa/core/decorator/oetimeout.py | 40 +++++++++++++++++++++++--------
 1 file changed, 30 insertions(+), 10 deletions(-)
meta/lib/oeqa/core/decorator/oetimeout.py +30 -10
index a247583..f85e7d9 100644
@@ -1,8 +1,12 @@
 # Copyright (C) 2016 Intel Corporation
 # Released under the MIT license (see COPYING.MIT)
 
-import signal
 from . import OETestDecorator, registerDecorator
+
+import signal
+from threading import Timer
+
+from oeqa.core.threaded import OETestRunnerThreaded
 from oeqa.core.exception import OEQATimeoutError
 
 @registerDecorator
@@ -10,16 +14,32 @@ class OETimeout(OETestDecorator):
     attrs = ('oetimeout',)
 
     def setUpDecorator(self):
-        timeout = self.oetimeout
-        def _timeoutHandler(signum, frame):
-            raise OEQATimeoutError("Timed out after %s "
+        self.logger.debug("Setting up a %d second(s) timeout" % self.oetimeout)
+
+        if isinstance(self.case.tc.runner, OETestRunnerThreaded):
+            self.timeouted = False
+            def _timeoutHandler():
+                self.timeouted = True
+
+            self.timer = Timer(self.oetimeout, _timeoutHandler)
+            self.timer.start()
+        else:
+            timeout = self.oetimeout
+            def _timeoutHandler(signum, frame):
+                raise OEQATimeoutError("Timed out after %s "
                     "seconds of execution" % timeout)
 
-        self.logger.debug("Setting up a %d second(s) timeout" % self.oetimeout)
-        self.alarmSignal = signal.signal(signal.SIGALRM, _timeoutHandler)
-        signal.alarm(self.oetimeout)
+            self.alarmSignal = signal.signal(signal.SIGALRM, _timeoutHandler)
+            signal.alarm(self.oetimeout)
 
     def tearDownDecorator(self):
-        signal.alarm(0)
-        signal.signal(signal.SIGALRM, self.alarmSignal)
-        self.logger.debug("Removed SIGALRM handler")
+        if isinstance(self.case.tc.runner, OETestRunnerThreaded):
+            self.timer.cancel()
+            self.logger.debug("Removed Timer handler")
+            if self.timeouted:
+                raise OEQATimeoutError("Timed out after %s "
+                    "seconds of execution" % self.oetimeout)
+        else:
+            signal.alarm(0)
+            signal.signal(signal.SIGALRM, self.alarmSignal)
+            self.logger.debug("Removed SIGALRM handler")
Signature · 1 line
2.1.4
#15 lore raw

PATCH 15/36 oeqa/core/tests: Add tests of OEQA Threaded mode

In reply to Aníbal Limón

Add needed tests to validate the OEQA Threaded mode, the remaining parts are tested by the OEQA without Threaded mode.

- test_loader.py: Add a test to validate rules when creating the list of test suites.
- test_decorators.py: Add oetimeout test because the threaded mode uses Timer instead of signal.

[YOCTO #11450]

---
 .../core/tests/cases/loader/threaded/threaded.py   | 12 +++++++++
 .../tests/cases/loader/threaded/threaded_alone.py  |  8 ++++++
 .../cases/loader/threaded/threaded_depends.py      | 10 ++++++++
 .../tests/cases/loader/threaded/threaded_module.py | 12 +++++++++
 meta/lib/oeqa/core/tests/common.py                 | 10 ++++++++
 meta/lib/oeqa/core/tests/test_decorators.py        | 12 +++++++++
 meta/lib/oeqa/core/tests/test_loader.py            | 30 +++++++++++++++++++++-
 7 files changed, 93 insertions(+), 1 deletion(-)
 create mode 100644 meta/lib/oeqa/core/tests/cases/loader/threaded/threaded.py
 create mode 100644 meta/lib/oeqa/core/tests/cases/loader/threaded/threaded_alone.py
 create mode 100644 meta/lib/oeqa/core/tests/cases/loader/threaded/threaded_depends.py
 create mode 100644 meta/lib/oeqa/core/tests/cases/loader/threaded/threaded_module.py
meta/lib/oeqa/core/tests/cases/loader/threaded/threaded.py new file +12 -0
new file mode 100644
index 0000000..0fe4cb3
@@ -0,0 +1,12 @@
+# Copyright (C) 2017 Intel Corporation
+# Released under the MIT license (see COPYING.MIT)
+
+from oeqa.core.case import OETestCase
+
+class ThreadedTest(OETestCase):
+    def test_threaded_no_depends(self):
+        self.assertTrue(True, msg='How is this possible?')
+
+class ThreadedTest2(OETestCase):
+    def test_threaded_same_module(self):
+        self.assertTrue(True, msg='How is this possible?')
meta/lib/oeqa/core/tests/cases/loader/threaded/threaded_alone.py new file +8 -0
new file mode 100644
index 0000000..905f397
@@ -0,0 +1,8 @@
+# Copyright (C) 2017 Intel Corporation
+# Released under the MIT license (see COPYING.MIT)
+
+from oeqa.core.case import OETestCase
+
+class ThreadedTestAlone(OETestCase):
+    def test_threaded_alone(self):
+        self.assertTrue(True, msg='How is this possible?')
meta/lib/oeqa/core/tests/cases/loader/threaded/threaded_depends.py new file +10 -0
new file mode 100644
index 0000000..0c158d3
@@ -0,0 +1,10 @@
+# Copyright (C) 2017 Intel Corporation
+# Released under the MIT license (see COPYING.MIT)
+
+from oeqa.core.case import OETestCase
+from oeqa.core.decorator.depends import OETestDepends
+
+class ThreadedTest3(OETestCase):
+    @OETestDepends(['threaded.ThreadedTest.test_threaded_no_depends'])
+    def test_threaded_depends(self):
+        self.assertTrue(True, msg='How is this possible?')
meta/lib/oeqa/core/tests/cases/loader/threaded/threaded_module.py new file +12 -0
new file mode 100644
index 0000000..63d17e0
@@ -0,0 +1,12 @@
+# Copyright (C) 2017 Intel Corporation
+# Released under the MIT license (see COPYING.MIT)
+
+from oeqa.core.case import OETestCase
+
+class ThreadedTestModule(OETestCase):
+    def test_threaded_module(self):
+        self.assertTrue(True, msg='How is this possible?')
+
+class ThreadedTestModule2(OETestCase):
+    def test_threaded_module2(self):
+        self.assertTrue(True, msg='How is this possible?')
meta/lib/oeqa/core/tests/common.py +10 -0
index 52b18a1..1932323 100644
@@ -33,3 +33,13 @@ class TestBase(unittest.TestCase):
         tc.loadTests(self.cases_path, modules=modules, tests=tests,
                      filters=filters)
         return tc
+
+    def _testLoaderThreaded(self, d={}, modules=[],
+            tests=[], filters={}):
+        from oeqa.core.threaded import OETestContextThreaded
+
+        tc = OETestContextThreaded(d, self.logger)
+        tc.loadTests(self.cases_path, modules=modules, tests=tests,
+                     filters=filters)
+
+        return tc
meta/lib/oeqa/core/tests/test_decorators.py +12 -0
index f7d11e8..cf99e0d 100755
@@ -131,5 +131,17 @@ class TestTimeoutDecorator(TestBase):
         msg = "OETestTimeout didn't restore SIGALRM"
         self.assertIs(alarm_signal, signal.getsignal(signal.SIGALRM), msg=msg)
 
+    def test_timeout_thread(self):
+        tests = ['timeout.TimeoutTest.testTimeoutPass']
+        msg = 'Failed to run test using OETestTimeout'
+        tc = self._testLoaderThreaded(modules=self.modules, tests=tests)
+        self.assertTrue(tc.runTests().wasSuccessful(), msg=msg)
+
+    def test_timeout_threaded_fail(self):
+        tests = ['timeout.TimeoutTest.testTimeoutFail']
+        msg = "OETestTimeout test didn't timeout as expected"
+        tc = self._testLoaderThreaded(modules=self.modules, tests=tests)
+        self.assertFalse(tc.runTests().wasSuccessful(), msg=msg)
+
 if __name__ == '__main__':
     unittest.main()
meta/lib/oeqa/core/tests/test_loader.py +29 -1
index b79b8ba..e0d917d 100755
@@ -1,6 +1,6 @@
 #!/usr/bin/env python3
 
-# Copyright (C) 2016 Intel Corporation
+# Copyright (C) 2016-2017 Intel Corporation
 # Released under the MIT license (see COPYING.MIT)
 
 import os
@@ -82,5 +82,33 @@ class TestLoader(TestBase):
         msg = 'Expected modules from two different paths'
         self.assertEqual(modules, expected_modules, msg=msg)
 
+    def test_loader_threaded(self):
+        cases_path = self.cases_path
+
+        self.cases_path = [os.path.join(self.cases_path, 'loader', 'threaded')]
+
+        tc = self._testLoaderThreaded()
+        self.assertEqual(len(tc.suites), 3, "Expected to be 3 suites")
+
+        case_ids = ['threaded.ThreadedTest.test_threaded_no_depends',
+                'threaded.ThreadedTest2.test_threaded_same_module',
+                'threaded_depends.ThreadedTest3.test_threaded_depends']
+        for case in tc.suites[0]._tests:
+            self.assertEqual(case.id(),
+                    case_ids[tc.suites[0]._tests.index(case)])
+
+        case_ids = ['threaded_alone.ThreadedTestAlone.test_threaded_alone']
+        for case in tc.suites[1]._tests:
+            self.assertEqual(case.id(),
+                    case_ids[tc.suites[1]._tests.index(case)])
+
+        case_ids = ['threaded_module.ThreadedTestModule.test_threaded_module',
+                'threaded_module.ThreadedTestModule2.test_threaded_module2']
+        for case in tc.suites[2]._tests:
+            self.assertEqual(case.id(),
+                    case_ids[tc.suites[2]._tests.index(case)])
+
+        self.cases_path = cases_path
+
 if __name__ == '__main__':
     unittest.main()
Signature · 1 line
2.1.4
#16 lore raw

PATCH 16/36 oeqa/sdkext/cases: Move sdk_update test into devtool module

In reply to Aníbal Limón

With the new OEQA thread support there are problems running devtool twice at the same time because only one instance of bitbake/devtool is allowed.

[YOCTO #11450]

---
 meta/lib/oeqa/sdkext/cases/devtool.py    | 32 ++++++++++++++++++++++++++
 meta/lib/oeqa/sdkext/cases/sdk_update.py | 39 --------------------------------
 2 files changed, 32 insertions(+), 39 deletions(-)
 delete mode 100644 meta/lib/oeqa/sdkext/cases/sdk_update.py
meta/lib/oeqa/sdkext/cases/devtool.py +32 -0
index a01bc0b..ea90517 100644
@@ -1,12 +1,14 @@
 # Copyright (C) 2016 Intel Corporation
 # Released under the MIT license (see COPYING.MIT)
 
+import os
 import shutil
 import subprocess
 
 from oeqa.sdkext.case import OESDKExtTestCase
 from oeqa.core.decorator.depends import OETestDepends
 from oeqa.core.decorator.oeid import OETestID
+from oeqa.utils.httpserver import HTTPService
 
 class DevtoolTest(OESDKExtTestCase):
     @classmethod
@@ -95,3 +97,33 @@ class DevtoolTest(OESDKExtTestCase):
             self._run('devtool build %s ' % package_nodejs)
         finally:
             self._run('devtool reset %s '% package_nodejs)
+
+class SdkUpdateTest(OESDKExtTestCase):
+    @classmethod
+    def setUpClass(self):
+        self.publish_dir = os.path.join(self.tc.sdk_dir, 'esdk_publish')
+        if os.path.exists(self.publish_dir):
+            shutil.rmtree(self.publish_dir)
+        os.mkdir(self.publish_dir)
+
+        base_tcname = "%s/%s" % (self.td.get("SDK_DEPLOY", ''),
+            self.td.get("TOOLCHAINEXT_OUTPUTNAME", ''))
+        tcname_new = "%s-new.sh" % base_tcname
+        if not os.path.exists(tcname_new):
+            tcname_new = "%s.sh" % base_tcname
+
+        cmd = 'oe-publish-sdk %s %s' % (tcname_new, self.publish_dir)
+        subprocess.check_output(cmd, shell=True)
+
+        self.http_service = HTTPService(self.publish_dir)
+        self.http_service.start()
+
+        self.http_url = "http://127.0.0.1:%d" % self.http_service.port
+
+    def test_sdk_update_http(self):
+        output = self._run("devtool sdk-update \"%s\"" % self.http_url)
+
+    @classmethod
+    def tearDownClass(self):
+        self.http_service.stop()
+        shutil.rmtree(self.publish_dir)
meta/lib/oeqa/sdkext/cases/sdk_update.py deleted +0 -39
deleted file mode 100644
index 2f8598b..0000000
@@ -1,39 +0,0 @@
-# Copyright (C) 2016 Intel Corporation
-# Released under the MIT license (see COPYING.MIT)
-
-import os
-import shutil
-import subprocess
-
-from oeqa.sdkext.case import OESDKExtTestCase
-from oeqa.utils.httpserver import HTTPService
-
-class SdkUpdateTest(OESDKExtTestCase):
-    @classmethod
-    def setUpClass(self):
-        self.publish_dir = os.path.join(self.tc.sdk_dir, 'esdk_publish')
-        if os.path.exists(self.publish_dir):
-            shutil.rmtree(self.publish_dir)
-        os.mkdir(self.publish_dir)
-
-        base_tcname = "%s/%s" % (self.td.get("SDK_DEPLOY", ''),
-            self.td.get("TOOLCHAINEXT_OUTPUTNAME", ''))
-        tcname_new = "%s-new.sh" % base_tcname
-        if not os.path.exists(tcname_new):
-            tcname_new = "%s.sh" % base_tcname
-
-        cmd = 'oe-publish-sdk %s %s' % (tcname_new, self.publish_dir)
-        subprocess.check_output(cmd, shell=True)
-
-        self.http_service = HTTPService(self.publish_dir)
-        self.http_service.start()
-
-        self.http_url = "http://127.0.0.1:%d" % self.http_service.port
-
-    def test_sdk_update_http(self):
-        output = self._run("devtool sdk-update \"%s\"" % self.http_url)
-
-    @classmethod
-    def tearDownClass(self):
-        self.http_service.stop()
-        shutil.rmtree(self.publish_dir)
Signature · 1 line
2.1.4
#17 lore raw

PATCH 17/36 oeqa/sdk: Enable usage of OEQA thread mode

In reply to Aníbal Limón

oeqa/sdk/context.py - Use OETestContextThreaded. classes/testsdk.bbclass - Enable bb event thread mode to avoid corrupt the PIPE when multiple threads writes.

[YOCTO #11450]

---
 meta/classes/testsdk.bbclass | 4 ++++
 meta/lib/oeqa/sdk/context.py | 5 +++--
 2 files changed, 7 insertions(+), 2 deletions(-)
meta/classes/testsdk.bbclass +4 -0
index edea89c..8a9e680 100644
@@ -24,6 +24,8 @@ def testsdk_main(d):
     from oeqa.sdk.context import OESDKTestContext, OESDKTestContextExecutor
     from oeqa.utils import make_logger_bitbake_compatible
 
+    bb.event.enable_threadlock()
+
     pn = d.getVar("PN")
     logger = make_logger_bitbake_compatible(logging.getLogger("BitBake"))
 
@@ -97,6 +99,8 @@ def testsdkext_main(d):
     from oeqa.utils import avoid_paths_in_environ, make_logger_bitbake_compatible, subprocesstweak
     from oeqa.sdkext.context import OESDKExtTestContext, OESDKExtTestContextExecutor
 
+    bb.event.enable_threadlock()
+
     pn = d.getVar("PN")
     logger = make_logger_bitbake_compatible(logging.getLogger("BitBake"))
 
meta/lib/oeqa/sdk/context.py +3 -2
index 82e4c19..b3d7c75 100644
@@ -6,9 +6,10 @@ import sys
 import glob
 import re
 
-from oeqa.core.context import OETestContext, OETestContextExecutor
+from oeqa.core.context import OETestContextExecutor
+from oeqa.core.threaded import OETestContextThreaded
 
-class OESDKTestContext(OETestContext):
+class OESDKTestContext(OETestContextThreaded):
     sdk_files_dir = os.path.join(os.path.dirname(os.path.abspath(__file__)), "files")
 
     def __init__(self, td=None, logger=None, sdk_dir=None, sdk_env=None,
Signature · 1 line
2.1.4
#18 lore raw

PATCH 18/36 oeqa/core: Add list tests support in context and runner

In reply to Aníbal Limón

A common operation is to list tests, currently only selftest support it, this changes enables this functionality into the core framework.

---
 meta/lib/oeqa/core/context.py | 22 +++++++---
 meta/lib/oeqa/core/runner.py  | 98 +++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 115 insertions(+), 5 deletions(-)
meta/lib/oeqa/core/context.py +17 -5
index 54958ad..bc958d0 100644
@@ -58,6 +58,10 @@ class OETestContext(object):
 
         return result
 
+    def listTests(self, display_type):
+        self.runner = self.runnerClass(self, verbosity=2)
+        return self.runner.list_tests(self.suites, display_type)
+
 class OETestContextExecutor(object):
     _context_class = OETestContext
 
@@ -79,9 +83,14 @@ class OETestContextExecutor(object):
         self.parser.add_argument('--output-log', action='store',
                 default=self.default_output_log,
                 help="results output log, default: %s" % self.default_output_log)
-        self.parser.add_argument('--run-tests', action='store',
+
+        group = self.parser.add_mutually_exclusive_group()
+        group.add_argument('--run-tests', action='store',
                 default=self.default_tests,
                 help="tests to run in <module>[.<class>[.<name>]] format. Just works for modules now")
+        group.add_argument('--list-tests', action='store',
+                choices=('module', 'class', 'name'),
+                help="lists available tests")
 
         if self.default_test_data:
             self.parser.add_argument('--test-data-file', action='store',
@@ -126,7 +135,6 @@ class OETestContextExecutor(object):
         else:
             self.tc_kwargs['init']['td'] = {}
 
-
         if args.run_tests:
             self.tc_kwargs['load']['modules'] = args.run_tests.split()
         else:
@@ -139,9 +147,13 @@ class OETestContextExecutor(object):
 
         self.tc = self._context_class(**self.tc_kwargs['init'])
         self.tc.loadTests(self.module_paths, **self.tc_kwargs['load'])
-        rc = self.tc.runTests(**self.tc_kwargs['run'])
-        rc.logSummary(self.name)
-        rc.logDetails()
+
+        if args.list_tests:
+            rc = self.tc.listTests(args.list_tests, **self.tc_kwargs['run'])
+        else:
+            rc = self.tc.runTests(**self.tc_kwargs['run'])
+            rc.logSummary(self.name)
+            rc.logDetails()
 
         output_link = os.path.join(os.path.dirname(args.output_log),
                 "%s-results.log" % self.name)
meta/lib/oeqa/core/runner.py +98 -0

107 lines not on this page · raw message

Signature · 1 line
2.1.4
#19 lore raw

PATCH 19/36 oeqa/core: Add support for run tests by module, class and name

In reply to Aníbal Limón

This will enable only run certain module tests and filter by class and test name.

---
 meta/lib/oeqa/core/context.py |  6 ++--
 meta/lib/oeqa/core/loader.py  | 66 ++++++++++++++++++++++++++++++++++++++++++-
 2 files changed, 68 insertions(+), 4 deletions(-)
meta/lib/oeqa/core/context.py +3 -3
index bc958d0..28ae017 100644
@@ -85,9 +85,9 @@ class OETestContextExecutor(object):
                 help="results output log, default: %s" % self.default_output_log)
 
         group = self.parser.add_mutually_exclusive_group()
-        group.add_argument('--run-tests', action='store',
+        group.add_argument('--run-tests', action='store', nargs='+',
                 default=self.default_tests,
-                help="tests to run in <module>[.<class>[.<name>]] format. Just works for modules now")
+                help="tests to run in <module>[.<class>[.<name>]]")
         group.add_argument('--list-tests', action='store',
                 choices=('module', 'class', 'name'),
                 help="lists available tests")
@@ -136,7 +136,7 @@ class OETestContextExecutor(object):
             self.tc_kwargs['init']['td'] = {}
 
         if args.run_tests:
-            self.tc_kwargs['load']['modules'] = args.run_tests.split()
+            self.tc_kwargs['load']['modules'] = args.run_tests
         else:
             self.tc_kwargs['load']['modules'] = None
 
meta/lib/oeqa/core/loader.py +65 -1

84 lines not on this page · raw message

Signature · 1 line
2.1.4
#20 lore raw

PATCH 20/36 classes/test{export, images}: Change modules to list

In reply to Aníbal Limón

With the new filters by <module>.[class].[testname] the modules arg is expected to be a list so use split into TEST_SUITES variable.

---
 meta/classes/testexport.bbclass | 2 +-
 meta/classes/testimage.bbclass  | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)
meta/classes/testexport.bbclass +1 -1
index 56edda9..d070f07 100644
@@ -113,7 +113,7 @@ def copy_needed_files(d, tc):
     oe.path.remove(cases_path)
     bb.utils.mkdirhier(cases_path)
     test_paths = get_runtime_paths(d)
-    test_modules = d.getVar('TEST_SUITES')
+    test_modules = d.getVar('TEST_SUITES').split()
     tc.loadTests(test_paths, modules=test_modules)
     for f in getSuiteCasesFiles(tc.suites):
         shutil.copy2(f, cases_path)
meta/classes/testimage.bbclass +1 -1
index d42907c..1185593 100644
@@ -257,7 +257,7 @@ def testimage_main(d):
 
     # Load tests before starting the target
     test_paths = get_runtime_paths(d)
-    test_modules = d.getVar('TEST_SUITES')
+    test_modules = d.getVar('TEST_SUITES').split()
     tc.loadTests(test_paths, modules=test_modules)
 
     if not getSuiteCases(tc.suites):
Signature · 1 line
2.1.4
#21 lore raw

PATCH 21/36 oeqa/runtime/case: Don't use OEQA framework internal methods

In reply to Aníbal Limón

The OEQA framework has internal methods for provide functionality in decorators so Test components aren't expected to override it.

Use the base unittest methods for setUp and tearDown.

---
 meta/lib/oeqa/runtime/case.py | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)
meta/lib/oeqa/runtime/case.py +4 -4
index c1485c9..2f190ac 100644
@@ -8,10 +8,10 @@ class OERuntimeTestCase(OETestCase):
     # target instance set by OERuntimeTestLoader.
     target = None
 
-    def _oeSetUp(self):
-        super(OERuntimeTestCase, self)._oeSetUp()
+    def setUp(self):
+        super(OERuntimeTestCase, self).setUp()
         install_package(self)
 
-    def _oeTearDown(self):
-        super(OERuntimeTestCase, self)._oeTearDown()
+    def tearDown(self):
+        super(OERuntimeTestCase, self).tearDown()
         uninstall_package(self)
Signature · 1 line
2.1.4
#22 lore raw

PATCH 22/36 oeqa/core/README: Improve documentation

In reply to Aníbal Limón

From: Leonardo Sandoval <[email protected]>

Most of the text include on this text refactor came from [1].

[1] http://lists.openembedded.org/pipermail/openembedded-architecture/2016-December/000351.html

---
 meta/lib/oeqa/core/README | 81 +++++++++++++++++++++++++++++++++++------------
 1 file changed, 60 insertions(+), 21 deletions(-)
meta/lib/oeqa/core/README +60 -21
index 0c859fd..f67dff7 100644
@@ -1,38 +1,77 @@
-= OEQA Framework =
+= OEQA (v2) Framework =
 
 == Introduction ==
 
-This is the new OEQA framework the base clases of the framework
-are in this module oeqa/core the subsequent components needs to
-extend this classes.
+This is the new (version 2) OEQA framework. Base clases are located inside the
+'oeqa/core' folder and subsequent components needs to extend from these.
 
-A new/unique runner was created called oe-test and is under scripts/
-oe-test, this new runner scans over oeqa module searching for test
-components that supports OETestContextExecutor implemented in context
-module (i.e. oeqa/core/context.py).
+The main design consideration was to implement the needed functionality
+on top of Python unittest framework. To archive the latter, the following
+modules are present:
 
-For execute an example:
+    * oeqa/core/runner.py: Provides OETestResult and OETestRunner base
+      classes extending the unittest ones. This class has the support for
+      export results to different formats currently RAW and XML.
 
-$ source oe-init-build-env
-$ oe-test core
+    * oeqa/core/loader.py: Provides OETestLoader extending unittest ones,
+      also implements unified way for decorator support and for filtering test
+      cases.
 
-For list supported components:
+    * oeqa/core/case.py: Provides OETestCase base class extending
+      unittest.TestCase and provides access to the Test data (td), Test context
+      and Logger functionality.
 
-$ oe-test -h
+    * oeqa/core/decorator: Provides OETestDecorator a new class to implement
+      decorators for Test cases.
 
-== Create new Test component ==
+    * oeqa/core/context: Provides OETestContext a high-level API for
+      loadTests and runTests of certain Test component and
+      OETestContextExecutor a base class to enable oe-test to discover/use
+      the Test component.
 
-Usally for add a new Test component the developer needs to extend
-OETestContext/OETestContextExecutor in context.py and OETestCase in
-case.py.
+In the other hand, a new 'oe-test' runner is located under 'scripts', allowing scans for components
+that supports OETestContextExecutor (see below).
 
-== How to run the testing of the OEQA framework ==
+== Terminology ==
+
+    * Test component: The area of testing in the Project, for example: runtime, SDK, eSDK, selftest.
+
+    * Test data: Data associated with the Test component. Currently we use bitbake datastore as
+      a Test data input.
+
+    * Test context: A context of what tests needs to be run and how to do it, additionally provides
+      access to the Test data and could have custom methods, attrs.
+
+== oe-test ==
+
+The new tool oe-test (located at scripts) has the ability to scan the code base for test
+components and provide a unified way to run test cases. Internally it scans folders inside
+oeqa module in order to find specific classes that
+implements a test component.
+
+== Usage ==
+
+Executing the example test component
+
+    $ source oe-init-build-env
+    $ oe-test core
+
+Getting help
+
+    $ oe-test -h
+
+== Creating new Test Component ==
+
+Adding a new test component the developer needs to extend OETestContext/OETestContextExecutor
+(from context.py) and OETestCase (from case.py)
+
+== Selftesting the framework ==
 
 Run all tests:
 
-$ PATH=$PATH:../../ python3 -m unittest discover -s tests
+    $ PATH=$PATH:../../ python3 -m unittest discover -s tests
 
 Run some test:
 
-$ cd tests/
-$ ./test_data.py
+    $ cd tests/
+    $ ./test_data.py
Signature · 1 line
2.1.4
#23 lore raw

PATCH 23/36 oeqa/core/case: fix typo on comment about exception name

In reply to Aníbal Limón

From: Leonardo Sandoval <[email protected]>

---
 meta/lib/oeqa/core/case.py | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
meta/lib/oeqa/core/case.py +1 -1
index d2dbf20..917a2aa 100644
@@ -23,7 +23,7 @@ class OETestCase(unittest.TestCase):
 
     # td_vars has the variables needed by a test class
     # or test case instance, if some var isn't into td a
-    # OEMissingVariable exception is raised
+    # OEQAMissingVariable exception is raised
     td_vars = None
 
     @classmethod
Signature · 1 line
2.1.4
#24 lore raw

PATCH 24/36 oeqa/core/context: Raise exception when a manifest is specified but missing

In reply to Aníbal Limón

From: Leonardo Sandoval <[email protected]>

---
 meta/lib/oeqa/core/context.py   | 3 ++-
 meta/lib/oeqa/core/exception.py | 3 +++
 2 files changed, 5 insertions(+), 1 deletion(-)
meta/lib/oeqa/core/context.py +2 -1
index 28ae017..1ac2878 100644
@@ -10,6 +10,7 @@ import collections
 
 from oeqa.core.loader import OETestLoader
 from oeqa.core.runner import OETestRunner
+from oeqa.core.exception import OEQAMissingManifest
 
 class OETestContext(object):
     loaderClass = OETestLoader
@@ -30,7 +31,7 @@ class OETestContext(object):
 
     def _read_modules_from_manifest(self, manifest):
         if not os.path.exists(manifest):
-            raise
+            raise OEQAMissingManifest("Manifest does not exist on %s" % manifest)
 
         modules = []
         for line in open(manifest).readlines():
meta/lib/oeqa/core/exception.py +3 -0
index 2dfd840..97ef19d 100644
@@ -12,3 +12,6 @@ class OEQAMissingVariable(OEQAException):
 
 class OEQADependency(OEQAException):
     pass
+
+class OEQAMissingManifest(OEQAException):
+    pass
Signature · 1 line
2.1.4
#25 lore raw

PATCH 25/36 oeqa/core/context: Use a default iterable modules object

In reply to Aníbal Limón

From: Leonardo Sandoval <[email protected]>

The OETestLoader.modules must be an iterable object, otherwise checking presence of specific modules with the 'in' operator fails with the following command/error:

% oe-test core
.. - core - INFO - Running bitbake -p
Traceback (most recent call last):
File "..poky2/scripts/oe-test", line 108, in <module>
ret = main()
File "..poky2/scripts/oe-test", line 93, in main
results = args.func(logger, args)
File "..poky2/meta/lib/oeqa/core/context.py", line 235, in run
self.tc.loadTests(self.module_paths, **self.tc_kwargs['load'])
File "..poky2/meta/lib/oeqa/core/context.py", line 53, in loadTests
self.suites = self.loader.discover()
File "..poky2/meta/lib/oeqa/core/loader.py", line 204, in discover
pattern='*.py', top_level_dir=path)
File "/usr/lib64/python3.4/unittest/loader.py", line 275, in discover
tests = list(self._find_tests(start_dir, pattern))
File "/usr/lib64/python3.4/unittest/loader.py", line 339, in _find_tests
yield self.loadTestsFromModule(module)
File "..poky2/meta/lib/oeqa/core/loader.py", line 266, in loadTestsFromModule
and module.__name__ in self.modules \
TypeError: argument of type 'NoneType' is not iterable

---
 meta/lib/oeqa/core/context.py | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
meta/lib/oeqa/core/context.py +1 -1
index 1ac2878..20d8236 100644
@@ -139,7 +139,7 @@ class OETestContextExecutor(object):
         if args.run_tests:
             self.tc_kwargs['load']['modules'] = args.run_tests
         else:
-            self.tc_kwargs['load']['modules'] = None
+            self.tc_kwargs['load']['modules'] = []
 
         self.module_paths = args.CASES_PATHS
 
Signature · 1 line
2.1.4
#26 lore raw

PATCH 26/36 oeqa/core/context: Omit docstring output on XMLResult

In reply to Aníbal Limón

From: Leonardo Sandoval <[email protected]>

By default, the xml runner class prints out the docstring for every unit test but it order to keep the same format as the standard runner, avoid docstring output setting descriptions to False.

---
 meta/lib/oeqa/core/context.py | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
meta/lib/oeqa/core/context.py +1 -1
index 20d8236..6667f46 100644
@@ -51,7 +51,7 @@ class OETestContext(object):
         self.suites = self.loader.discover()
 
     def runTests(self):
-        self.runner = self.runnerClass(self, verbosity=2)
+        self.runner = self.runnerClass(self, descriptions=False, verbosity=2)
 
         self._run_start_time = time.time()
         result = self.runner.run(self.suites)
Signature · 1 line
2.1.4
#27 lore raw

PATCH 27/36 oeqa/core/context: Include a _pre_run method

In reply to Aníbal Limón

From: Leonardo Sandoval <[email protected]>

This pre runner will serve to allow Test components executes code previously of the run a suite.

---
 meta/lib/oeqa/core/context.py   | 4 ++++
 meta/lib/oeqa/core/exception.py | 3 +++
 scripts/oe-test                 | 3 +++
 3 files changed, 10 insertions(+)
meta/lib/oeqa/core/context.py +4 -0
index 6667f46..5f399fd 100644
@@ -143,6 +143,9 @@ class OETestContextExecutor(object):
 
         self.module_paths = args.CASES_PATHS
 
+    def _pre_run(self):
+        pass
+
     def run(self, logger, args):
         self._process_args(logger, args)
 
@@ -152,6 +155,7 @@ class OETestContextExecutor(object):
         if args.list_tests:
             rc = self.tc.listTests(args.list_tests, **self.tc_kwargs['run'])
         else:
+            self._pre_run()
             rc = self.tc.runTests(**self.tc_kwargs['run'])
             rc.logSummary(self.name)
             rc.logDetails()
meta/lib/oeqa/core/exception.py +3 -0
index 97ef19d..a07961a 100644
@@ -15,3 +15,6 @@ class OEQADependency(OEQAException):
 
 class OEQAMissingManifest(OEQAException):
     pass
+
+class OEQAPreRun(OEQAException):
+    pass
scripts/oe-test +3 -0
index a1d282d..f90d85b 100755
@@ -26,6 +26,7 @@ except ImportError:
     pass
 
 from oeqa.core.context import OETestContextExecutor
+from oeqa.core.exception import OEQAPreRun
 
 logger = scriptutils.logger_create('oe-test')
 
@@ -92,6 +93,8 @@ def main():
         ret = err.code
     except argparse_oe.ArgumentUsageError as ae:
         parser.error_subcommand(ae.message, ae.subcommand)
+    except OEQAPreRun as pr:
+        ret = 1
 
     return ret
 
Signature · 1 line
2.1.4
#28 lore raw

PATCH 28/36 scripts/oe-test: Move load_test_components to oeqa.utils

In reply to Aníbal Limón

In order to maintain compatibility with oe-selftest, the load_test_components needs to be re-used, so the script executor needs to pass to only load components supported by certain script (oe-test, oe-selftest).

---
 meta/lib/oeqa/core/context.py   |  1 +
 meta/lib/oeqa/utils/__init__.py | 37 ++++++++++++++++++++++++++++++++++++-
 scripts/oe-test                 | 31 ++-----------------------------
 3 files changed, 39 insertions(+), 30 deletions(-)
meta/lib/oeqa/core/context.py +1 -0
index 5f399fd..0dbf5c3 100644
@@ -65,6 +65,7 @@ class OETestContext(object):
 
 class OETestContextExecutor(object):
     _context_class = OETestContext
+    _script_executor = 'oe-test'
 
     name = 'core'
     help = 'core test component example'
meta/lib/oeqa/utils/__init__.py +36 -1
index 485de03..d38a323 100644
@@ -2,7 +2,6 @@
 from pkgutil import extend_path
 __path__ = extend_path(__path__, __name__)
 
-
 # Borrowed from CalledProcessError
 
 class CommandError(Exception):
@@ -66,3 +65,39 @@ def make_logger_bitbake_compatible(logger):
     logger.info = _bitbake_log_info
 
     return logger
+
+def load_test_components(logger, executor):
+    import sys
+    import os
+    import importlib
+
+    from oeqa.core.context import OETestContextExecutor
+
+    components = {}
+
+    for path in sys.path:
+        base_dir = os.path.join(path, 'oeqa')
+        if os.path.exists(base_dir) and os.path.isdir(base_dir):
+            for file in os.listdir(base_dir):
+                comp_name = file
+                comp_context = os.path.join(base_dir, file, 'context.py')
+                if os.path.exists(comp_context):
+                    comp_plugin = importlib.import_module('oeqa.%s.%s' % \
+                            (comp_name, 'context'))
+                    try:
+                        if not issubclass(comp_plugin._executor_class,
+                                OETestContextExecutor):
+                            raise TypeError("Component %s in %s, _executor_class "\
+                                "isn't derived from OETestContextExecutor."\
+                                % (comp_name, comp_context))
+
+                        if comp_plugin._executor_class._script_executor \
+                                != executor:
+                            continue
+
+                        components[comp_name] = comp_plugin._executor_class()
+                    except AttributeError:
+                        raise AttributeError("Component %s in %s don't have "\
+                                "_executor_class defined." % (comp_name, comp_context))
+
+    return components
scripts/oe-test +2 -29
index f90d85b..0a36b78 100755
@@ -8,7 +8,6 @@
 import os
 import sys
 import argparse
-import importlib
 import logging
 
 scripts_path = os.path.dirname(os.path.realpath(__file__))
@@ -25,37 +24,11 @@ try:
 except ImportError:
     pass
 
-from oeqa.core.context import OETestContextExecutor
+from oeqa.utils import load_test_components
 from oeqa.core.exception import OEQAPreRun
 
 logger = scriptutils.logger_create('oe-test')
 
-def _load_test_components(logger):
-    components = {}
-
-    for path in sys.path:
-        base_dir = os.path.join(path, 'oeqa')
-        if os.path.exists(base_dir) and os.path.isdir(base_dir):
-            for file in os.listdir(base_dir):
-                comp_name = file
-                comp_context = os.path.join(base_dir, file, 'context.py')
-                if os.path.exists(comp_context):
-                    comp_plugin = importlib.import_module('oeqa.%s.%s' % \
-                            (comp_name, 'context'))
-                    try:
-                        if not issubclass(comp_plugin._executor_class,
-                                OETestContextExecutor):
-                            raise TypeError("Component %s in %s, _executor_class "\
-                                "isn't derived from OETestContextExecutor."\
-                                % (comp_name, comp_context))
-
-                        components[comp_name] = comp_plugin._executor_class()
-                    except AttributeError:
-                        raise AttributeError("Component %s in %s don't have "\
-                                "_executor_class defined." % (comp_name, comp_context))
-
-    return components
-
 def main():
     parser = argparse_oe.ArgumentParser(description="OpenEmbedded test tool",
                                         add_help=False,
@@ -74,7 +47,7 @@ def main():
     elif global_args.quiet:
         logger.setLevel(logging.ERROR)
 
-    components = _load_test_components(logger)
+    components = load_test_components(logger, 'oe-test')
 
     subparsers = parser.add_subparsers(dest="subparser_name", title='subcommands', metavar='<subcommand>')
     subparsers.add_subparser_group('components', 'Test components')
Signature · 1 line
2.1.4
#29 lore raw

PATCH 29/36 oeqa/selftest: Move base class to case module

In reply to Aníbal Limón

To match the new structure of the OEQA framework.

---
 meta/lib/oeqa/selftest/{base.py => case.py} | 0
 1 file changed, 0 insertions(+), 0 deletions(-)
 rename meta/lib/oeqa/selftest/{base.py => case.py} (100%)
meta/lib/oeqa/selftest/case.py renamed from meta/lib/oeqa/selftest/base.py +0 -0
similarity index 100%
rename from meta/lib/oeqa/selftest/base.py
rename to meta/lib/oeqa/selftest/case.py
Signature · 1 line
2.1.4
#30 lore raw

PATCH 30/36 oeqa/selftest/case: Migrate case class to the new OEQA framework

In reply to Aníbal Limón

From: Leonardo Sandoval <[email protected]>

Summary of the changes:

- Use OETestCase as base class instead of unittest.TestCase
- Remove LogResults decorator the new framework provides logging into the core functionality.
- Logger is now self.logger instead of self.log
- Move comments into docstrings in several help methods
- Use get_test_layer() method instead of access monkey patched variable in old oeSelfTest case class.

---
 meta/lib/oeqa/selftest/case.py | 111 +++++++++++++++++++----------------------
 1 file changed, 51 insertions(+), 60 deletions(-)
meta/lib/oeqa/selftest/case.py +51 -60
index 43a1951..95a8769 100644
@@ -1,31 +1,19 @@
-# Copyright (c) 2013 Intel Corporation
-#
+# Copyright (C) 2013-2017 Intel Corporation
 # Released under the MIT license (see COPYING.MIT)
 
-
-# DESCRIPTION
-# Base class inherited by test classes in meta/lib/oeqa/selftest
-
-import unittest
-import os
 import sys
+import os
 import shutil
-import logging
+import glob
 import errno
-
-import oeqa.utils.ftools as ftools
-from oeqa.utils.commands import runCmd, bitbake, get_bb_var, get_test_layer
-from oeqa.utils.decorators import LogResults
 from random import choice
-import glob
 from unittest.util import safe_repr
 
-@LogResults
-class oeSelfTest(unittest.TestCase):
-
-    log = logging.getLogger("selftest.base")
-    longMessage = True
+import oeqa.utils.ftools as ftools
+from oeqa.utils.commands import runCmd, bitbake, get_bb_var, get_test_layer
+from oeqa.core.case import OETestCase
 
+class OESelftestTestCase(OETestCase):
     def __init__(self, methodName="runTest"):
         self.builddir = os.environ.get("BUILDDIR")
         self.localconf_path = os.path.join(self.builddir, "conf/local.conf")
@@ -36,23 +24,26 @@ class oeSelfTest(unittest.TestCase):
                                                   "conf/bblayers.bk")
         self.testinc_bblayers_path = os.path.join(self.builddir, "conf/bblayers.inc")
         self.machineinc_path = os.path.join(self.builddir, "conf/machine.inc")
-        self.testlayer_path = oeSelfTest.testlayer_path
+        self.testlayer_path = get_test_layer()
         self._extra_tear_down_commands = []
         self._track_for_cleanup = [
             self.testinc_path, self.testinc_bblayers_path,
             self.machineinc_path, self.localconf_backup,
             self.local_bblayers_backup]
-        super(oeSelfTest, self).__init__(methodName)
+
+        super(OESelftestTestCase, self).__init__(methodName)
 
     def setUp(self):
+        super(OESelftestTestCase, self).setUp()
         os.chdir(self.builddir)
         # Check if local.conf or bblayers.conf files backup exists
         # from a previous failed test and restore them
         if os.path.isfile(self.localconf_backup) or os.path.isfile(
                 self.local_bblayers_backup):
-            self.log.debug("Found a local.conf and/or bblayers.conf backup \
-from a previously aborted test. Restoring these files now, but tests should \
-be re-executed from a clean environment to ensure accurate results.")
+            self.logger.debug("\
+Found a local.conf and/or bblayers.conf backup from a previously aborted test.\
+Restoring these files now, but tests should be re-executed from a clean environment\
+to ensure accurate results.")
             try:
                 shutil.copyfile(self.localconf_backup, self.localconf_path)
             except OSError as e:
@@ -67,9 +58,8 @@ be re-executed from a clean environment to ensure accurate results.")
         else:
             # backup local.conf and bblayers.conf
             shutil.copyfile(self.localconf_path, self.localconf_backup)
-            shutil.copyfile(self.local_bblayers_path,
-                            self.local_bblayers_backup)
-            self.log.debug("Creating local.conf and bblayers.conf backups.")
+            shutil.copyfile(self.local_bblayers_path, self.local_bblayers_backup)
+            self.logger.debug("Creating local.conf and bblayers.conf backups.")
         # we don't know what the previous test left around in config or inc files
         # if it failed so we need a fresh start
         try:
@@ -116,8 +106,8 @@ be re-executed from a clean environment to ensure accurate results.")
                 if not result.status ==  0:
                     failed_extra_commands.append(command)
             if failed_extra_commands:
-                self.log.warning("tearDown commands have failed: %s" % ', '.join(map(str, failed_extra_commands)))
-                self.log.debug("Trying to move on.")
+                self.logger.warning("tearDown commands have failed: %s" % ', '.join(map(str, failed_extra_commands)))
+                self.logger.debug("Trying to move on.")
             self._extra_tear_down_commands = []
 
         if self._track_for_cleanup:
@@ -129,90 +119,92 @@ be re-executed from a clean environment to ensure accurate results.")
             self._track_for_cleanup = []
 
         self.tearDownLocal()
+        super(OESelftestTestCase, self).tearDown()
 
     def tearDownLocal(self):
         pass
 
-    # add test specific commands to the tearDown method.
     def add_command_to_tearDown(self, command):
-        self.log.debug("Adding command '%s' to tearDown for this test." % command)
+        """Add test specific commands to the tearDown method"""
+        self.logger.debug("Adding command '%s' to tearDown for this test." % command)
         self._extra_tear_down_commands.append(command)
-    # add test specific files or directories to be removed in the tearDown method
+
     def track_for_cleanup(self, path):
-        self.log.debug("Adding path '%s' to be cleaned up when test is over" % path)
+        """Add test specific files or directories to be removed in the tearDown method"""
+        self.logger.debug("Adding path '%s' to be cleaned up when test is over" % path)
         self._track_for_cleanup.append(path)
 
-    # write to <builddir>/conf/selftest.inc
     def write_config(self, data):
-        self.log.debug("Writing to: %s\n%s\n" % (self.testinc_path, data))
+        """Write to <builddir>/conf/selftest.inc"""
+
+        self.logger.debug("Writing to: %s\n%s\n" % (self.testinc_path, data))
         ftools.write_file(self.testinc_path, data)
 
         custommachine = os.getenv('CUSTOMMACHINE')
         if custommachine and 'MACHINE' in data:
             machine = get_bb_var('MACHINE')
-            self.log.warning('MACHINE overridden: %s' % machine)
+            self.logger.warning('MACHINE overridden: %s' % machine)
 
-    # append to <builddir>/conf/selftest.inc
     def append_config(self, data):
-        self.log.debug("Appending to: %s\n%s\n" % (self.testinc_path, data))
+        """Append to <builddir>/conf/selftest.inc"""
+        self.logger.debug("Appending to: %s\n%s\n" % (self.testinc_path, data))
         ftools.append_file(self.testinc_path, data)
 
         custommachine = os.getenv('CUSTOMMACHINE')
         if custommachine and 'MACHINE' in data:
             machine = get_bb_var('MACHINE')
-            self.log.warning('MACHINE overridden: %s' % machine)
+            self.logger.warning('MACHINE overridden: %s' % machine)
 
-    # remove data from <builddir>/conf/selftest.inc
     def remove_config(self, data):
-        self.log.debug("Removing from: %s\n%s\n" % (self.testinc_path, data))
+        """Remove data from <builddir>/conf/selftest.inc"""
+        self.logger.debug("Removing from: %s\n%s\n" % (self.testinc_path, data))
         ftools.remove_from_file(self.testinc_path, data)
 
-    # write to meta-sefltest/recipes-test/<recipe>/test_recipe.inc
     def write_recipeinc(self, recipe, data):
+        """Write to meta-sefltest/recipes-test/<recipe>/test_recipe.inc"""
         inc_file = os.path.join(self.testlayer_path, 'recipes-test', recipe, 'test_recipe.inc')
-        self.log.debug("Writing to: %s\n%s\n" % (inc_file, data))
+        self.logger.debug("Writing to: %s\n%s\n" % (inc_file, data))
         ftools.write_file(inc_file, data)
 
-    # append data to meta-sefltest/recipes-test/<recipe>/test_recipe.inc
     def append_recipeinc(self, recipe, data):
+        """Append data to meta-sefltest/recipes-test/<recipe>/test_recipe.inc"""
         inc_file = os.path.join(self.testlayer_path, 'recipes-test', recipe, 'test_recipe.inc')
-        self.log.debug("Appending to: %s\n%s\n" % (inc_file, data))
+        self.logger.debug("Appending to: %s\n%s\n" % (inc_file, data))
         ftools.append_file(inc_file, data)
 
-    # remove data from meta-sefltest/recipes-test/<recipe>/test_recipe.inc
     def remove_recipeinc(self, recipe, data):
+        """Remove data from meta-sefltest/recipes-test/<recipe>/test_recipe.inc"""
         inc_file = os.path.join(self.testlayer_path, 'recipes-test', recipe, 'test_recipe.inc')
-        self.log.debug("Removing from: %s\n%s\n" % (inc_file, data))
+        self.logger.debug("Removing from: %s\n%s\n" % (inc_file, data))
         ftools.remove_from_file(inc_file, data)
 
-    # delete meta-sefltest/recipes-test/<recipe>/test_recipe.inc file
     def delete_recipeinc(self, recipe):
+        """Delete meta-sefltest/recipes-test/<recipe>/test_recipe.inc file"""
         inc_file = os.path.join(self.testlayer_path, 'recipes-test', recipe, 'test_recipe.inc')
-        self.log.debug("Deleting file: %s" % inc_file)
+        self.logger.debug("Deleting file: %s" % inc_file)
         try:
             os.remove(inc_file)
         except OSError as e:
             if e.errno != errno.ENOENT:
                 raise
-
-    # write to <builddir>/conf/bblayers.inc
     def write_bblayers_config(self, data):
-        self.log.debug("Writing to: %s\n%s\n" % (self.testinc_bblayers_path, data))
+        """Write to <builddir>/conf/bblayers.inc"""
+        self.logger.debug("Writing to: %s\n%s\n" % (self.testinc_bblayers_path, data))
         ftools.write_file(self.testinc_bblayers_path, data)
 
-    # append to <builddir>/conf/bblayers.inc
     def append_bblayers_config(self, data):
-        self.log.debug("Appending to: %s\n%s\n" % (self.testinc_bblayers_path, data))
+        """Append to <builddir>/conf/bblayers.inc"""
+        self.logger.debug("Appending to: %s\n%s\n" % (self.testinc_bblayers_path, data))
         ftools.append_file(self.testinc_bblayers_path, data)
 
-    # remove data from <builddir>/conf/bblayers.inc
     def remove_bblayers_config(self, data):
-        self.log.debug("Removing from: %s\n%s\n" % (self.testinc_bblayers_path, data))
+        """Remove data from <builddir>/conf/bblayers.inc"""
+        self.logger.debug("Removing from: %s\n%s\n" % (self.testinc_bblayers_path, data))
         ftools.remove_from_file(self.testinc_bblayers_path, data)
 
-    # write to <builddir>/conf/machine.inc
     def set_machine_config(self, data):
-        self.log.debug("Writing to: %s\n%s\n" % (self.machineinc_path, data))
+        """Write to <builddir>/conf/machine.inc"""
+        self.logger.debug("Writing to: %s\n%s\n" % (self.machineinc_path, data))
         ftools.write_file(self.machineinc_path, data)
 
     # check does path exist    
@@ -227,7 +219,6 @@ be re-executed from a clean environment to ensure accurate results.")
             msg = self._formatMessage(msg, "%s exists when it should not" % safe_repr(expr))
             raise self.failureException(msg)
 
-
 def get_available_machines():
     # Get a list of all available machines
     bbpath = get_bb_var('BBPATH').split(':')
@@ -237,7 +228,7 @@ def get_available_machines():
         found_machines = glob.glob(os.path.join(path, 'conf', 'machine', '*.conf'))
         if found_machines:
             for i in found_machines:
-                # eg: '/home/<user>/poky/meta-intel/conf/machine/intel-core2-32.conf'
+            # eg: '/home/<user>/poky/meta-intel/conf/machine/intel-core2-32.conf'
                 machines.append(os.path.splitext(os.path.basename(i))[0])
 
     return machines
Signature · 1 line
2.1.4
#31 lore raw

PATCH 31/36 scripts/oe-selftest: Move {add, remove}_include files to case

In reply to Aníbal Limón

From: Leonardo Sandoval <[email protected]>

The oe-selftest creates include files to store custom configuration to make specific tests, every class executes a different test and may be uses custom configuration.

So move to case class in order to simplify oe-selftest script and later implement later a build folder per class.

---
 meta/lib/oeqa/selftest/case.py | 76 ++++++++++++++++++++++++++++++++++++------
 scripts/oe-selftest            | 54 ------------------------------
 2 files changed, 66 insertions(+), 64 deletions(-)
meta/lib/oeqa/selftest/case.py +66 -10
index 95a8769..ca95b7e 100644
@@ -14,17 +14,17 @@ from oeqa.utils.commands import runCmd, bitbake, get_bb_var, get_test_layer
 from oeqa.core.case import OETestCase
 
 class OESelftestTestCase(OETestCase):
+    builddir = os.environ.get("BUILDDIR") or ""
+    localconf_path = os.path.join(builddir, "conf/local.conf")
+    localconf_backup = os.path.join(builddir, "conf/local.bk")
+    testinc_path = os.path.join(builddir, "conf/selftest.inc")
+    local_bblayers_path = os.path.join(builddir, "conf/bblayers.conf")
+    local_bblayers_backup = os.path.join(builddir, "conf/bblayers.bk")
+    testinc_bblayers_path = os.path.join(builddir, "conf/bblayers.inc")
+    machineinc_path = os.path.join(builddir, "conf/machine.inc")
+    testlayer_path = get_test_layer()
+
     def __init__(self, methodName="runTest"):
-        self.builddir = os.environ.get("BUILDDIR")
-        self.localconf_path = os.path.join(self.builddir, "conf/local.conf")
-        self.localconf_backup = os.path.join(self.builddir, "conf/local.bk")
-        self.testinc_path = os.path.join(self.builddir, "conf/selftest.inc")
-        self.local_bblayers_path = os.path.join(self.builddir, "conf/bblayers.conf")
-        self.local_bblayers_backup = os.path.join(self.builddir,
-                                                  "conf/bblayers.bk")
-        self.testinc_bblayers_path = os.path.join(self.builddir, "conf/bblayers.inc")
-        self.machineinc_path = os.path.join(self.builddir, "conf/machine.inc")
-        self.testlayer_path = get_test_layer()
         self._extra_tear_down_commands = []
         self._track_for_cleanup = [
             self.testinc_path, self.testinc_bblayers_path,
@@ -33,6 +33,62 @@ class OESelftestTestCase(OETestCase):
 
         super(OESelftestTestCase, self).__init__(methodName)
 
+    @classmethod
+    def setUpClass(cls):
+        super(OESelftestTestCase, cls).setUpClass()
+        cls.add_include()
+
+    @classmethod
+    def tearDownClass(cls):
+        cls.remove_include()
+        cls.remove_inc_files()
+        super(OESelftestTestCase, cls).tearDownClass()
+
+    @classmethod
+    def add_include(cls):
+        if "#include added by oe-selftest" \
+            not in ftools.read_file(os.path.join(cls.builddir, "conf/local.conf")):
+                cls.logger.info("Adding: \"include selftest.inc\" in %s" % os.path.join(cls.builddir, "conf/local.conf"))
+                ftools.append_file(os.path.join(cls.builddir, "conf/local.conf"), \
+                        "\n#include added by oe-selftest\ninclude machine.inc\ninclude selftest.inc")
+
+        if "#include added by oe-selftest" \
+            not in ftools.read_file(os.path.join(cls.builddir, "conf/bblayers.conf")):
+                cls.logger.info("Adding: \"include bblayers.inc\" in bblayers.conf")
+                ftools.append_file(os.path.join(cls.builddir, "conf/bblayers.conf"), \
+                        "\n#include added by oe-selftest\ninclude bblayers.inc")
+
+    @classmethod
+    def remove_include(cls):
+        if "#include added by oe-selftest.py" \
+            in ftools.read_file(os.path.join(cls.builddir, "conf/local.conf")):
+                cls.logger.info("Removing the include from local.conf")
+                ftools.remove_from_file(os.path.join(cls.builddir, "conf/local.conf"), \
+                        "\n#include added by oe-selftest.py\ninclude machine.inc\ninclude selftest.inc")
+
+        if "#include added by oe-selftest.py" \
+            in ftools.read_file(os.path.join(cls.builddir, "conf/bblayers.conf")):
+                cls.logger.info("Removing the include from bblayers.conf")
+                ftools.remove_from_file(os.path.join(cls.builddir, "conf/bblayers.conf"), \
+                        "\n#include added by oe-selftest.py\ninclude bblayers.inc")
+
+    @classmethod
+    def remove_inc_files(cls):
+        try:
+            os.remove(os.path.join(cls.builddir, "conf/selftest.inc"))
+            for root, _, files in os.walk(get_test_layer()):
+                for f in files:
+                    if f == 'test_recipe.inc':
+                        os.remove(os.path.join(root, f))
+        except OSError as e:
+            pass
+
+        for incl_file in ['conf/bblayers.inc', 'conf/machine.inc']:
+            try:
+                os.remove(os.path.join(cls.builddir, incl_file))
+            except:
+                pass
+
     def setUp(self):
         super(OESelftestTestCase, self).setUp()
         os.chdir(self.builddir)
scripts/oe-selftest +0 -54

70 lines not on this page · raw message

Signature · 1 line
2.1.4
#32 lore raw

PATCH 32/36 oeqa/selftest/case.py: Remove machine selection logic

In reply to Aníbal Limón

From: Leonardo Sandoval <[email protected]>

The machine selection is an operation that needs to be made in every test run, the best place to it is on the context module.

Use self.tc.custommachine variable instead of use environment.

---
 meta/lib/oeqa/selftest/case.py | 37 ++++---------------------------------
 1 file changed, 4 insertions(+), 33 deletions(-)
meta/lib/oeqa/selftest/case.py +4 -33
index ca95b7e..1e6754a 100644
@@ -6,7 +6,6 @@ import os
 import shutil
 import glob
 import errno
-from random import choice
 from unittest.util import safe_repr
 
 import oeqa.utils.ftools as ftools
@@ -135,16 +134,9 @@ to ensure accurate results.")
                 if e.errno != errno.ENOENT:
                     raise
 
-        # Get CUSTOMMACHINE from env (set by --machine argument to oe-selftest)
-        custommachine = os.getenv('CUSTOMMACHINE')
-        if custommachine:
-            if custommachine == 'random':
-                machine = get_random_machine()
-            else:
-                machine = custommachine
-            machine_conf = 'MACHINE ??= "%s"\n' % machine
+        if self.tc.custommachine:
+            machine_conf = 'MACHINE ??= "%s"\n' % self.tc.custommachine
             self.set_machine_config(machine_conf)
-            print('MACHINE: %s' % machine)
 
         # tests might need their own setup
         # but if they overwrite this one they have to call
@@ -196,8 +188,7 @@ to ensure accurate results.")
         self.logger.debug("Writing to: %s\n%s\n" % (self.testinc_path, data))
         ftools.write_file(self.testinc_path, data)
 
-        custommachine = os.getenv('CUSTOMMACHINE')
-        if custommachine and 'MACHINE' in data:
+        if self.tc.custommachine and 'MACHINE' in data:
             machine = get_bb_var('MACHINE')
             self.logger.warning('MACHINE overridden: %s' % machine)
 
@@ -206,8 +197,7 @@ to ensure accurate results.")
         self.logger.debug("Appending to: %s\n%s\n" % (self.testinc_path, data))
         ftools.append_file(self.testinc_path, data)
 
-        custommachine = os.getenv('CUSTOMMACHINE')
-        if custommachine and 'MACHINE' in data:
+        if self.tc.custommachine and 'MACHINE' in data:
             machine = get_bb_var('MACHINE')
             self.logger.warning('MACHINE overridden: %s' % machine)
 
@@ -274,22 +264,3 @@ to ensure accurate results.")
         if os.path.exists(expr):
             msg = self._formatMessage(msg, "%s exists when it should not" % safe_repr(expr))
             raise self.failureException(msg)
-
-def get_available_machines():
-    # Get a list of all available machines
-    bbpath = get_bb_var('BBPATH').split(':')
-    machines = []
-
-    for path in bbpath:
-        found_machines = glob.glob(os.path.join(path, 'conf', 'machine', '*.conf'))
-        if found_machines:
-            for i in found_machines:
-            # eg: '/home/<user>/poky/meta-intel/conf/machine/intel-core2-32.conf'
-                machines.append(os.path.splitext(os.path.basename(i))[0])
-
-    return machines
-
-
-def get_random_machine():
-    # Get a random machine
-    return choice(get_available_machines())
Signature · 1 line
2.1.4
#33 lore raw

PATCH 33/36 oeqa/selftest/case: Don't figure out the testlayer inside

In reply to Aníbal Limón

The test layer is added at init of selftest and is the same across test runs so pass it as a attr in the context.

---
 meta/lib/oeqa/selftest/case.py | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)
meta/lib/oeqa/selftest/case.py +3 -3
index 1e6754a..31a11fd 100644
@@ -9,7 +9,7 @@ import errno
 from unittest.util import safe_repr
 
 import oeqa.utils.ftools as ftools
-from oeqa.utils.commands import runCmd, bitbake, get_bb_var, get_test_layer
+from oeqa.utils.commands import runCmd, bitbake, get_bb_var
 from oeqa.core.case import OETestCase
 
 class OESelftestTestCase(OETestCase):
@@ -21,7 +21,6 @@ class OESelftestTestCase(OETestCase):
     local_bblayers_backup = os.path.join(builddir, "conf/bblayers.bk")
     testinc_bblayers_path = os.path.join(builddir, "conf/bblayers.inc")
     machineinc_path = os.path.join(builddir, "conf/machine.inc")
-    testlayer_path = get_test_layer()
 
     def __init__(self, methodName="runTest"):
         self._extra_tear_down_commands = []
@@ -35,6 +34,7 @@ class OESelftestTestCase(OETestCase):
     @classmethod
     def setUpClass(cls):
         super(OESelftestTestCase, cls).setUpClass()
+        cls.testlayer_path = cls.tc.testlayer_path
         cls.add_include()
 
     @classmethod
@@ -75,7 +75,7 @@ class OESelftestTestCase(OETestCase):
     def remove_inc_files(cls):
         try:
             os.remove(os.path.join(cls.builddir, "conf/selftest.inc"))
-            for root, _, files in os.walk(get_test_layer()):
+            for root, _, files in os.walk(cls.testlayer_path):
                 for f in files:
                     if f == 'test_recipe.inc':
                         os.remove(os.path.join(root, f))
Signature · 1 line
2.1.4
#34 lore raw

PATCH 34/36 scripts/oe-selftest: Migrate to new framework into oeqa.selftest.context

In reply to Aníbal Limón

From: Leonardo Sandoval <[email protected]>

The new OEQA framework aims to re-use code into the different Test components.

The previous oe-selftest implements it-self loading, run, and list test cases in a non-standard way (unittest base) and other functionalities like logging that is now on oeqa core. This ends on a compact oe-selftest script.

All needed command line options was migrated but there are some of them pending of implementation and others deprecated.

Deprecated options:

list-tags: The tag functionality into the old oeqa framework isn't
work, the selftest doesn't has tag decorators.
{run, list}-tests-by: Ambiguos options it accepts all the posibilites module,
class, name, id or tag.

Remaining to implement:

coverage: It enables covrage reports over a test run, currently isn't on
on use and some bugs [1], i filed a bug to add support to OEQA core module in this way other Test components could enable it.
repository: It push XML results into a git repository and isn't in use,
i filed a bug to implement this into OEQA core module. [2]

[1] https://bugzilla.yoctoproject.org/show_bug.cgi?id=11582#c0
[2] https://bugzilla.yoctoproject.org/show_bug.cgi?id=11583#c0

---
 meta/lib/oeqa/selftest/context.py | 224 ++++++++++++
 scripts/oe-selftest               | 737 ++------------------------------------
 2 files changed, 250 insertions(+), 711 deletions(-)
 create mode 100644 meta/lib/oeqa/selftest/context.py
meta/lib/oeqa/selftest/context.py new file +224 -0
new file mode 100644
index 0000000..ca73070
@@ -0,0 +1,224 @@
+# Copyright (C) 2017 Intel Corporation
+# Released under the MIT license (see COPYING.MIT)
+
+import os
+import time
+import glob
+import sys
+import imp
+from random import choice
+
+import oeqa
+
+from oeqa.core.context import OETestContext, OETestContextExecutor
+from oeqa.core.exception import OEQAPreRun
+
+from oeqa.utils.commands import runCmd, get_bb_vars, get_test_layer
+
+class OESelftestTestContext(OETestContext):
+    def __init__(self, td=None, logger=None, machines=None, testlayer_path=None):
+        super(OESelftestTestContext, self).__init__(td, logger)
+
+        self.machines = machines
+        self.custommachine = None
+
+        self.testlayer_path = testlayer_path
+
+    def runTests(self, machine=None):
+        if machine:
+            self.custommachine = machine
+            if machine == 'random':
+                self.custommachine = choice(self.machines)
+            self.logger.info('Run tests with custom MACHINE set to: %s' % \
+                    self.custommachine)
+        return super(OESelftestTestContext, self).runTests()
+
+    def listTests(self, display_type, machine=None):
+        return super(OESelftestTestContext, self).listTests(display_type)
+
+class OESelftestTestContextExecutor(OETestContextExecutor):
+    _context_class = OESelftestTestContext
+    _script_executor = 'oe-selftest'
+
+    name = 'oe-selftest'
+    help = 'oe-selftest test component'
+    description = 'Executes selftest tests'
+
+    def register_commands(self, logger, parser):
+        group = parser.add_mutually_exclusive_group(required=True)
+
+        group.add_argument('-a', '--run-all-tests', default=False,
+                action="store_true", dest="run_all_tests",
+                help='Run all (unhidden) tests')
+        group.add_argument('-r', '--run-tests', required=False, action='store',
+                nargs='+', dest="run_tests", default=None,
+                help='Select what tests to run (modules, classes or test methods). Format should be: <module>.<class>.<test_method>')
+
+        group.add_argument('-m', '--list-modules', required=False,
+                action="store_true", default=False,
+                help='List all available test modules.')
+        group.add_argument('--list-classes', required=False,
+                action="store_true", default=False,
+                help='List all available test classes.')
+        group.add_argument('-l', '--list-tests', required=False,
+                action="store_true", default=False,
+                help='List all available tests.')
+
+        parser.add_argument('--machine', required=False, choices=['random', 'all'],
+                            help='Run tests on different machines (random/all).')
+        
+        parser.set_defaults(func=self.run)
+
+    def _get_available_machines(self):
+        machines = []
+
+        bbpath = self.tc_kwargs['init']['td']['BBPATH'].split(':')
+    
+        for path in bbpath:
+            found_machines = glob.glob(os.path.join(path, 'conf', 'machine', '*.conf'))
+            if found_machines:
+                for i in found_machines:
+                    # eg: '/home/<user>/poky/meta-intel/conf/machine/intel-core2-32.conf'
+                    machines.append(os.path.splitext(os.path.basename(i))[0])
+    
+        return machines
+
+    def _get_cases_paths(self, bbpath):
+        cases_paths = []
+        for layer in bbpath:
+            cases_dir = os.path.join(layer, 'lib', 'oeqa', 'selftest', 'cases')
+            if os.path.isdir(cases_dir):
+                cases_paths.append(cases_dir)
+        return cases_paths
+
+    def _process_args(self, logger, args):
+        args.output_log = '%s-results-%s.log' % (self.name,
+                time.strftime("%Y%m%d%H%M%S"))
+        args.test_data_file = None
+        args.CASES_PATHS = None
+
+        super(OESelftestTestContextExecutor, self)._process_args(logger, args)
+
+        if args.list_modules:
+            args.list_tests = 'module'
+        elif args.list_classes:
+            args.list_tests = 'class'
+        elif args.list_tests:
+            args.list_tests = 'name'
+
+        self.tc_kwargs['init']['td'] = get_bb_vars()
+        self.tc_kwargs['init']['machines'] = self._get_available_machines()
+        self.tc_kwargs['init']['testlayer_path'] = get_test_layer()
+
+    def _pre_run(self):
+        def _check_required_env_variables(vars):
+            for var in vars:
+                if not os.environ.get(var):
+                    self.tc.logger.error("%s is not set. Did you forget to source your build environment setup script?" % var)
+                    raise OEQAPreRun
+
+        def _check_presence_meta_selftest():
+            builddir = os.environ.get("BUILDDIR")
+            if os.getcwd() != builddir:
+                self.tc.logger.info("Changing cwd to %s" % builddir)
+                os.chdir(builddir)
+
+            if not "meta-selftest" in self.tc.td["BBLAYERS"]:
+                self.tc.logger.warn("meta-selftest layer not found in BBLAYERS, adding it")
+                meta_selftestdir = os.path.join(
+                    self.tc.td["BBLAYERS_FETCH_DIR"], 'meta-selftest')
+                if os.path.isdir(meta_selftestdir):
+                    runCmd("bitbake-layers add-layer %s" %meta_selftestdir)
+                    # reload data is needed because a meta-selftest layer was add
+                    self.tc.td = get_bb_vars()
+                else:
+                    self.tc.logger.error("could not locate meta-selftest in:\n%s" % meta_selftestdir)
+                    raise OEQAPreRun
+
+        def _add_layer_libs():
+            bbpath = self.tc.td['BBPATH'].split(':')
+            layer_libdirs = [p for p in (os.path.join(l, 'lib') \
+                    for l in bbpath) if os.path.exists(p)]
+            if layer_libdirs:
+                self.tc.logger.info("Adding layer libraries:")
+                for l in layer_libdirs:
+                    self.tc.logger.info("\t%s" % l)
+
+                sys.path.extend(layer_libdirs)
+                imp.reload(oeqa.selftest)
+
+        _check_required_env_variables(["BUILDDIR"])
+        _check_presence_meta_selftest()
+
+        if "buildhistory.bbclass" in self.tc.td["BBINCLUDED"]:
+            self.tc.logger.error("You have buildhistory enabled already and this isn't recommended for selftest, please disable it first.")
+            raise OEQAPreRun
+
+        if "PRSERV_HOST" in self.tc.td:
+            self.tc.logger.error("Please unset PRSERV_HOST in order to run oe-selftest")
+            raise OEQAPreRun
+
+        if "SANITY_TESTED_DISTROS" in self.tc.td:
+            self.tc.logger.error("Please unset SANITY_TESTED_DISTROS in order to run oe-selftest")
+            raise OEQAPreRun
+
+        _add_layer_libs()
+
+        self.tc.logger.info("Running bitbake -p")
+        runCmd("bitbake -p")
+
+    def _internal_run(self, logger, args):
+        self.module_paths = self._get_cases_paths(
+                self.tc_kwargs['init']['td']['BBPATH'].split(':'))
+
+        self.tc = self._context_class(**self.tc_kwargs['init'])
+        self.tc.loadTests(self.module_paths, **self.tc_kwargs['load'])
+
+        if args.list_tests:
+            rc = self.tc.listTests(args.list_tests, **self.tc_kwargs['run'])
+        else:
+            self._pre_run()
+            rc = self.tc.runTests(**self.tc_kwargs['run'])
+            rc.logSummary(self.name)
+            rc.logDetails()
+
+        return rc
+    
+    def run(self, logger, args):
+        self._process_args(logger, args)
+        rc = None
+
+        if args.machine:
+            logger.info('Custom machine mode enabled. MACHINE set to %s' %
+                    args.machine)
+
+            if args.machine == 'all':
+                results = []
+                for m in self.tc_kwargs['init']['machines']:
+                    self.tc_kwargs['run']['machine'] = m
+                    results.append(self._internal_run(logger, args))
+
+                    # XXX: the oe-selftest script only needs to know if one
+                    # machine run fails
+                    for r in results:
+                        rc = r
+                        if not r.wasSuccessful():
+                            break
+
+            else:
+                self.tc_kwargs['run']['machine'] = args.machine
+                return self._internal_run(logger, args)
+
+        else:
+            self.tc_kwargs['run']['machine'] = args.machine
+            rc = self._internal_run(logger, args)
+
+        output_link = os.path.join(os.path.dirname(args.output_log),
+                "%s-results.log" % self.name)
+        if os.path.exists(output_link):
+            os.remove(output_link)
+        os.symlink(args.output_log, output_link)
+
+        return rc
+
+_executor_class = OESelftestTestContextExecutor
scripts/oe-selftest +26 -711

764 lines not on this page · raw message

Signature · 1 line
2.1.4
#35 lore raw

PATCH 35/36 oeqa/selftest/cases: Migrate test cases into the new oe-qa framework

In reply to Aníbal Limón

From: Leonardo Sandoval <[email protected]>

New framework has different classes/decorators so adapt current test cases to support these. Changes include changes on base classes and decorators.

Also include paths in selftest/__init__.py isn't needed because the loader is the standard unittest one.

---
 meta/lib/oeqa/selftest/__init__.py                 |  2 -
 .../selftest/{ => cases}/_sstatetests_noauto.py    |  7 +-
 meta/lib/oeqa/selftest/{ => cases}/archiver.py     | 14 ++--
 meta/lib/oeqa/selftest/{ => cases}/bblayers.py     | 24 +++----
 meta/lib/oeqa/selftest/{ => cases}/bbtests.py      | 57 +++++++--------
 meta/lib/oeqa/selftest/{ => cases}/buildhistory.py |  5 +-
 meta/lib/oeqa/selftest/{ => cases}/buildoptions.py | 34 ++++-----
 .../oeqa/selftest/{ => cases}/containerimage.py    |  4 +-
 meta/lib/oeqa/selftest/{ => cases}/devtool.py      | 68 +++++++++---------
 meta/lib/oeqa/selftest/{ => cases}/eSDK.py         | 18 ++---
 .../lib/oeqa/selftest/{ => cases}/image_typedep.py |  4 +-
 .../lib/oeqa/selftest/{ => cases}/imagefeatures.py | 16 ++---
 meta/lib/oeqa/selftest/{ => cases}/layerappend.py  | 15 ++--
 meta/lib/oeqa/selftest/{ => cases}/liboe.py        |  7 +-
 .../{lic-checksum.py => cases/lic_checksum.py}     |  8 +--
 meta/lib/oeqa/selftest/{ => cases}/manifest.py     | 52 +++++++-------
 .../oeqa/selftest/{ => cases}/oelib/__init__.py    |  0
 .../selftest/{ => cases}/oelib/buildhistory.py     |  4 +-
 meta/lib/oeqa/selftest/{ => cases}/oelib/elf.py    |  4 +-
 .../lib/oeqa/selftest/{ => cases}/oelib/license.py |  6 +-
 meta/lib/oeqa/selftest/{ => cases}/oelib/path.py   |  4 +-
 meta/lib/oeqa/selftest/{ => cases}/oelib/types.py  |  6 +-
 meta/lib/oeqa/selftest/{ => cases}/oelib/utils.py  |  6 +-
 meta/lib/oeqa/selftest/{ => cases}/oescripts.py    | 15 ++--
 meta/lib/oeqa/selftest/{ => cases}/package.py      |  4 +-
 meta/lib/oeqa/selftest/{ => cases}/pkgdata.py      | 29 ++++----
 meta/lib/oeqa/selftest/{ => cases}/prservice.py    | 27 ++++---
 meta/lib/oeqa/selftest/{ => cases}/recipetool.py   | 81 +++++++++++----------
 meta/lib/oeqa/selftest/{ => cases}/runqemu.py      | 31 ++++----
 .../{runtime-test.py => cases/runtime_test.py}     | 15 ++--
 meta/lib/oeqa/selftest/{ => cases}/signing.py      | 15 ++--
 meta/lib/oeqa/selftest/{ => cases}/sstate.py       |  5 +-
 meta/lib/oeqa/selftest/{ => cases}/sstatetests.py  | 46 ++++++------
 meta/lib/oeqa/selftest/{ => cases}/tinfoil.py      | 25 ++++---
 meta/lib/oeqa/selftest/{ => cases}/wic.py          | 84 +++++++++++-----------
 35 files changed, 355 insertions(+), 387 deletions(-)
 delete mode 100644 meta/lib/oeqa/selftest/__init__.py
 rename meta/lib/oeqa/selftest/{ => cases}/_sstatetests_noauto.py (97%)
 rename meta/lib/oeqa/selftest/{ => cases}/archiver.py (91%)
 rename meta/lib/oeqa/selftest/{ => cases}/bblayers.py (94%)
 rename meta/lib/oeqa/selftest/{ => cases}/bbtests.py (95%)
 rename meta/lib/oeqa/selftest/{ => cases}/buildhistory.py (94%)
 rename meta/lib/oeqa/selftest/{ => cases}/buildoptions.py (94%)
 rename meta/lib/oeqa/selftest/{ => cases}/containerimage.py (97%)
 rename meta/lib/oeqa/selftest/{ => cases}/devtool.py (99%)
 rename meta/lib/oeqa/selftest/{ => cases}/eSDK.py (92%)
 rename meta/lib/oeqa/selftest/{ => cases}/image_typedep.py (93%)
 rename meta/lib/oeqa/selftest/{ => cases}/imagefeatures.py (95%)
 rename meta/lib/oeqa/selftest/{ => cases}/layerappend.py (93%)
 rename meta/lib/oeqa/selftest/{ => cases}/liboe.py (96%)
 rename meta/lib/oeqa/selftest/{lic-checksum.py => cases/lic_checksum.py} (87%)
 rename meta/lib/oeqa/selftest/{ => cases}/manifest.py (80%)
 rename meta/lib/oeqa/selftest/{ => cases}/oelib/__init__.py (100%)
 rename meta/lib/oeqa/selftest/{ => cases}/oelib/buildhistory.py (97%)
 rename meta/lib/oeqa/selftest/{ => cases}/oelib/elf.py (92%)
 rename meta/lib/oeqa/selftest/{ => cases}/oelib/license.py (93%)
 rename meta/lib/oeqa/selftest/{ => cases}/oelib/path.py (97%)
 rename meta/lib/oeqa/selftest/{ => cases}/oelib/types.py (93%)
 rename meta/lib/oeqa/selftest/{ => cases}/oelib/utils.py (91%)
 rename meta/lib/oeqa/selftest/{ => cases}/oescripts.py (72%)
 rename meta/lib/oeqa/selftest/{ => cases}/package.py (97%)
 rename meta/lib/oeqa/selftest/{ => cases}/pkgdata.py (96%)
 rename meta/lib/oeqa/selftest/{ => cases}/prservice.py (93%)
 rename meta/lib/oeqa/selftest/{ => cases}/recipetool.py (97%)
 rename meta/lib/oeqa/selftest/{ => cases}/runqemu.py (92%)
 rename meta/lib/oeqa/selftest/{runtime-test.py => cases/runtime_test.py} (97%)
 rename meta/lib/oeqa/selftest/{ => cases}/signing.py (96%)
 rename meta/lib/oeqa/selftest/{ => cases}/sstate.py (95%)
 rename meta/lib/oeqa/selftest/{ => cases}/sstatetests.py (97%)
 rename meta/lib/oeqa/selftest/{ => cases}/tinfoil.py (96%)
 rename meta/lib/oeqa/selftest/{ => cases}/wic.py (97%)
meta/lib/oeqa/selftest/__init__.py deleted +0 -2
deleted file mode 100644
index 3ad9513..0000000
@@ -1,2 +0,0 @@
-from pkgutil import extend_path
-__path__ = extend_path(__path__, __name__)
meta/lib/oeqa/selftest/cases/_sstatetests_noauto.py renamed from meta/lib/oeqa/selftest/_sstatetests_noauto.py +2 -5
similarity index 97%
rename from meta/lib/oeqa/selftest/_sstatetests_noauto.py
rename to meta/lib/oeqa/selftest/cases/_sstatetests_noauto.py
index fc9ae7e..0e58962 100644
@@ -1,19 +1,16 @@
-import datetime
-import unittest
 import os
-import re
 import shutil
 
 import oeqa.utils.ftools as ftools
-from oeqa.selftest.base import oeSelfTest
 from oeqa.utils.commands import runCmd, bitbake, get_bb_var, get_test_layer
-from oeqa.selftest.sstate import SStateBase
+from oeqa.selftest.cases.sstate import SStateBase
 
 
 class RebuildFromSState(SStateBase):
 
     @classmethod
     def setUpClass(self):
+        super(RebuildFromSState, self).setUpClass()
         self.builddir = os.path.join(os.environ.get('BUILDDIR'))
 
     def get_dep_targets(self, primary_targets):
meta/lib/oeqa/selftest/cases/archiver.py renamed from meta/lib/oeqa/selftest/archiver.py +6 -8
similarity index 91%
rename from meta/lib/oeqa/selftest/archiver.py
rename to meta/lib/oeqa/selftest/cases/archiver.py
index d7f215c..70c7282 100644
@@ -1,14 +1,12 @@
-from oeqa.selftest.base import oeSelfTest
-from oeqa.utils.commands import bitbake, get_bb_vars
-from oeqa.utils.decorators import testcase
-import glob
 import os
-import shutil
-
+import glob
+from oeqa.utils.commands import bitbake, get_bb_vars
+from oeqa.selftest.case import OESelftestTestCase
+from oeqa.core.decorator.oeid import OETestID
 
-class Archiver(oeSelfTest):
+class Archiver(OESelftestTestCase):
 
-    @testcase(1345)
+    @OETestID(1345)
     def test_archiver_allows_to_filter_on_recipe_name(self):
         """
         Summary:     The archiver should offer the possibility to filter on the recipe. (#6929)
meta/lib/oeqa/selftest/cases/bblayers.py renamed from meta/lib/oeqa/selftest/bblayers.py +11 -13
similarity index 94%
rename from meta/lib/oeqa/selftest/bblayers.py
rename to meta/lib/oeqa/selftest/cases/bblayers.py
index cd658c5..90a2249 100644
@@ -1,39 +1,37 @@
-import unittest
 import os
-import logging
 import re
-import shutil
 
 import oeqa.utils.ftools as ftools
-from oeqa.selftest.base import oeSelfTest
 from oeqa.utils.commands import runCmd, get_bb_var
-from oeqa.utils.decorators import testcase
 
-class BitbakeLayers(oeSelfTest):
+from oeqa.selftest.case import OESelftestTestCase
+from oeqa.core.decorator.oeid import OETestID
 
-    @testcase(756)
+class BitbakeLayers(OESelftestTestCase):
+
+    @OETestID(756)
     def test_bitbakelayers_showcrossdepends(self):
         result = runCmd('bitbake-layers show-cross-depends')
         self.assertTrue('aspell' in result.output, msg = "No dependencies were shown. bitbake-layers show-cross-depends output: %s" % result.output)
 
-    @testcase(83)
+    @OETestID(83)
     def test_bitbakelayers_showlayers(self):
         result = runCmd('bitbake-layers show-layers')
         self.assertTrue('meta-selftest' in result.output, msg = "No layers were shown. bitbake-layers show-layers output: %s" % result.output)
 
-    @testcase(93)
+    @OETestID(93)
     def test_bitbakelayers_showappends(self):
         recipe = "xcursor-transparent-theme"
         bb_file = self.get_recipe_basename(recipe)
         result = runCmd('bitbake-layers show-appends')
         self.assertTrue(bb_file in result.output, msg="%s file was not recognised. bitbake-layers show-appends output: %s" % (bb_file, result.output))
 
-    @testcase(90)
+    @OETestID(90)
     def test_bitbakelayers_showoverlayed(self):
         result = runCmd('bitbake-layers show-overlayed')
         self.assertTrue('aspell' in result.output, msg="aspell overlayed recipe was not recognised bitbake-layers show-overlayed %s" % result.output)
 
-    @testcase(95)
+    @OETestID(95)
     def test_bitbakelayers_flatten(self):
         recipe = "xcursor-transparent-theme"
         recipe_path = "recipes-graphics/xcursor-transparent-theme"
@@ -48,7 +46,7 @@ class BitbakeLayers(oeSelfTest):
         find_in_contents = re.search("##### bbappended from meta-selftest #####\n(.*\n)*include test_recipe.inc", contents)
         self.assertTrue(find_in_contents, msg = "Flattening layers did not work. bitbake-layers flatten output: %s" % result.output)
 
-    @testcase(1195)
+    @OETestID(1195)
     def test_bitbakelayers_add_remove(self):
         test_layer = os.path.join(get_bb_var('COREBASE'), 'meta-skeleton')
         result = runCmd('bitbake-layers show-layers')
@@ -66,7 +64,7 @@ class BitbakeLayers(oeSelfTest):
         result = runCmd('bitbake-layers show-layers')
         self.assertNotIn('meta-skeleton', result.output, msg = "meta-skeleton should have been removed at this step.  bitbake-layers show-layers output: %s" % result.output)
 
-    @testcase(1384)
+    @OETestID(1384)
     def test_bitbakelayers_showrecipes(self):
         result = runCmd('bitbake-layers show-recipes')
         self.assertIn('aspell:', result.output)
meta/lib/oeqa/selftest/cases/bbtests.py renamed from meta/lib/oeqa/selftest/bbtests.py +29 -28

201 lines not on this page · raw message

meta/lib/oeqa/selftest/cases/buildhistory.py renamed from meta/lib/oeqa/selftest/buildhistory.py +2 -3
similarity index 94%
rename from meta/lib/oeqa/selftest/buildhistory.py
rename to meta/lib/oeqa/selftest/cases/buildhistory.py
index 008c39c..06792d9 100644
@@ -2,12 +2,11 @@ import os
 import re
 import datetime
 
-from oeqa.selftest.base import oeSelfTest
+from oeqa.selftest.case import OESelftestTestCase
 from oeqa.utils.commands import bitbake, get_bb_vars
-from oeqa.utils.decorators import testcase
 
 
-class BuildhistoryBase(oeSelfTest):
+class BuildhistoryBase(OESelftestTestCase):
 
     def config_buildhistory(self, tmp_bh_location=False):
         bb_vars = get_bb_vars(['USER_CLASSES', 'INHERIT'])
meta/lib/oeqa/selftest/cases/buildoptions.py renamed from meta/lib/oeqa/selftest/buildoptions.py +17 -17
similarity index 94%
rename from meta/lib/oeqa/selftest/buildoptions.py
rename to meta/lib/oeqa/selftest/cases/buildoptions.py
index ce37ea4..1f1bb7a 100644
@@ -3,15 +3,15 @@ import re
 import glob as g
 import shutil
 import tempfile
-from oeqa.selftest.base import oeSelfTest
-from oeqa.selftest.buildhistory import BuildhistoryBase
+from oeqa.selftest.case import OESelftestTestCase
+from oeqa.selftest.cases.buildhistory import BuildhistoryBase
 from oeqa.utils.commands import runCmd, bitbake, get_bb_var, get_bb_vars
 import oeqa.utils.ftools as ftools
-from oeqa.utils.decorators import testcase
+from oeqa.core.decorator.oeid import OETestID
 
-class ImageOptionsTests(oeSelfTest):
+class ImageOptionsTests(OESelftestTestCase):
 
-    @testcase(761)
+    @OETestID(761)
     def test_incremental_image_generation(self):
         image_pkgtype = get_bb_var("IMAGE_PKGTYPE")
         if image_pkgtype != 'rpm':
@@ -30,7 +30,7 @@ class ImageOptionsTests(oeSelfTest):
         incremental_removed = re.search(r"Erasing\s*:\s*packagegroup-core-ssh-openssh", log_data_removed)
         self.assertTrue(incremental_removed, msg = "Match failed in:\n%s" % log_data_removed)
 
-    @testcase(286)
+    @OETestID(286)
     def test_ccache_tool(self):
         bitbake("ccache-native")
         bb_vars = get_bb_vars(['SYSROOT_DESTDIR', 'bindir'], 'ccache-native')
@@ -43,7 +43,7 @@ class ImageOptionsTests(oeSelfTest):
         res = runCmd("grep ccache %s" % log_compile, ignore_status=True)
         self.assertEqual(0, res.status, msg="No match for ccache in m4 log.do_compile. For further details: %s" % log_compile)
 
-    @testcase(1435)
+    @OETestID(1435)
     def test_read_only_image(self):
         distro_features = get_bb_var('DISTRO_FEATURES')
         if not ('x11' in distro_features and 'opengl' in distro_features):
@@ -52,9 +52,9 @@ class ImageOptionsTests(oeSelfTest):
         bitbake("core-image-sato")
         # do_image will fail if there are any pending postinsts
 
-class DiskMonTest(oeSelfTest):
+class DiskMonTest(OESelftestTestCase):
 
-    @testcase(277)
+    @OETestID(277)
     def test_stoptask_behavior(self):
         self.write_config('BB_DISKMON_DIRS = "STOPTASKS,${TMPDIR},100000G,100K"')
         res = bitbake("m4", ignore_status = True)
@@ -68,13 +68,13 @@ class DiskMonTest(oeSelfTest):
         res = bitbake("m4")
         self.assertTrue('WARNING: The free space' in res.output, msg = "A warning should have been displayed for disk monitor is set to WARN: %s" %res.output)
 
-class SanityOptionsTest(oeSelfTest):
+class SanityOptionsTest(OESelftestTestCase):
     def getline(self, res, line):
         for l in res.output.split('\n'):
             if line in l:
                 return l
 
-    @testcase(927)
+    @OETestID(927)
     def test_options_warnqa_errorqa_switch(self):
 
         self.write_config("INHERIT_remove = \"report-error\"")
@@ -96,7 +96,7 @@ class SanityOptionsTest(oeSelfTest):
         line = self.getline(res, "QA Issue: xcursor-transparent-theme-dbg is listed in PACKAGES multiple times, this leads to packaging errors.")
         self.assertTrue(line and line.startswith("WARNING:"), msg=res.output)
 
-    @testcase(278)
+    @OETestID(278)
     def test_sanity_unsafe_script_references(self):
         self.write_config('WARN_QA_append = " unsafe-references-in-scripts"')
 
@@ -114,7 +114,7 @@ do_install_append_pn-gzip () {
         line = self.getline(res, "QA Issue: gzip")
         self.assertTrue(line and line.startswith("WARNING:"), "WARNING: QA Issue: gzip message is not present in bitbake's output: %s" % res.output)
 
-    @testcase(1421)
+    @OETestID(1421)
     def test_layer_without_git_dir(self):
         """
         Summary:     Test that layer git revisions are displayed and do not fail without git repository
@@ -156,20 +156,20 @@ do_install_append_pn-gzip () {
 
 class BuildhistoryTests(BuildhistoryBase):
 
-    @testcase(293)
+    @OETestID(293)
     def test_buildhistory_basic(self):
         self.run_buildhistory_operation('xcursor-transparent-theme')
         self.assertTrue(os.path.isdir(get_bb_var('BUILDHISTORY_DIR')), "buildhistory dir was not created.")
 
-    @testcase(294)
+    @OETestID(294)
     def test_buildhistory_buildtime_pr_backwards(self):
         target = 'xcursor-transparent-theme'
         error = "ERROR:.*QA Issue: Package version for package %s went backwards which would break package feeds from (.*-r1.* to .*-r0.*)" % target
         self.run_buildhistory_operation(target, target_config="PR = \"r1\"", change_bh_location=True)
         self.run_buildhistory_operation(target, target_config="PR = \"r0\"", change_bh_location=False, expect_error=True, error_regex=error)
 
-class ArchiverTest(oeSelfTest):
-    @testcase(926)
+class ArchiverTest(OESelftestTestCase):
+    @OETestID(926)
     def test_arch_work_dir_and_export_source(self):
         """
         Test for archiving the work directory and exporting the source files.
meta/lib/oeqa/selftest/cases/containerimage.py renamed from meta/lib/oeqa/selftest/containerimage.py +2 -2
similarity index 97%
rename from meta/lib/oeqa/selftest/containerimage.py
rename to meta/lib/oeqa/selftest/cases/containerimage.py
index def481f..73162fa 100644
@@ -1,6 +1,6 @@
 import os
 
-from oeqa.selftest.base import oeSelfTest
+from oeqa.selftest.case import OESelftestTestCase
 from oeqa.utils.commands import bitbake, get_bb_vars, runCmd
 
 # This test builds an image with using the "container" IMAGE_FSTYPE, and
@@ -16,7 +16,7 @@ from oeqa.utils.commands import bitbake, get_bb_vars, runCmd
 # of them, but this test is more to catch if other packages get added by
 # default other than what is in ROOTFS_BOOTSTRAP_INSTALL.
 #
-class ContainerImageTests(oeSelfTest):
+class ContainerImageTests(OESelftestTestCase):
 
     # Verify that when specifying a IMAGE_TYPEDEP_ of the form "foo.bar" that
     # the conversion type bar gets added as a dep as well
meta/lib/oeqa/selftest/cases/devtool.py renamed from meta/lib/oeqa/selftest/devtool.py +34 -34

262 lines not on this page · raw message

meta/lib/oeqa/selftest/cases/eSDK.py renamed from meta/lib/oeqa/selftest/eSDK.py +7 -11
similarity index 92%
rename from meta/lib/oeqa/selftest/eSDK.py
rename to meta/lib/oeqa/selftest/cases/eSDK.py
index 1596c6e..f36c3cc 100644
@@ -1,16 +1,12 @@
-import unittest
 import tempfile
 import shutil
 import os
 import glob
-import logging
-import subprocess
-import oeqa.utils.ftools as ftools
-from oeqa.utils.decorators import testcase
-from oeqa.selftest.base import oeSelfTest
+from oeqa.core.decorator.oeid import OETestID
+from oeqa.selftest.case import OESelftestTestCase
 from oeqa.utils.commands import runCmd, bitbake, get_bb_var, get_bb_vars
 
-class oeSDKExtSelfTest(oeSelfTest):
+class oeSDKExtSelfTest(OESelftestTestCase):
     """
     # Bugzilla Test Plan: 6033
     # This code is planned to be part of the automation for eSDK containig
@@ -73,6 +69,7 @@ CORE_IMAGE_EXTRA_INSTALL = "perl"
 
     @classmethod
     def setUpClass(cls):
+        super(oeSDKExtSelfTest, cls).setUpClass()
         cls.tmpdir_eSDKQA = tempfile.mkdtemp(prefix='eSDKQA')
 
         sstate_dir = get_bb_var('SSTATE_DIR')
@@ -97,19 +94,18 @@ SSTATE_MIRRORS =  "file://.* file://%s/PATH"
     @classmethod
     def tearDownClass(cls):
         shutil.rmtree(cls.tmpdir_eSDKQA)
+        super(oeSDKExtSelfTest, cls).tearDownClass()
 
-    @testcase (1602)
+    @OETestID(1602)
     def test_install_libraries_headers(self):
         pn_sstate = 'bc'
         bitbake(pn_sstate)
         cmd = "devtool sdk-install %s " % pn_sstate
         oeSDKExtSelfTest.run_esdk_cmd(self.env_eSDK, self.tmpdir_eSDKQA, cmd)
 
-    @testcase(1603)
+    @OETestID(1603)
     def test_image_generation_binary_feeds(self):
         image = 'core-image-minimal'
         cmd = "devtool build-image %s" % image
         oeSDKExtSelfTest.run_esdk_cmd(self.env_eSDK, self.tmpdir_eSDKQA, cmd)
 
-if __name__ == '__main__':
-    unittest.main()
meta/lib/oeqa/selftest/cases/image_typedep.py renamed from meta/lib/oeqa/selftest/image_typedep.py +2 -2
similarity index 93%
rename from meta/lib/oeqa/selftest/image_typedep.py
rename to meta/lib/oeqa/selftest/cases/image_typedep.py
index 256142d25..0614c76 100644
@@ -1,9 +1,9 @@
 import os
 
-from oeqa.selftest.base import oeSelfTest
+from oeqa.selftest.case import OESelftestTestCase
 from oeqa.utils.commands import bitbake
 
-class ImageTypeDepTests(oeSelfTest):
+class ImageTypeDepTests(OESelftestTestCase):
 
     # Verify that when specifying a IMAGE_TYPEDEP_ of the form "foo.bar" that
     # the conversion type bar gets added as a dep as well
meta/lib/oeqa/selftest/cases/imagefeatures.py renamed from meta/lib/oeqa/selftest/imagefeatures.py +7 -9
similarity index 95%
rename from meta/lib/oeqa/selftest/imagefeatures.py
rename to meta/lib/oeqa/selftest/cases/imagefeatures.py
index 76896c7..45a06fe 100644
@@ -1,17 +1,15 @@
-from oeqa.selftest.base import oeSelfTest
+from oeqa.selftest.case import OESelftestTestCase
 from oeqa.utils.commands import runCmd, bitbake, get_bb_var, runqemu
-from oeqa.utils.decorators import testcase
+from oeqa.core.decorator.oeid import OETestID
 from oeqa.utils.sshcontrol import SSHControl
 import os
-import sys
-import logging
 
-class ImageFeatures(oeSelfTest):
+class ImageFeatures(OESelftestTestCase):
 
     test_user = 'tester'
     root_user = 'root'
 
-    @testcase(1107)
+    @OETestID(1107)
     def test_non_root_user_can_connect_via_ssh_without_password(self):
         """
         Summary: Check if non root user can connect via ssh without password
@@ -37,7 +35,7 @@ class ImageFeatures(oeSelfTest):
                 status, output = ssh.run("true")
                 self.assertEqual(status, 0, 'ssh to user %s failed with %s' % (user, output))
 
-    @testcase(1115)
+    @OETestID(1115)
     def test_all_users_can_connect_via_ssh_without_password(self):
         """
         Summary:     Check if all users can connect via ssh without password
@@ -67,7 +65,7 @@ class ImageFeatures(oeSelfTest):
                     self.assertEqual(status, 0, 'ssh to user tester failed with %s' % output)
 
 
-    @testcase(1116)
+    @OETestID(1116)
     def test_clutter_image_can_be_built(self):
         """
         Summary:     Check if clutter image can be built
@@ -80,7 +78,7 @@ class ImageFeatures(oeSelfTest):
         # Build a core-image-clutter
         bitbake('core-image-clutter')
 
-    @testcase(1117)
+    @OETestID(1117)
     def test_wayland_support_in_image(self):
         """
         Summary:     Check Wayland support in image
meta/lib/oeqa/selftest/cases/layerappend.py renamed from meta/lib/oeqa/selftest/layerappend.py +5 -10
similarity index 93%
rename from meta/lib/oeqa/selftest/layerappend.py
rename to meta/lib/oeqa/selftest/cases/layerappend.py
index 37bb32c..9562116 100644
@@ -1,15 +1,11 @@
-import unittest
 import os
-import logging
-import re
 
-from oeqa.selftest.base import oeSelfTest
-from oeqa.selftest.buildhistory import BuildhistoryBase
+from oeqa.selftest.case import OESelftestTestCase
 from oeqa.utils.commands import runCmd, bitbake, get_bb_var
 import oeqa.utils.ftools as ftools
-from oeqa.utils.decorators import testcase
+from oeqa.core.decorator.oeid import OETestID
 
-class LayerAppendTests(oeSelfTest):
+class LayerAppendTests(OESelftestTestCase):
     layerconf = """
 # We have a conf and classes directory, append to BBPATH
 BBPATH .= ":${LAYERDIR}"
@@ -51,8 +47,9 @@ SRC_URI_append += "file://appendtest.txt"
     def tearDownLocal(self):
         if self.layerappend:
             ftools.remove_from_file(self.builddir + "/conf/bblayers.conf", self.layerappend)
+        super(LayerAppendTests, self).tearDownLocal()
 
-    @testcase(1196)
+    @OETestID(1196)
     def test_layer_appends(self):
         corebase = get_bb_var("COREBASE")
 
@@ -96,5 +93,3 @@ SRC_URI_append += "file://appendtest.txt"
         bitbake("layerappendtest")
         data = ftools.read_file(stagingdir + "/appendtest.txt")
         self.assertEqual(data, "Layer 2 test")
-
-
meta/lib/oeqa/selftest/cases/liboe.py renamed from meta/lib/oeqa/selftest/liboe.py +3 -4
similarity index 96%
rename from meta/lib/oeqa/selftest/liboe.py
rename to meta/lib/oeqa/selftest/cases/liboe.py
index 0b0301d..01b2cab 100644
@@ -1,14 +1,13 @@
-from oeqa.selftest.base import oeSelfTest
+from oeqa.selftest.case import OESelftestTestCase
 from oeqa.utils.commands import get_bb_var, get_bb_vars, bitbake, runCmd
 import oe.path
-import glob
 import os
-import os.path
 
-class LibOE(oeSelfTest):
+class LibOE(OESelftestTestCase):
 
     @classmethod
     def setUpClass(cls):
+        super(LibOE, cls).setUpClass()
         cls.tmp_dir = get_bb_var('TMPDIR')
 
     def test_copy_tree_special(self):
meta/lib/oeqa/selftest/cases/lic_checksum.py renamed from meta/lib/oeqa/selftest/lic-checksum.py +4 -4
similarity index 87%
rename from meta/lib/oeqa/selftest/lic-checksum.py
rename to meta/lib/oeqa/selftest/cases/lic_checksum.py
index 2e81373..3740715 100644
@@ -1,16 +1,16 @@
 import os
 import tempfile
 
-from oeqa.selftest.base import oeSelfTest
+from oeqa.selftest.case import OESelftestTestCase
 from oeqa.utils.commands import bitbake
 from oeqa.utils import CommandError
-from oeqa.utils.decorators import testcase
+from oeqa.core.decorator.oeid import OETestID
 
-class LicenseTests(oeSelfTest):
+class LicenseTests(OESelftestTestCase):
 
     # Verify that changing a license file that has an absolute path causes
     # the license qa to fail due to a mismatched md5sum.
-    @testcase(1197)
+    @OETestID(1197)
     def test_nonmatching_checksum(self):
         bitbake_cmd = '-c populate_lic emptytest'
         error_msg = 'emptytest: The new md5 checksum is 8d777f385d3dfec8815d20f7496026dc'
meta/lib/oeqa/selftest/cases/manifest.py renamed from meta/lib/oeqa/selftest/manifest.py +26 -26

149 lines not on this page · raw message

meta/lib/oeqa/selftest/cases/oelib/__init__.py renamed from meta/lib/oeqa/selftest/oelib/__init__.py +0 -0
similarity index 100%
rename from meta/lib/oeqa/selftest/oelib/__init__.py
rename to meta/lib/oeqa/selftest/cases/oelib/__init__.py
meta/lib/oeqa/selftest/cases/oelib/buildhistory.py renamed from meta/lib/oeqa/selftest/oelib/buildhistory.py +2 -2
similarity index 97%
rename from meta/lib/oeqa/selftest/oelib/buildhistory.py
rename to meta/lib/oeqa/selftest/cases/oelib/buildhistory.py
index 5ed4b02..4e87751 100644
@@ -1,11 +1,11 @@
 import os
-import unittest
+from oeqa.selftest.case import OESelftestTestCase
 import tempfile
 from git import Repo
 from oeqa.utils.commands import get_bb_var
 from oe.buildhistory_analysis import blob_to_dict, compare_dict_blobs
 
-class TestBlobParsing(unittest.TestCase):
+class TestBlobParsing(OESelftestTestCase):
 
     def setUp(self):
         import time
meta/lib/oeqa/selftest/cases/oelib/elf.py renamed from meta/lib/oeqa/selftest/oelib/elf.py +2 -2
similarity index 92%
rename from meta/lib/oeqa/selftest/oelib/elf.py
rename to meta/lib/oeqa/selftest/cases/oelib/elf.py
index 1f59037..0451eba 100644
@@ -1,7 +1,7 @@
-import unittest
+from oeqa.selftest.case import OESelftestTestCase
 import oe.qa
 
-class TestElf(unittest.TestCase):
+class TestElf(OESelftestTestCase):
     def test_machine_name(self):
         """
         Test elf_machine_to_string()
meta/lib/oeqa/selftest/cases/oelib/license.py renamed from meta/lib/oeqa/selftest/oelib/license.py +3 -3
similarity index 93%
rename from meta/lib/oeqa/selftest/oelib/license.py
rename to meta/lib/oeqa/selftest/cases/oelib/license.py
index c388886..a6d9c9a 100644
@@ -1,4 +1,4 @@
-import unittest
+from oeqa.selftest.case import OESelftestTestCase
 import oe.license
 
 class SeenVisitor(oe.license.LicenseVisitor):
@@ -9,7 +9,7 @@ class SeenVisitor(oe.license.LicenseVisitor):
     def visit_Str(self, node):
         self.seen.append(node.s)
 
-class TestSingleLicense(unittest.TestCase):
+class TestSingleLicense(OESelftestTestCase):
     licenses = [
         "GPLv2",
         "LGPL-2.0",
@@ -37,7 +37,7 @@ class TestSingleLicense(unittest.TestCase):
                 self.parse(license)
             self.assertEqual(cm.exception.license, license)
 
-class TestSimpleCombinations(unittest.TestCase):
+class TestSimpleCombinations(OESelftestTestCase):
     tests = {
         "FOO&BAR": ["FOO", "BAR"],
         "BAZ & MOO": ["BAZ", "MOO"],
meta/lib/oeqa/selftest/cases/oelib/path.py renamed from meta/lib/oeqa/selftest/oelib/path.py +2 -2
similarity index 97%
rename from meta/lib/oeqa/selftest/oelib/path.py
rename to meta/lib/oeqa/selftest/cases/oelib/path.py
index 44d0681..2ae5eaf 100644
@@ -1,11 +1,11 @@
-import unittest
+from oeqa.selftest.case import OESelftestTestCase
 import oe, oe.path
 import tempfile
 import os
 import errno
 import shutil
 
-class TestRealPath(unittest.TestCase):
+class TestRealPath(OESelftestTestCase):
     DIRS = [ "a", "b", "etc", "sbin", "usr", "usr/bin", "usr/binX", "usr/sbin", "usr/include", "usr/include/gdbm" ]
     FILES = [ "etc/passwd", "b/file" ]
     LINKS = [
meta/lib/oeqa/selftest/cases/oelib/types.py renamed from meta/lib/oeqa/selftest/oelib/types.py +3 -3
similarity index 93%
rename from meta/lib/oeqa/selftest/oelib/types.py
rename to meta/lib/oeqa/selftest/cases/oelib/types.py
index 4fe2746..99c8404 100644
@@ -1,7 +1,7 @@
-import unittest
+from oeqa.selftest.case import OESelftestTestCase
 from oe.maketype import create
 
-class TestBooleanType(unittest.TestCase):
+class TestBooleanType(OESelftestTestCase):
     def test_invalid(self):
         self.assertRaises(ValueError, create, '', 'boolean')
         self.assertRaises(ValueError, create, 'foo', 'boolean')
@@ -31,7 +31,7 @@ class TestBooleanType(unittest.TestCase):
         self.assertEqual(create('y', 'boolean'), True)
         self.assertNotEqual(create('y', 'boolean'), False)
 
-class TestList(unittest.TestCase):
+class TestList(OESelftestTestCase):
     def assertListEqual(self, value, valid, sep=None):
         obj = create(value, 'list', separator=sep)
         self.assertEqual(obj, valid)
meta/lib/oeqa/selftest/cases/oelib/utils.py renamed from meta/lib/oeqa/selftest/oelib/utils.py +3 -3
similarity index 91%
rename from meta/lib/oeqa/selftest/oelib/utils.py
rename to meta/lib/oeqa/selftest/cases/oelib/utils.py
index 7deb10f..5bc5fff 100644
@@ -1,7 +1,7 @@
-import unittest
+from oeqa.selftest.case import OESelftestTestCase
 from oe.utils import packages_filter_out_system, trim_version
 
-class TestPackagesFilterOutSystem(unittest.TestCase):
+class TestPackagesFilterOutSystem(OESelftestTestCase):
     def test_filter(self):
         """
         Test that oe.utils.packages_filter_out_system works.
@@ -31,7 +31,7 @@ class TestPackagesFilterOutSystem(unittest.TestCase):
         self.assertEqual(pkgs, ["foo-data"])
 
 
-class TestTrimVersion(unittest.TestCase):
+class TestTrimVersion(OESelftestTestCase):
     def test_version_exception(self):
         with self.assertRaises(TypeError):
             trim_version(None, 2)
meta/lib/oeqa/selftest/cases/oescripts.py renamed from meta/lib/oeqa/selftest/oescripts.py +4 -11
similarity index 72%
rename from meta/lib/oeqa/selftest/oescripts.py
rename to meta/lib/oeqa/selftest/cases/oescripts.py
index 29547f5..1ee7537 100644
@@ -1,18 +1,11 @@
-import datetime
-import unittest
-import os
-import re
-import shutil
-
-import oeqa.utils.ftools as ftools
-from oeqa.selftest.base import oeSelfTest
-from oeqa.selftest.buildhistory import BuildhistoryBase
+from oeqa.selftest.case import OESelftestTestCase
+from oeqa.selftest.cases.buildhistory import BuildhistoryBase
 from oeqa.utils.commands import Command, runCmd, bitbake, get_bb_var, get_test_layer
-from oeqa.utils.decorators import testcase
+from oeqa.core.decorator.oeid import OETestID
 
 class BuildhistoryDiffTests(BuildhistoryBase):
 
-    @testcase(295)
+    @OETestID(295)
     def test_buildhistory_diff(self):
         target = 'xcursor-transparent-theme'
         self.run_buildhistory_operation(target, target_config="PR = \"r1\"", change_bh_location=True)
meta/lib/oeqa/selftest/cases/package.py renamed from meta/lib/oeqa/selftest/package.py +2 -2
similarity index 97%
rename from meta/lib/oeqa/selftest/package.py
rename to meta/lib/oeqa/selftest/cases/package.py
index 95125f2..6a8bc92 100644
@@ -1,9 +1,9 @@
-from oeqa.selftest.base import oeSelfTest
+from oeqa.selftest.case import OESelftestTestCase
 from oeqa.utils.commands import bitbake, get_bb_vars
 import subprocess, os
 import oe.path
 
-class VersionOrdering(oeSelfTest):
+class VersionOrdering(OESelftestTestCase):
     # version1, version2, sort order
     tests = (
         ("1.0", "1.0", 0),
meta/lib/oeqa/selftest/cases/pkgdata.py renamed from meta/lib/oeqa/selftest/pkgdata.py +13 -16
similarity index 96%
rename from meta/lib/oeqa/selftest/pkgdata.py
rename to meta/lib/oeqa/selftest/cases/pkgdata.py
index d69c3c8..0b4caf1 100644
@@ -1,24 +1,21 @@
-import unittest
 import os
 import tempfile
-import logging
 import fnmatch
 
-import oeqa.utils.ftools as ftools
-from oeqa.selftest.base import oeSelfTest
+from oeqa.selftest.case import OESelftestTestCase
 from oeqa.utils.commands import runCmd, bitbake, get_bb_var, get_bb_vars
-from oeqa.utils.decorators import testcase
+from oeqa.core.decorator.oeid import OETestID
 
-class OePkgdataUtilTests(oeSelfTest):
+class OePkgdataUtilTests(OESelftestTestCase):
 
     @classmethod
     def setUpClass(cls):
+        super(OePkgdataUtilTests, cls).setUpClass()
         # Ensure we have the right data in pkgdata
-        logger = logging.getLogger("selftest")
-        logger.info('Running bitbake to generate pkgdata')
+        cls.logger.info('Running bitbake to generate pkgdata')
         bitbake('busybox zlib m4')
 
-    @testcase(1203)
+    @OETestID(1203)
     def test_lookup_pkg(self):
         # Forward tests
         result = runCmd('oe-pkgdata-util lookup-pkg "zlib busybox"')
@@ -37,7 +34,7 @@ class OePkgdataUtilTests(oeSelfTest):
         self.assertEqual(result.status, 1, "Status different than 1. output: %s" % result.output)
         self.assertEqual(result.output, 'ERROR: The following packages could not be found: nonexistentpkg')
 
-    @testcase(1205)
+    @OETestID(1205)
     def test_read_value(self):
         result = runCmd('oe-pkgdata-util read-value PN libz1')
         self.assertEqual(result.output, 'zlib')
@@ -47,7 +44,7 @@ class OePkgdataUtilTests(oeSelfTest):
         pkgsize = int(result.output.strip())
         self.assertGreater(pkgsize, 1, "Size should be greater than 1. %s" % result.output)
 
-    @testcase(1198)
+    @OETestID(1198)
     def test_find_path(self):
         result = runCmd('oe-pkgdata-util find-path /lib/libz.so.1')
         self.assertEqual(result.output, 'zlib: /lib/libz.so.1')
@@ -57,7 +54,7 @@ class OePkgdataUtilTests(oeSelfTest):
         self.assertEqual(result.status, 1, "Status different than 1. output: %s" % result.output)
         self.assertEqual(result.output, 'ERROR: Unable to find any package producing path /not/exist')
 
-    @testcase(1204)
+    @OETestID(1204)
     def test_lookup_recipe(self):
         result = runCmd('oe-pkgdata-util lookup-recipe "libz-staticdev busybox"')
         self.assertEqual(result.output, 'zlib\nbusybox')
@@ -67,7 +64,7 @@ class OePkgdataUtilTests(oeSelfTest):
         self.assertEqual(result.status, 1, "Status different than 1. output: %s" % result.output)
         self.assertEqual(result.output, 'ERROR: The following packages could not be found: nonexistentpkg')
 
-    @testcase(1202)
+    @OETestID(1202)
     def test_list_pkgs(self):
         # No arguments
         result = runCmd('oe-pkgdata-util list-pkgs')
@@ -111,7 +108,7 @@ class OePkgdataUtilTests(oeSelfTest):
         pkglist = sorted(result.output.split())
         self.assertEqual(pkglist, ['libz-dbg', 'libz-dev', 'libz-doc'], "Packages listed: %s" % result.output)
 
-    @testcase(1201)
+    @OETestID(1201)
     def test_list_pkg_files(self):
         def splitoutput(output):
             files = {}
@@ -201,7 +198,7 @@ class OePkgdataUtilTests(oeSelfTest):
         self.assertIn(os.path.join(mandir, 'man3/zlib.3'), files['libz-doc'])
         self.assertIn(os.path.join(libdir, 'libz.a'), files['libz-staticdev'])
 
-    @testcase(1200)
+    @OETestID(1200)
     def test_glob(self):
         tempdir = tempfile.mkdtemp(prefix='pkgdataqa')
         self.track_for_cleanup(tempdir)
@@ -221,7 +218,7 @@ class OePkgdataUtilTests(oeSelfTest):
         self.assertNotIn('libz-dev', resultlist)
         self.assertNotIn('libz-dbg', resultlist)
 
-    @testcase(1206)
+    @OETestID(1206)
     def test_specify_pkgdatadir(self):
         result = runCmd('oe-pkgdata-util -p %s lookup-pkg zlib' % get_bb_var('PKGDATA_DIR'))
         self.assertEqual(result.output, 'libz1')
meta/lib/oeqa/selftest/cases/prservice.py renamed from meta/lib/oeqa/selftest/prservice.py +13 -14
similarity index 93%
rename from meta/lib/oeqa/selftest/prservice.py
rename to meta/lib/oeqa/selftest/cases/prservice.py
index 34d4197..ed36f0f 100644
@@ -1,20 +1,19 @@
-import unittest
 import os
-import logging
 import re
 import shutil
 import datetime
 
 import oeqa.utils.ftools as ftools
-from oeqa.selftest.base import oeSelfTest
+from oeqa.selftest.case import OESelftestTestCase
 from oeqa.utils.commands import runCmd, bitbake, get_bb_var
-from oeqa.utils.decorators import testcase
+from oeqa.core.decorator.oeid import OETestID
 from oeqa.utils.network import get_free_port
 
-class BitbakePrTests(oeSelfTest):
+class BitbakePrTests(OESelftestTestCase):
 
     @classmethod
     def setUpClass(cls):
+        super(BitbakePrTests, cls).setUpClass()
         cls.pkgdata_dir = get_bb_var('PKGDATA_DIR')
 
     def get_pr_version(self, package_name):
@@ -89,39 +88,39 @@ class BitbakePrTests(oeSelfTest):
 
         self.assertTrue(pr_2 - pr_1 == 1, "Step between same pkg. revision is greater than 1")
 
-    @testcase(930)
+    @OETestID(930)
     def test_import_export_replace_db(self):
         self.run_test_pr_export_import('m4')
 
-    @testcase(931)
+    @OETestID(931)
     def test_import_export_override_db(self):
         self.run_test_pr_export_import('m4', replace_current_db=False)
 
-    @testcase(932)
+    @OETestID(932)
     def test_pr_service_rpm_arch_dep(self):
         self.run_test_pr_service('m4', 'rpm', 'do_package')
 
-    @testcase(934)
+    @OETestID(934)
     def test_pr_service_deb_arch_dep(self):
         self.run_test_pr_service('m4', 'deb', 'do_package')
 
-    @testcase(933)
+    @OETestID(933)
     def test_pr_service_ipk_arch_dep(self):
         self.run_test_pr_service('m4', 'ipk', 'do_package')
 
-    @testcase(935)
+    @OETestID(935)
     def test_pr_service_rpm_arch_indep(self):
         self.run_test_pr_service('xcursor-transparent-theme', 'rpm', 'do_package')
 
-    @testcase(937)
+    @OETestID(937)
     def test_pr_service_deb_arch_indep(self):
         self.run_test_pr_service('xcursor-transparent-theme', 'deb', 'do_package')
 
-    @testcase(936)
+    @OETestID(936)
     def test_pr_service_ipk_arch_indep(self):
         self.run_test_pr_service('xcursor-transparent-theme', 'ipk', 'do_package')
 
-    @testcase(1419)
+    @OETestID(1419)
     def test_stopping_prservice_message(self):
         port = get_free_port()
 
meta/lib/oeqa/selftest/cases/recipetool.py renamed from meta/lib/oeqa/selftest/recipetool.py +40 -41

307 lines not on this page · raw message

meta/lib/oeqa/selftest/cases/runqemu.py renamed from meta/lib/oeqa/selftest/runqemu.py +16 -15
similarity index 92%
rename from meta/lib/oeqa/selftest/runqemu.py
rename to meta/lib/oeqa/selftest/cases/runqemu.py
index 58c6f96..4050a41 100644
@@ -5,17 +5,18 @@
 import re
 import logging
 
-from oeqa.selftest.base import oeSelfTest
+from oeqa.selftest.case import OESelftestTestCase
 from oeqa.utils.commands import bitbake, runqemu, get_bb_var
-from oeqa.utils.decorators import testcase
+from oeqa.core.decorator.oeid import OETestID
 
-class RunqemuTests(oeSelfTest):
+class RunqemuTests(OESelftestTestCase):
     """Runqemu test class"""
 
     image_is_ready = False
     deploy_dir_image = ''
 
     def setUpLocal(self):
+        super(RunqemuTests, self).setUpLocal()
         self.recipe = 'core-image-minimal'
         self.machine =  'qemux86-64'
         self.fstypes = "ext4 iso hddimg vmdk qcow2 vdi"
@@ -40,14 +41,14 @@ SYSLINUX_TIMEOUT = "10"
             bitbake(self.recipe)
             RunqemuTests.image_is_ready = True
 
-    @testcase(2001)
+    @OETestID(2001)
     def test_boot_machine(self):
         """Test runqemu machine"""
         cmd = "%s %s" % (self.cmd_common, self.machine)
         with runqemu(self.recipe, ssh=False, launch_cmd=cmd) as qemu:
             self.assertTrue(qemu.runner.logged, "Failed: %s" % cmd)
 
-    @testcase(2002)
+    @OETestID(2002)
     def test_boot_machine_ext4(self):
         """Test runqemu machine ext4"""
         cmd = "%s %s ext4" % (self.cmd_common, self.machine)
@@ -55,7 +56,7 @@ SYSLINUX_TIMEOUT = "10"
             with open(qemu.qemurunnerlog) as f:
                 self.assertTrue('rootfs.ext4' in f.read(), "Failed: %s" % cmd)
 
-    @testcase(2003)
+    @OETestID(2003)
     def test_boot_machine_iso(self):
         """Test runqemu machine iso"""
         cmd = "%s %s iso" % (self.cmd_common, self.machine)
@@ -63,14 +64,14 @@ SYSLINUX_TIMEOUT = "10"
             with open(qemu.qemurunnerlog) as f:
                 self.assertTrue(' -cdrom ' in f.read(), "Failed: %s" % cmd)
 
-    @testcase(2004)
+    @OETestID(2004)
     def test_boot_recipe_image(self):
         """Test runqemu recipe-image"""
         cmd = "%s %s" % (self.cmd_common, self.recipe)
         with runqemu(self.recipe, ssh=False, launch_cmd=cmd) as qemu:
             self.assertTrue(qemu.runner.logged, "Failed: %s" % cmd)
 
-    @testcase(2005)
+    @OETestID(2005)
     def test_boot_recipe_image_vmdk(self):
         """Test runqemu recipe-image vmdk"""
         cmd = "%s %s vmdk" % (self.cmd_common, self.recipe)
@@ -78,7 +79,7 @@ SYSLINUX_TIMEOUT = "10"
             with open(qemu.qemurunnerlog) as f:
                 self.assertTrue('format=vmdk' in f.read(), "Failed: %s" % cmd)
 
-    @testcase(2006)
+    @OETestID(2006)
     def test_boot_recipe_image_vdi(self):
         """Test runqemu recipe-image vdi"""
         cmd = "%s %s vdi" % (self.cmd_common, self.recipe)
@@ -86,14 +87,14 @@ SYSLINUX_TIMEOUT = "10"
             with open(qemu.qemurunnerlog) as f:
                 self.assertTrue('format=vdi' in f.read(), "Failed: %s" % cmd)
 
-    @testcase(2007)
+    @OETestID(2007)
     def test_boot_deploy(self):
         """Test runqemu deploy_dir_image"""
         cmd = "%s %s" % (self.cmd_common, self.deploy_dir_image)
         with runqemu(self.recipe, ssh=False, launch_cmd=cmd) as qemu:
             self.assertTrue(qemu.runner.logged, "Failed: %s" % cmd)
 
-    @testcase(2008)
+    @OETestID(2008)
     def test_boot_deploy_hddimg(self):
         """Test runqemu deploy_dir_image hddimg"""
         cmd = "%s %s hddimg" % (self.cmd_common, self.deploy_dir_image)
@@ -101,7 +102,7 @@ SYSLINUX_TIMEOUT = "10"
             with open(qemu.qemurunnerlog) as f:
                 self.assertTrue(re.search('file=.*.hddimg', f.read()), "Failed: %s" % cmd)
 
-    @testcase(2009)
+    @OETestID(2009)
     def test_boot_machine_slirp(self):
         """Test runqemu machine slirp"""
         cmd = "%s slirp %s" % (self.cmd_common, self.machine)
@@ -109,7 +110,7 @@ SYSLINUX_TIMEOUT = "10"
             with open(qemu.qemurunnerlog) as f:
                 self.assertTrue(' -netdev user' in f.read(), "Failed: %s" % cmd)
 
-    @testcase(2009)
+    @OETestID(2009)
     def test_boot_machine_slirp_qcow2(self):
         """Test runqemu machine slirp qcow2"""
         cmd = "%s slirp qcow2 %s" % (self.cmd_common, self.machine)
@@ -117,7 +118,7 @@ SYSLINUX_TIMEOUT = "10"
             with open(qemu.qemurunnerlog) as f:
                 self.assertTrue('format=qcow2' in f.read(), "Failed: %s" % cmd)
 
-    @testcase(2010)
+    @OETestID(2010)
     def test_boot_qemu_boot(self):
         """Test runqemu /path/to/image.qemuboot.conf"""
         qemuboot_conf = "%s-%s.qemuboot.conf" % (self.recipe, self.machine)
@@ -128,7 +129,7 @@ SYSLINUX_TIMEOUT = "10"
         with runqemu(self.recipe, ssh=False, launch_cmd=cmd) as qemu:
             self.assertTrue(qemu.runner.logged, "Failed: %s" % cmd)
 
-    @testcase(2011)
+    @OETestID(2011)
     def test_boot_rootfs(self):
         """Test runqemu /path/to/rootfs.ext4"""
         rootfs = "%s-%s.ext4" % (self.recipe, self.machine)
meta/lib/oeqa/selftest/cases/runtime_test.py renamed from meta/lib/oeqa/selftest/runtime-test.py +8 -7
similarity index 97%
rename from meta/lib/oeqa/selftest/runtime-test.py
rename to meta/lib/oeqa/selftest/cases/runtime_test.py
index 13a4c03..9fec4d8 100644
@@ -1,14 +1,15 @@
-from oeqa.selftest.base import oeSelfTest
+from oeqa.selftest.case import OESelftestTestCase
 from oeqa.utils.commands import runCmd, bitbake, get_bb_var, get_bb_vars, runqemu
-from oeqa.utils.decorators import testcase
+from oeqa.core.decorator.oeid import OETestID
 import os
 import re
 
-class TestExport(oeSelfTest):
+class TestExport(OESelftestTestCase):
 
     @classmethod
     def tearDownClass(cls):
         runCmd("rm -rf /tmp/sdk")
+        super(TestExport, cls).tearDownClass()
 
     def test_testexport_basic(self):
         """
@@ -101,7 +102,7 @@ class TestExport(oeSelfTest):
         self.assertEqual(0, result.status, "Couldn't run tar from SDK")
 
 
-class TestImage(oeSelfTest):
+class TestImage(OESelftestTestCase):
 
     def test_testimage_install(self):
         """
@@ -129,8 +130,8 @@ class TestImage(oeSelfTest):
         bitbake('core-image-full-cmdline socat')
         bitbake('-c testimage core-image-full-cmdline')
 
-class Postinst(oeSelfTest):
-    @testcase(1540)
+class Postinst(OESelftestTestCase):
+    @OETestID(1540)
     def test_verify_postinst(self):
         """
         Summary: The purpose of this test is to verify the execution order of postinst Bugzilla ID: [5319]
@@ -180,7 +181,7 @@ postinst-delayed-t \
                         self.assertEqual(idx, len(postinst_list), "Not found all postinsts")
                         break
 
-    @testcase(1545)
+    @OETestID(1545)
     def test_postinst_rootfs_and_boot(self):
         """
         Summary:        The purpose of this test case is to verify Post-installation
meta/lib/oeqa/selftest/cases/signing.py renamed from meta/lib/oeqa/selftest/signing.py +8 -7
similarity index 96%
rename from meta/lib/oeqa/selftest/signing.py
rename to meta/lib/oeqa/selftest/cases/signing.py
index 0ac3d1f..edb5f65 100644
@@ -1,15 +1,15 @@
-from oeqa.selftest.base import oeSelfTest
+from oeqa.selftest.case import OESelftestTestCase
 from oeqa.utils.commands import runCmd, bitbake, get_bb_var, get_bb_vars
 import os
 import glob
 import re
 import shutil
 import tempfile
-from oeqa.utils.decorators import testcase
+from oeqa.core.decorator.oeid import OETestID
 from oeqa.utils.ftools import write_file
 
 
-class Signing(oeSelfTest):
+class Signing(OESelftestTestCase):
 
     gpg_dir = ""
     pub_key_path = ""
@@ -17,6 +17,7 @@ class Signing(oeSelfTest):
 
     @classmethod
     def setUpClass(cls):
+        super(Signing, cls).setUpClass()
         # Check that we can find the gpg binary and fail early if we can't
         if not shutil.which("gpg"):
             raise AssertionError("This test needs GnuPG")
@@ -29,7 +30,7 @@ class Signing(oeSelfTest):
 
         runCmd('gpg --batch --homedir %s --import %s %s' % (cls.gpg_dir, cls.pub_key_path, cls.secret_key_path))
 
-    @testcase(1362)
+    @OETestID(1362)
     def test_signing_packages(self):
         """
         Summary:     Test that packages can be signed in the package feed
@@ -92,7 +93,7 @@ class Signing(oeSelfTest):
         bitbake('core-image-minimal')
 
 
-    @testcase(1382)
+    @OETestID(1382)
     def test_signing_sstate_archive(self):
         """
         Summary:     Test that sstate archives can be signed
@@ -135,9 +136,9 @@ class Signing(oeSelfTest):
         self.assertIn('gpg: Good signature from', ret.output, 'Package signed incorrectly.')
 
 
-class LockedSignatures(oeSelfTest):
+class LockedSignatures(OESelftestTestCase):
 
-    @testcase(1420)
+    @OETestID(1420)
     def test_locked_signatures(self):
         """
         Summary:     Test locked signature mechanism
meta/lib/oeqa/selftest/cases/sstate.py renamed from meta/lib/oeqa/selftest/sstate.py +3 -2
similarity index 95%
rename from meta/lib/oeqa/selftest/sstate.py
rename to meta/lib/oeqa/selftest/cases/sstate.py
index f54bc41..bc2fdbd 100644
@@ -5,13 +5,14 @@ import re
 import shutil
 
 import oeqa.utils.ftools as ftools
-from oeqa.selftest.base import oeSelfTest
+from oeqa.selftest.case import OESelftestTestCase
 from oeqa.utils.commands import runCmd, bitbake, get_bb_vars, get_test_layer
 
 
-class SStateBase(oeSelfTest):
+class SStateBase(OESelftestTestCase):
 
     def setUpLocal(self):
+        super(SStateBase, self).setUpLocal()
         self.temp_sstate_location = None
         needed_vars = ['SSTATE_DIR', 'NATIVELSBSTRING', 'TCLIBC', 'TUNE_ARCH',
                        'TOPDIR', 'TARGET_VENDOR', 'TARGET_OS']
meta/lib/oeqa/selftest/cases/sstatetests.py renamed from meta/lib/oeqa/selftest/sstatetests.py +21 -25

144 lines not on this page · raw message

meta/lib/oeqa/selftest/cases/tinfoil.py renamed from meta/lib/oeqa/selftest/tinfoil.py +12 -13
similarity index 96%
rename from meta/lib/oeqa/selftest/tinfoil.py
rename to meta/lib/oeqa/selftest/cases/tinfoil.py
index 73a0c3b..1394d42 100644
@@ -1,16 +1,15 @@
-import unittest
 import os
 import re
 import bb.tinfoil
 
-from oeqa.selftest.base import oeSelfTest
+from oeqa.selftest.case import OESelftestTestCase
 from oeqa.utils.commands import runCmd
-from oeqa.utils.decorators import testcase
+from oeqa.core.decorator.oeid import OETestID
 
-class TinfoilTests(oeSelfTest):
+class TinfoilTests(OESelftestTestCase):
     """ Basic tests for the tinfoil API """
 
-    @testcase(1568)
+    @OETestID(1568)
     def test_getvar(self):
         with bb.tinfoil.Tinfoil() as tinfoil:
             tinfoil.prepare(True)
@@ -18,7 +17,7 @@ class TinfoilTests(oeSelfTest):
             if not machine:
                 self.fail('Unable to get MACHINE value - returned %s' % machine)
 
-    @testcase(1569)
+    @OETestID(1569)
     def test_expand(self):
         with bb.tinfoil.Tinfoil() as tinfoil:
             tinfoil.prepare(True)
@@ -27,7 +26,7 @@ class TinfoilTests(oeSelfTest):
             if not pid:
                 self.fail('Unable to expand "%s" - returned %s' % (expr, pid))
 
-    @testcase(1570)
+    @OETestID(1570)
     def test_getvar_bb_origenv(self):
         with bb.tinfoil.Tinfoil() as tinfoil:
             tinfoil.prepare(True)
@@ -36,7 +35,7 @@ class TinfoilTests(oeSelfTest):
                 self.fail('Unable to get BB_ORIGENV value - returned %s' % origenv)
             self.assertEqual(origenv.getVar('HOME', False), os.environ['HOME'])
 
-    @testcase(1571)
+    @OETestID(1571)
     def test_parse_recipe(self):
         with bb.tinfoil.Tinfoil() as tinfoil:
             tinfoil.prepare(config_only=False, quiet=2)
@@ -47,7 +46,7 @@ class TinfoilTests(oeSelfTest):
             rd = tinfoil.parse_recipe_file(best[3])
             self.assertEqual(testrecipe, rd.getVar('PN'))
 
-    @testcase(1572)
+    @OETestID(1572)
     def test_parse_recipe_copy_expand(self):
         with bb.tinfoil.Tinfoil() as tinfoil:
             tinfoil.prepare(config_only=False, quiet=2)
@@ -66,7 +65,7 @@ class TinfoilTests(oeSelfTest):
             localdata.setVar('PN', 'hello')
             self.assertEqual('hello', localdata.getVar('BPN'))
 
-    @testcase(1573)
+    @OETestID(1573)
     def test_parse_recipe_initial_datastore(self):
         with bb.tinfoil.Tinfoil() as tinfoil:
             tinfoil.prepare(config_only=False, quiet=2)
@@ -80,7 +79,7 @@ class TinfoilTests(oeSelfTest):
             # Check we can get variable values
             self.assertEqual('somevalue', rd.getVar('MYVARIABLE'))
 
-    @testcase(1574)
+    @OETestID(1574)
     def test_list_recipes(self):
         with bb.tinfoil.Tinfoil() as tinfoil:
             tinfoil.prepare(config_only=False, quiet=2)
@@ -99,7 +98,7 @@ class TinfoilTests(oeSelfTest):
             if checkpns:
                 self.fail('Unable to find pkg_fn entries for: %s' % ', '.join(checkpns))
 
-    @testcase(1575)
+    @OETestID(1575)
     def test_wait_event(self):
         with bb.tinfoil.Tinfoil() as tinfoil:
             tinfoil.prepare(config_only=True)
@@ -130,7 +129,7 @@ class TinfoilTests(oeSelfTest):
             self.assertNotEqual(waitcount, 0, 'Timed out waiting for CommandCompleted event from bitbake server')
             self.assertTrue(eventreceived, 'Did not receive FilesMatchingFound event from bitbake server')
 
-    @testcase(1576)
+    @OETestID(1576)
     def test_setvariable_clean(self):
         # First check that setVariable affects the datastore
         with bb.tinfoil.Tinfoil() as tinfoil:
meta/lib/oeqa/selftest/cases/wic.py renamed from meta/lib/oeqa/selftest/wic.py +43 -41

307 lines not on this page · raw message

Signature · 1 line
2.1.4
#36 lore raw

PATCH 36/36 selftest: Migrate systemd_boot test case to the new framework

In reply to Aníbal Limón

- systemd_boot.py: Use the new case class and change decorator for id
- __init__.py: Because isn't needed now

---
 meta-yocto-bsp/lib/oeqa/selftest/__init__.py               |  0
 .../lib/oeqa/selftest/{ => cases}/systemd_boot.py          | 14 +++++---------
 2 files changed, 5 insertions(+), 9 deletions(-)
 delete mode 100644 meta-yocto-bsp/lib/oeqa/selftest/__init__.py
 rename meta-yocto-bsp/lib/oeqa/selftest/{ => cases}/systemd_boot.py (91%)
meta-yocto-bsp/lib/oeqa/selftest/__init__.py deleted +0 -0
deleted file mode 100644
index e69de29..0000000
meta-yocto-bsp/lib/oeqa/selftest/cases/systemd_boot.py renamed from meta-yocto-bsp/lib/oeqa/selftest/systemd_boot.py +5 -9
similarity index 91%
rename from meta-yocto-bsp/lib/oeqa/selftest/systemd_boot.py
rename to meta-yocto-bsp/lib/oeqa/selftest/cases/systemd_boot.py
index f7f74db..848cdf7 100644
@@ -1,14 +1,10 @@
-from oeqa.selftest.base import oeSelfTest
-from oeqa.utils.commands import runCmd, bitbake, get_bb_var, runqemu
-from oeqa.utils.decorators import testcase
-import re
 import os
-import sys
-import logging
-
 
-class Systemdboot(oeSelfTest):
+from oeqa.selftest.case import OESelftestTestCase
+from oeqa.core.decorator.oeid import OETestID
+from oeqa.utils.commands import runCmd, bitbake, get_bb_var, runqemu
 
+class Systemdboot(OESelftestTestCase):
     def _common_setup(self):
         """
         Common setup for test cases: 1445, XXXX
@@ -28,7 +24,7 @@ class Systemdboot(oeSelfTest):
         bitbake('mtools-native core-image-minimal')
 
 
-    @testcase(1445)
+    @OETestID(1445)
     def test_efi_systemdboot_images_can_be_built(self):
         """
         Summary:     Check if systemd-boot images can be built correctly
Signature · 1 line
2.1.4
#37 lore raw

✗ patchtest: failure for OEQA threading support and selftest migration

In reply to Aníbal Limón

== Series Details ==

Series: OEQA threading support and selftest migration
Revision: 1
URL : https://patchwork.openembedded.org/series/6941/
State : failure

== Summary ==

Thank you for submitting this patch series to OpenEmbedded Core. This is an automated response. Several tests have been executed on the proposed series by patchtest resulting in the following failures:

* Issue Series does not apply on top of target branch [test_series_merge_on_head]
Suggested fix Rebase your series on top of targeted branch
Targeted branch master (currently at 12373003cc)

* Issue Series sent to the wrong mailing list or some patches from the series correspond to different mailing lists [test_target_mailing_list]

  Suggested fix    Send the series again to the correct mailing list (ML)
  Suggested ML     [email protected] [http://git.yoctoproject.org/cgit/cgit.cgi/poky/]
  Patch's path:    meta-yocto-bsp/lib/oeqa/selftest/systemd_boot.py

If you believe any of these test results are incorrect, please reply to the mailing list ([email protected]) raising your concerns. Otherwise we would appreciate you correcting the issues and submitting a new version of the patchset if applicable. Please ensure you add/increment the version number when sending the new version (i.e. [PATCH] -> [PATCH v2] -> [PATCH v3] -> ...).

---

Test framework: http://git.yoctoproject.org/cgit/cgit.cgi/patchtest
Test suite:     http://git.yoctoproject.org/cgit/cgit.cgi/patchtest-oe
#38 lore raw
In reply to Aníbal Limón
Quoted 6 lines · Aníbal Limón

This series is the integration of tree main changes into the OEQA module,

* Implement threading support into OEQA core module
* Enables OEQA threaded mode into {,e}SDK test component
* Migrate current oe-selftest to use the same framework

I tried this on the autobuilder:

https://autobuilder.yoctoproject.org/main/builders/nightly-oe-selftest/
builds/901/steps/Running%20oe-selftest/logs/stdio

It was fast, the oe-selftest run which usually takes several hours took 30 mins. The above logs suggest we might have a coverage issue though.

Cheers,

Richard

#39 lore raw
Quoted 8 lines · Richard Purdie
Quoted 6 lines · Aníbal Limón

This series is the integration of tree main changes into the OEQA module,

* Implement threading support into OEQA core module
* Enables OEQA threaded mode into {,e}SDK test component
* Migrate current oe-selftest to use the same framework

Quoted 7 lines

I tried this on the autobuilder:

https://autobuilder.yoctoproject.org/main/builders/nightly-oe-selftest/
builds/901/steps/Running%20oe-selftest/logs/stdio

It was fast, the oe-selftest run which usually takes several hours took 30 mins. The above logs suggest we might have a coverage issue though.

BTW, the new OE/QA threading support does not support (yet, Anibal is planning to work on it) the selftest test cases (because only one bitbake instance can be running at a time) so we should see similar times as before with this migration. So, those 30 minutes just comes from executing a subset, so something may be wrong in the series.

Leo

Quoted 4 lines

Cheers,

Richard

#40 lore raw
Quoted 20 lines · Leonardo Sandoval
Quoted 11 lines · Richard Purdie
Quoted 7 lines · Aníbal Limón

This series is the integration of tree main changes into the OEQA module,

* Implement threading support into OEQA core module
* Enables OEQA threaded mode into {,e}SDK test component
* Migrate current oe-selftest to use the same framework

I tried this on the autobuilder:

Quoted 8 lines

https://autobuilder.yoctoproject.org/main/builders/nightly-oe-selft
est/
builds/901/steps/Running%20oe-selftest/logs/stdio

It was fast, the oe-selftest run which usually takes several hours took
30 mins. The above logs suggest we might have a coverage issue though.

Quoted 5 lines

BTW, the new OE/QA threading support does not support (yet, Anibal is planning to work on it) the selftest test cases (because only one bitbake instance can be running at a time) so we should see similar times as before with this migration. So, those 30 minutes just comes from executing a subset, so something may be wrong in the series.

The above was British understatement ;-).

If you look at the log it went from 200+ tests to executing just one. There is something *very* wrong with the series.

I have Anibal's piece of the series queued in -next and may merge that ahead of the selftest pieces whilst you figure out the issue there.

Cheers,

Richard

#41 lore raw
Quoted 27 lines · Richard Purdie
Quoted 20 lines · Leonardo Sandoval
Quoted 11 lines · Richard Purdie
Quoted 7 lines · Aníbal Limón

This series is the integration of tree main changes into the OEQA module,

* Implement threading support into OEQA core module
* Enables OEQA threaded mode into {,e}SDK test component
* Migrate current oe-selftest to use the same framework

I tried this on the autobuilder:

Quoted 8 lines

https://autobuilder.yoctoproject.org/main/builders/nightly-oe-selft
est/
builds/901/steps/Running%20oe-selftest/logs/stdio

It was fast, the oe-selftest run which usually takes several hours took
30 mins. The above logs suggest we might have a coverage issue though.

Quoted 5 lines

BTW, the new OE/QA threading support does not support (yet, Anibal is planning to work on it) the selftest test cases (because only one bitbake instance can be running at a time) so we should see similar times as before with this migration. So, those 30 minutes just comes from executing a subset, so something may be wrong in the series.

Quoted 4 lines

The above was British understatement ;-).

If you look at the log it went from 200+ tests to executing just one. There is something *very* wrong with the series.

I rebased Anibal's series on top of current master and executed oe-selftest -a at my host, and tests are added correctly and start executing as expected, so there may be something going on on the AB. Also several local AB builds were launched prior sending the series into the mailing list and no errors were seen. Will work on this to figure out the root cause.

Leo

Quoted 7 lines

I have Anibal's piece of the series queued in -next and may merge that ahead of the selftest pieces whilst you figure out the issue there.

Cheers,

Richard

#42 lore raw
Quoted 28 lines · Leonardo Sandoval
Quoted 27 lines · Richard Purdie
Quoted 25 lines · Leonardo Sandoval
Quoted 11 lines · Richard Purdie
Quoted 7 lines · Aníbal Limón

This series is the integration of tree main changes into the OEQA module,

* Implement threading support into OEQA core module
* Enables OEQA threaded mode into {,e}SDK test component
* Migrate current oe-selftest to use the same framework

I tried this on the autobuilder:

Quoted 8 lines

https://autobuilder.yoctoproject.org/main/builders/nightly-oe-selft
est/
builds/901/steps/Running%20oe-selftest/logs/stdio

It was fast, the oe-selftest run which usually takes several hours took
30 mins. The above logs suggest we might have a coverage issue though.

BTW, the new OE/QA threading support does not support (yet, Anibal is planning to work on it) the selftest test cases (because only one bitbake instance can be running at a time) so we should see similar times as before with this migration. So, those 30 minutes just comes from executing a subset, so something may be wrong in the series.

Quoted 4 lines
Quoted 4 lines

The above was British understatement ;-).

If you look at the log it went from 200+ tests to executing just one. There is something *very* wrong with the series.

I executed the branch into the local AB and everything goes well, see attached log.

May be was an integration issue because we have two patches for migrate test cases, one for oe-core and other for meta-yocto-bsp. [1]. I re-launched the build into the local AB to test again and see what happens.

[1]
http://git.yoctoproject.org/cgit/cgit.cgi/poky-contrib/log/?h=alimon/oeqa_integration

Cheers,
Anibal

Quoted 20 lines

I rebased Anibal's series on top of current master and executed oe-selftest -a at my host, and tests are added correctly and start executing as expected, so there may be something going on on the AB. Also several local AB builds were launched prior sending the series into the mailing list and no errors were seen. Will work on this to figure out the root cause.

Leo

Quoted 7 lines

I have Anibal's piece of the series queued in -next and may merge that ahead of the selftest pieces whilst you figure out the issue there.

Cheers,

Richard

### Shell environment set up for builds. ###

You can now run 'bitbake <target>'

Common targets are:
core-image-minimal
core-image-sato
meta-toolchain
meta-ide-support

You can also run generated qemu images with a command like 'runqemu qemux86'

2017-05-26 13:27:47,172 - oe-selftest - INFO - Adding layer libraries:
2017-05-26 13:27:47,172 - oe-selftest - INFO - 	/home/ab/autobuilder/yocto-worker/nightly-oe-selftest/build/meta/lib
2017-05-26 13:27:47,172 - oe-selftest - INFO - 	/home/ab/autobuilder/yocto-worker/nightly-oe-selftest/build/meta-yocto-bsp/lib
2017-05-26 13:27:47,172 - oe-selftest - INFO - 	/home/ab/autobuilder/yocto-worker/nightly-oe-selftest/build/meta-selftest/lib
2017-05-26 13:27:47,174 - oe-selftest - INFO - Running bitbake -p
2017-05-26 13:27:55,509 - oe-selftest - INFO - 
2017-05-26 13:27:55,510 - oe-selftest - INFO - Running tests...
2017-05-26 13:27:55,510 - oe-selftest - INFO - ----------------------------------------------------------------------
2017-05-26 13:27:55,511 - oe-selftest - INFO - Adding: "include selftest.inc" in /home/ab/autobuilder/yocto-worker/nightly-oe-selftest/build/build/conf/local.conf
2017-05-26 13:27:55,511 - oe-selftest - INFO - Adding: "include bblayers.inc" in bblayers.conf
2017-05-26 13:31:54,563 - oe-selftest - INFO -   test_archiver_allows_to_filter_on_recipe_name (archiver.Archiver) ... OK (239.052s)
2017-05-26 13:32:06,511 - oe-selftest - INFO -   test_bitbakelayers_add_remove (bblayers.BitbakeLayers) ... OK (11.947s)
2017-05-26 13:32:19,932 - oe-selftest - INFO -   test_bitbakelayers_flatten (bblayers.BitbakeLayers) ... OK (13.420s)
2017-05-26 13:32:25,713 - oe-selftest - INFO -   test_bitbakelayers_showappends (bblayers.BitbakeLayers) ... OK (5.780s)
2017-05-26 13:33:11,085 - oe-selftest - INFO -   test_bitbakelayers_showcrossdepends (bblayers.BitbakeLayers) ... OK (45.372s)
2017-05-26 13:33:12,187 - oe-selftest - INFO -   test_bitbakelayers_showlayers (bblayers.BitbakeLayers) ... OK (1.101s)
2017-05-26 13:33:15,036 - oe-selftest - INFO -   test_bitbakelayers_showoverlayed (bblayers.BitbakeLayers) ... OK (2.849s)
2017-05-26 13:33:30,382 - oe-selftest - INFO -   test_bitbakelayers_showrecipes (bblayers.BitbakeLayers) ... OK (15.345s)
2017-05-26 13:33:36,262 - oe-selftest - INFO -   test_bbappend_order (bbtests.BitbakeTests) ... OK (5.879s)
2017-05-26 13:33:41,614 - oe-selftest - INFO -   test_bitbake_g (bbtests.BitbakeTests) ... OK (5.352s)
2017-05-26 13:33:42,532 - oe-selftest - INFO -   test_bitbake_invalid_recipe (bbtests.BitbakeTests) ... OK (0.917s)
2017-05-26 13:33:44,489 - oe-selftest - INFO -   test_bitbake_invalid_target (bbtests.BitbakeTests) ... OK (1.957s)
2017-05-26 13:33:49,290 - oe-selftest - INFO -   test_checkuri (bbtests.BitbakeTests) ... OK (4.801s)
2017-05-26 13:34:06,252 - oe-selftest - INFO -   test_continue (bbtests.BitbakeTests) ... OK (16.961s)
2017-05-26 13:34:10,056 - oe-selftest - INFO -   test_dry_run (bbtests.BitbakeTests) ... OK (3.803s)
2017-05-26 13:34:11,336 - oe-selftest - INFO -   test_environment (bbtests.BitbakeTests) ... OK (1.280s)
2017-05-26 13:34:20,593 - oe-selftest - INFO -   test_event_handler (bbtests.BitbakeTests) ... OK (9.257s)
2017-05-26 13:35:01,117 - oe-selftest - INFO -   test_force_task_1 (bbtests.BitbakeTests) ... OK (40.524s)
2017-05-26 13:35:23,984 - oe-selftest - INFO -   test_force_task_2 (bbtests.BitbakeTests) ... OK (22.866s)
2017-05-26 13:35:37,179 - oe-selftest - INFO -   test_image_manifest (bbtests.BitbakeTests) ... OK (13.194s)
2017-05-26 13:35:50,630 - oe-selftest - INFO -   test_invalid_patch (bbtests.BitbakeTests) ... OK (13.451s)
2017-05-26 13:36:06,734 - oe-selftest - INFO -   test_invalid_recipe_src_uri (bbtests.BitbakeTests) ... OK (16.103s)
2017-05-26 13:36:10,623 - oe-selftest - INFO -   test_just_parse (bbtests.BitbakeTests) ... OK (3.889s)
2017-05-26 13:36:24,276 - oe-selftest - INFO -   test_local_sstate (bbtests.BitbakeTests) ... OK (13.653s)
2017-05-26 13:36:44,590 - oe-selftest - INFO -   test_non_gplv3 (bbtests.BitbakeTests) ... OK (20.313s)
2017-05-26 13:36:45,855 - oe-selftest - INFO -   test_postfile (bbtests.BitbakeTests) ... OK (1.265s)
2017-05-26 13:36:52,229 - oe-selftest - INFO -   test_prefile (bbtests.BitbakeTests) ... OK (6.373s)
2017-05-26 13:37:01,058 - oe-selftest - INFO -   test_rename_downloaded_file (bbtests.BitbakeTests) ... OK (8.828s)
2017-05-26 13:37:02,345 - oe-selftest - INFO -   test_run_bitbake_from_dir_1 (bbtests.BitbakeTests) ... OK (1.287s)
2017-05-26 13:37:03,658 - oe-selftest - INFO -   test_run_bitbake_from_dir_2 (bbtests.BitbakeTests) ... OK (1.312s)
2017-05-26 13:37:25,978 - oe-selftest - INFO -   test_setscene_only (bbtests.BitbakeTests) ... OK (22.320s)
2017-05-26 13:37:28,507 - oe-selftest - INFO -   test_version (bbtests.BitbakeTests) ... OK (2.528s)
2017-05-26 13:37:29,450 - oe-selftest - INFO -   test_warnings_errors (bbtests.BitbakeTests) ... OK (0.942s)
2017-05-26 13:37:50,831 - oe-selftest - INFO -   test_arch_work_dir_and_export_source (buildoptions.ArchiverTest) ... OK (21.381s)
2017-05-26 13:38:11,672 - oe-selftest - INFO -   test_buildhistory_basic (buildoptions.BuildhistoryTests) ... OK (20.840s)
2017-05-26 13:38:58,009 - oe-selftest - INFO -   test_buildhistory_buildtime_pr_backwards (buildoptions.BuildhistoryTests) ... OK (46.337s)
2017-05-26 13:39:26,605 - oe-selftest - INFO -   test_stoptask_behavior (buildoptions.DiskMonTest) ... OK (28.595s)
2017-05-26 13:58:56,097 - oe-selftest - INFO -   test_ccache_tool (buildoptions.ImageOptionsTests) ... OK (1169.491s)
2017-05-26 14:01:47,085 - oe-selftest - INFO -   test_incremental_image_generation (buildoptions.ImageOptionsTests) ... OK (170.987s)
2017-05-26 14:35:42,505 - oe-selftest - INFO -   test_read_only_image (buildoptions.ImageOptionsTests) ... OK (2035.420s)
2017-05-26 14:36:04,557 - oe-selftest - INFO -   test_layer_without_git_dir (buildoptions.SanityOptionsTest) ... OK (22.036s)
2017-05-26 14:36:26,492 - oe-selftest - INFO -   test_options_warnqa_errorqa_switch (buildoptions.SanityOptionsTest) ... OK (21.935s)
2017-05-26 14:37:34,000 - oe-selftest - INFO -   test_sanity_unsafe_script_references (buildoptions.SanityOptionsTest) ... OK (67.508s)
2017-05-26 14:38:36,144 - oe-selftest - INFO -   test_expected_files (containerimage.ContainerImageTests) ... OK (62.142s)
2017-05-26 14:38:45,135 - oe-selftest - INFO -   test_create_workspace (devtool.DevtoolTests) ... OK (7.616s)
2017-05-26 14:39:38,062 - oe-selftest - INFO -   test_devtool_add (devtool.DevtoolTests) ... OK (52.926s)
2017-05-26 14:40:38,974 - oe-selftest - INFO -   test_devtool_add_fetch (devtool.DevtoolTests) ... OK (60.911s)
2017-05-26 14:41:30,352 - oe-selftest - INFO -   test_devtool_add_fetch_git (devtool.DevtoolTests) ... OK (51.377s)
2017-05-26 14:41:46,555 - oe-selftest - INFO -   test_devtool_add_fetch_simple (devtool.DevtoolTests) ... OK (16.202s)
2017-05-26 14:42:01,042 - oe-selftest - INFO -   test_devtool_add_git_local (devtool.DevtoolTests) ... OK (14.486s)
2017-05-26 14:47:53,406 - oe-selftest - INFO -   test_devtool_add_library (devtool.DevtoolTests) ... OK (352.364s)
2017-05-26 14:50:45,513 - oe-selftest - INFO -   test_devtool_build_image (devtool.DevtoolTests) ... OK (172.106s)
2017-05-26 14:52:53,283 - oe-selftest - INFO -   test_devtool_buildclean (devtool.DevtoolTests) ... OK (127.770s)

rootfs file: /home/ab/autobuilder/yocto-worker/nightly-oe-selftest/build/build/tmp/deploy/images/qemux86-64/oe-selftest-image-qemux86-64.ext4
Qemu log file: /home/ab/autobuilder/yocto-worker/nightly-oe-selftest/build/build/tmp/work/qemux86_64-poky-linux/oe-selftest-image/1.0-r0/testimage/qemu_boot_log.20170526195432
SSH log file: /home/ab/autobuilder/yocto-worker/nightly-oe-selftest/build/build/tmp/work/qemux86_64-poky-linux/oe-selftest-image/1.0-r0/testimage/ssh_target_log.20170526195432
Using kvm for runqemu
Created listening socket for qemu serial console on: 127.0.0.1:39685
Created listening socket for qemu serial console on: 127.0.0.1:58030
launchcmd=runqemu snapshot kvm qemux86-64 /home/ab/autobuilder/yocto-worker/nightly-oe-selftest/build/build/tmp/deploy/images/qemux86-64/oe-selftest-image-qemux86-64.ext4 tcpserial=58030 bootparams="console=tty1 console=ttyS0,115200n8 printk.time=1" qemuparams="-serial tcp:127.0.0.1:39685"
runqemu started, pid is 2196
waiting at most 60 seconds for qemu pid
qemu started - qemu procces pid is 2216
qemu cmdline used:
tmp/work/x86_64-linux/qemu-helper-native/1.0-r1/recipe-sysroot-native/usr/bin//qemu-system-x86_64-devicevirtio-net-pci,netdev=net0,mac=52:54:00:12:34:02-netdevtap,id=net0,ifname=tap0,script=no,downscript=no-drivefile=/home/ab/autobuilder/yocto-worker/nightly-oe-selftest/build/build/tmp/deploy/images/qemux86-64/oe-selftest-image-qemux86-64.ext4,if=virtio,format=raw-vgavmware-show-cursor-usb-usbdevicetablet-devicevirtio-rng-pci-serialtcp:127.0.0.1:39685-cpukvm64-enable-kvm-m256-serialtcp:127.0.0.1:58030-snapshot-kerneltmp/deploy/images/qemux86-64/bzImage--4.10.15+git0+4d929fac34_d2c1ed3c0c-r0-qemux86-64-20170526174439.bin-appendroot=/dev/vda rw highres=off mem=256M ip=192.168.7.2::192.168.7.1:255.255.255.0 vga=0 uvesafb.mode_option=640x480-32 oprofile.timer=1 uvesafb.task_timeout=-1 console=tty1 console=ttyS0,115200n8 printk.time=1 Target IP: 192.168.7.2
Server IP: 192.168.7.1
Starting logging thread
Starting thread event loop
Connection request received
Setting connection established event
Output from runqemu:
runqemu - INFO - CONFFILE: /home/ab/autobuilder/yocto-worker/nightly-oe-selftest/build/build/tmp/deploy/images/qemux86-64/oe-selftest-image-qemux86-64.qemuboot.conf
runqemu - INFO - Continuing with the following parameters:

stty: standard input: Inappropriate ioctl for device
runqemu - INFO - Running /bin/ip link...
runqemu - INFO - Acquiring lockfile /tmp/qemu-tap-locks/tap0.lock...
runqemu - INFO - Using preconfigured tap device tap0
runqemu - INFO - If this is not intended, touch /tmp/qemu-tap-locks/tap0.skip to make runqemu skip tap0.
runqemu - INFO - Network configuration: 192.168.7.2::192.168.7.1:255.255.255.0
runqemu - INFO - Running ldd tmp/work/x86_64-linux/qemu-helper-native/1.0-r1/recipe-sysroot-native/usr/bin//qemu-system-x86_64...
runqemu - INFO - Running tmp/work/x86_64-linux/qemu-helper-native/1.0-r1/recipe-sysroot-native/usr/bin//qemu-system-x86_64 -device virtio-net-pci,netdev=net0,mac=52:54:00:12:34:02 -netdev tap,id=net0,ifname=tap0,script=no,downscript=no -drive file=/home/ab/autobuilder/yocto-worker/nightly-oe-selftest/build/build/tmp/deploy/images/qemux86-64/oe-selftest-image-qemux86-64.ext4,if=virtio,format=raw -vga vmware -show-cursor -usb -usbdevice tablet -device virtio-rng-pci -serial tcp:127.0.0.1:39685 -cpu kvm64 -enable-kvm -m 256 -serial tcp:127.0.0.1:58030 -snapshot -kernel tmp/deploy/images/qemux86-64/bzImage--4.10.15+git0+4d929fac34_d2c1ed3c0c-r0-qemux86-64-20170526174439.bin -append 'root=/dev/vda rw highres=off mem=256M ip=192.168.7.2::192.168.7.1:255.255.255.0 vga=0 uvesafb.mode_option=640x480-32 oprofile.timer=1 uvesafb.task_timeout=-1 console=tty1 console=ttyS0,115200n8 printk.time=1'

Waiting at most 1000 seconds for login banner
Connection from 127.0.0.1:46988
Reached login banner
Logged as root in serial console
Stopping logging thread
Stop event received
Tearing down logging thread
Sending SIGTERM to runqemu

2017-05-26 14:55:13,751 - oe-selftest - INFO -   test_devtool_deploy_target (devtool.DevtoolTests) ... OK (140.467s)
2017-05-26 14:55:35,998 - oe-selftest - INFO -   test_devtool_extract (devtool.DevtoolTests) ... OK (22.247s)
2017-05-26 14:55:55,753 - oe-selftest - INFO -   test_devtool_extract_virtual (devtool.DevtoolTests) ... OK (19.755s)
2017-05-26 14:56:34,819 - oe-selftest - INFO -   test_devtool_finish_modify_origlayer (devtool.DevtoolTests) ... OK (39.065s)
2017-05-26 14:57:16,072 - oe-selftest - INFO -   test_devtool_finish_modify_otherlayer (devtool.DevtoolTests) ... OK (41.253s)
2017-05-26 14:57:50,714 - oe-selftest - INFO -   test_devtool_finish_upgrade_origlayer (devtool.DevtoolTests) ... OK (34.641s)
2017-05-26 14:58:28,068 - oe-selftest - INFO -   test_devtool_finish_upgrade_otherlayer (devtool.DevtoolTests) ... OK (37.354s)
2017-05-26 14:58:30,345 - oe-selftest - INFO -   test_devtool_layer_plugins (devtool.DevtoolTests) ... OK (2.277s)
2017-05-26 14:58:43,279 - oe-selftest - INFO -   test_devtool_load_plugin (devtool.DevtoolTests) ... OK (12.933s)
2017-05-26 15:00:13,053 - oe-selftest - INFO -   test_devtool_modify (devtool.DevtoolTests) ... OK (89.773s)
2017-05-26 15:01:06,769 - oe-selftest - INFO -   test_devtool_modify_git (devtool.DevtoolTests) ... OK (53.716s)
2017-05-26 15:02:32,912 - oe-selftest - INFO -   test_devtool_modify_invalid (devtool.DevtoolTests) ... OK (86.142s)
2017-05-26 15:04:03,297 - oe-selftest - INFO -   test_devtool_modify_localfiles (devtool.DevtoolTests) ... OK (90.384s)
2017-05-26 15:07:54,157 - oe-selftest - INFO -   test_devtool_modify_native (devtool.DevtoolTests) ... OK (230.860s)
2017-05-26 15:08:15,140 - oe-selftest - INFO -   test_devtool_modify_virtual (devtool.DevtoolTests) ... OK (20.983s)
2017-05-26 15:09:05,711 - oe-selftest - INFO -   test_devtool_rename (devtool.DevtoolTests) ... OK (50.571s)
2017-05-26 15:10:46,005 - oe-selftest - INFO -   test_devtool_reset_all (devtool.DevtoolTests) ... OK (100.293s)
2017-05-26 15:11:16,393 - oe-selftest - INFO -   test_devtool_update_recipe (devtool.DevtoolTests) ... OK (30.388s)
2017-05-26 15:12:09,332 - oe-selftest - INFO -   test_devtool_update_recipe_append (devtool.DevtoolTests) ... OK (52.939s)
2017-05-26 15:13:00,276 - oe-selftest - INFO -   test_devtool_update_recipe_append_git (devtool.DevtoolTests) ... OK (50.943s)
2017-05-26 15:13:32,376 - oe-selftest - INFO -   test_devtool_update_recipe_git (devtool.DevtoolTests) ... OK (32.100s)
2017-05-26 15:14:09,867 - oe-selftest - INFO -   test_devtool_update_recipe_local_files (devtool.DevtoolTests) ... OK (37.490s)
2017-05-26 15:14:38,820 - oe-selftest - INFO -   test_devtool_update_recipe_local_files_2 (devtool.DevtoolTests) ... OK (28.953s)
2017-05-26 15:15:04,539 - oe-selftest - INFO -   test_devtool_update_recipe_local_files_3 (devtool.DevtoolTests) ... OK (25.719s)
2017-05-26 15:15:26,285 - oe-selftest - INFO -   test_devtool_update_recipe_local_files_subdir (devtool.DevtoolTests) ... OK (21.745s)
2017-05-26 15:15:52,574 - oe-selftest - INFO -   test_devtool_update_recipe_local_patch_gz (devtool.DevtoolTests) ... OK (26.288s)
2017-05-26 15:16:27,959 - oe-selftest - INFO -   test_devtool_upgrade (devtool.DevtoolTests) ... OK (35.385s)
2017-05-26 15:16:53,494 - oe-selftest - INFO -   test_devtool_upgrade_git (devtool.DevtoolTests) ... OK (25.535s)
2017-05-26 15:35:39,820 - oe-selftest - INFO -   test_devtool_virtual_kernel_modify (devtool.DevtoolTests) ... OK (1126.325s)
2017-05-26 16:06:56,825 - oe-selftest - INFO -   test_image_generation_binary_feeds (eSDK.oeSDKExtSelfTest) ... OK (49.079s)
2017-05-26 16:07:04,853 - oe-selftest - INFO -   test_install_libraries_headers (eSDK.oeSDKExtSelfTest) ... OK (8.026s)
2017-05-26 16:07:16,977 - oe-selftest - INFO -   test_conversion_typedep_added (image_typedep.ImageTypeDepTests) ... OK (9.022s)

rootfs file: /home/ab/autobuilder/yocto-worker/nightly-oe-selftest/build/build/tmp/deploy/images/qemux86-64/core-image-minimal-qemux86-64.ext4
Qemu log file: /home/ab/autobuilder/yocto-worker/nightly-oe-selftest/build/build/tmp/work/qemux86_64-poky-linux/core-image-minimal/1.0-r0/testimage/qemu_boot_log.20170526210803
SSH log file: /home/ab/autobuilder/yocto-worker/nightly-oe-selftest/build/build/tmp/work/qemux86_64-poky-linux/core-image-minimal/1.0-r0/testimage/ssh_target_log.20170526210803
Using kvm for runqemu
Created listening socket for qemu serial console on: 127.0.0.1:49538
Created listening socket for qemu serial console on: 127.0.0.1:56344
launchcmd=runqemu snapshot kvm qemux86-64 /home/ab/autobuilder/yocto-worker/nightly-oe-selftest/build/build/tmp/deploy/images/qemux86-64/core-image-minimal-qemux86-64.ext4 tcpserial=56344 bootparams="console=tty1 console=ttyS0,115200n8 printk.time=1" qemuparams="-serial tcp:127.0.0.1:49538"
runqemu started, pid is 12008
waiting at most 60 seconds for qemu pid
qemu started - qemu procces pid is 12028
qemu cmdline used:
tmp/work/x86_64-linux/qemu-helper-native/1.0-r1/recipe-sysroot-native/usr/bin//qemu-system-x86_64-devicevirtio-net-pci,netdev=net0,mac=52:54:00:12:34:02-netdevtap,id=net0,ifname=tap0,script=no,downscript=no-drivefile=/home/ab/autobuilder/yocto-worker/nightly-oe-selftest/build/build/tmp/deploy/images/qemux86-64/core-image-minimal-qemux86-64.ext4,if=virtio,format=raw-vgavmware-show-cursor-usb-usbdevicetablet-devicevirtio-rng-pci-serialtcp:127.0.0.1:49538-cpukvm64-enable-kvm-m256-serialtcp:127.0.0.1:56344-snapshot-kerneltmp/deploy/images/qemux86-64/bzImage--4.10.15+git0+4d929fac34_d2c1ed3c0c-r0-qemux86-64-20170526174439.bin-appendroot=/dev/vda rw highres=off mem=256M ip=192.168.7.2::192.168.7.1:255.255.255.0 vga=0 uvesafb.mode_option=640x480-32 oprofile.timer=1 uvesafb.task_timeout=-1 console=tty1 console=ttyS0,115200n8 printk.time=1 Target IP: 192.168.7.2
Server IP: 192.168.7.1
Starting logging thread
Starting thread event loop
Connection request received
Setting connection established event
Output from runqemu:
runqemu - INFO - CONFFILE: /home/ab/autobuilder/yocto-worker/nightly-oe-selftest/build/build/tmp/deploy/images/qemux86-64/core-image-minimal-qemux86-64.qemuboot.conf
runqemu - INFO - Continuing with the following parameters:

stty: standard input: Inappropriate ioctl for device
runqemu - INFO - Running /bin/ip link...
runqemu - INFO - Acquiring lockfile /tmp/qemu-tap-locks/tap0.lock...
runqemu - INFO - Using preconfigured tap device tap0
runqemu - INFO - If this is not intended, touch /tmp/qemu-tap-locks/tap0.skip to make runqemu skip tap0.
runqemu - INFO - Network configuration: 192.168.7.2::192.168.7.1:255.255.255.0
runqemu - INFO - Running ldd tmp/work/x86_64-linux/qemu-helper-native/1.0-r1/recipe-sysroot-native/usr/bin//qemu-system-x86_64...
runqemu - INFO - Running tmp/work/x86_64-linux/qemu-helper-native/1.0-r1/recipe-sysroot-native/usr/bin//qemu-system-x86_64 -device virtio-net-pci,netdev=net0,mac=52:54:00:12:34:02 -netdev tap,id=net0,ifname=tap0,script=no,downscript=no -drive file=/home/ab/autobuilder/yocto-worker/nightly-oe-selftest/build/build/tmp/deploy/images/qemux86-64/core-image-minimal-qemux86-64.ext4,if=virtio,format=raw -vga vmware -show-cursor -usb -usbdevice tablet -device virtio-rng-pci -serial tcp:127.0.0.1:49538 -cpu kvm64 -enable-kvm -m 256 -serial tcp:127.0.0.1:56344 -snapshot -kernel tmp/deploy/images/qemux86-64/bzImage--4.10.15+git0+4d929fac34_d2c1ed3c0c-r0-qemux86-64-20170526174439.bin -append 'root=/dev/vda rw highres=off mem=256M ip=192.168.7.2::192.168.7.1:255.255.255.0 vga=0 uvesafb.mode_option=640x480-32 oprofile.timer=1 uvesafb.task_timeout=-1 console=tty1 console=ttyS0,115200n8 printk.time=1'

Waiting at most 1000 seconds for login banner Connection from 127.0.0.1:39126
Reached login banner
Couldn't login into serial console as root using blank password Stopping logging thread
Stop event received
Tearing down logging thread
Sending SIGTERM to runqemu

2017-05-26 16:08:23,624 - oe-selftest - INFO -   test_all_users_can_connect_via_ssh_without_password (imagefeatures.ImageFeatures) ... OK (66.646s)
2017-05-26 16:09:24,778 - oe-selftest - INFO -   test_bmap (imagefeatures.ImageFeatures) ... OK (61.153s)
2017-05-26 16:14:42,891 - oe-selftest - INFO -   test_clutter_image_can_be_built (imagefeatures.ImageFeatures) ... OK (318.112s)

rootfs file: /home/ab/autobuilder/yocto-worker/nightly-oe-selftest/build/build/tmp/deploy/images/qemux86-64/core-image-minimal-qemux86-64.ext4
Qemu log file: /home/ab/autobuilder/yocto-worker/nightly-oe-selftest/build/build/tmp/work/qemux86_64-poky-linux/core-image-minimal/1.0-r0/testimage/qemu_boot_log.20170526211531
SSH log file: /home/ab/autobuilder/yocto-worker/nightly-oe-selftest/build/build/tmp/work/qemux86_64-poky-linux/core-image-minimal/1.0-r0/testimage/ssh_target_log.20170526211531
Using kvm for runqemu
Created listening socket for qemu serial console on: 127.0.0.1:55927
Created listening socket for qemu serial console on: 127.0.0.1:43950
launchcmd=runqemu snapshot kvm qemux86-64 /home/ab/autobuilder/yocto-worker/nightly-oe-selftest/build/build/tmp/deploy/images/qemux86-64/core-image-minimal-qemux86-64.ext4 tcpserial=43950 bootparams="console=tty1 console=ttyS0,115200n8 printk.time=1" qemuparams="-serial tcp:127.0.0.1:55927"
runqemu started, pid is 20702
waiting at most 60 seconds for qemu pid
qemu started - qemu procces pid is 20722
qemu cmdline used:
tmp/work/x86_64-linux/qemu-helper-native/1.0-r1/recipe-sysroot-native/usr/bin//qemu-system-x86_64-devicevirtio-net-pci,netdev=net0,mac=52:54:00:12:34:02-netdevtap,id=net0,ifname=tap0,script=no,downscript=no-drivefile=/home/ab/autobuilder/yocto-worker/nightly-oe-selftest/build/build/tmp/deploy/images/qemux86-64/core-image-minimal-qemux86-64.ext4,if=virtio,format=raw-vgavmware-show-cursor-usb-usbdevicetablet-devicevirtio-rng-pci-serialtcp:127.0.0.1:55927-cpukvm64-enable-kvm-m256-serialtcp:127.0.0.1:43950-snapshot-kerneltmp/deploy/images/qemux86-64/bzImage--4.10.15+git0+4d929fac34_d2c1ed3c0c-r0-qemux86-64-20170526174439.bin-appendroot=/dev/vda rw highres=off mem=256M ip=192.168.7.2::192.168.7.1:255.255.255.0 vga=0 uvesafb.mode_option=640x480-32 oprofile.timer=1 uvesafb.task_timeout=-1 console=tty1 console=ttyS0,115200n8 printk.time=1 Target IP: 192.168.7.2
Server IP: 192.168.7.1
Starting logging thread
Starting thread event loop
Connection request received
Setting connection established event
Output from runqemu:
runqemu - INFO - CONFFILE: /home/ab/autobuilder/yocto-worker/nightly-oe-selftest/build/build/tmp/deploy/images/qemux86-64/core-image-minimal-qemux86-64.qemuboot.conf
runqemu - INFO - Continuing with the following parameters:

stty: standard input: Inappropriate ioctl for device
runqemu - INFO - Running /bin/ip link...
runqemu - INFO - Acquiring lockfile /tmp/qemu-tap-locks/tap0.lock...
runqemu - INFO - Using preconfigured tap device tap0
runqemu - INFO - If this is not intended, touch /tmp/qemu-tap-locks/tap0.skip to make runqemu skip tap0.
runqemu - INFO - Network configuration: 192.168.7.2::192.168.7.1:255.255.255.0
runqemu - INFO - Running ldd tmp/work/x86_64-linux/qemu-helper-native/1.0-r1/recipe-sysroot-native/usr/bin//qemu-system-x86_64...
runqemu - INFO - Running tmp/work/x86_64-linux/qemu-helper-native/1.0-r1/recipe-sysroot-native/usr/bin//qemu-system-x86_64 -device virtio-net-pci,netdev=net0,mac=52:54:00:12:34:02 -netdev tap,id=net0,ifname=tap0,script=no,downscript=no -drive file=/home/ab/autobuilder/yocto-worker/nightly-oe-selftest/build/build/tmp/deploy/images/qemux86-64/core-image-minimal-qemux86-64.ext4,if=virtio,format=raw -vga vmware -show-cursor -usb -usbdevice tablet -device virtio-rng-pci -serial tcp:127.0.0.1:55927 -cpu kvm64 -enable-kvm -m 256 -serial tcp:127.0.0.1:43950 -snapshot -kernel tmp/deploy/images/qemux86-64/bzImage--4.10.15+git0+4d929fac34_d2c1ed3c0c-r0-qemux86-64-20170526174439.bin -append 'root=/dev/vda rw highres=off mem=256M ip=192.168.7.2::192.168.7.1:255.255.255.0 vga=0 uvesafb.mode_option=640x480-32 oprofile.timer=1 uvesafb.task_timeout=-1 console=tty1 console=ttyS0,115200n8 printk.time=1'

Waiting at most 1000 seconds for login banner
Connection from 127.0.0.1:35394
Reached login banner
Logged as root in serial console
Stopping logging thread
Stop event received
Tearing down logging thread
Sending SIGTERM to runqemu

2017-05-26 16:15:45,517 - oe-selftest - INFO -   test_non_root_user_can_connect_via_ssh_without_password (imagefeatures.ImageFeatures) ... OK (62.626s)
2017-05-26 16:18:20,878 - oe-selftest - INFO -   test_wayland_support_in_image (imagefeatures.ImageFeatures) ... OK (155.360s)
2017-05-26 16:18:56,147 - oe-selftest - INFO -   test_layer_appends (layerappend.LayerAppendTests) ... OK (35.267s)
2017-05-26 16:18:57,492 - oe-selftest - INFO -   test_copy_hardlink_tree_count (liboe.LibOE) ... OK (0.020s)
2017-05-26 16:18:57,504 - oe-selftest - INFO -   test_copy_tree_special (liboe.LibOE) ... OK (0.011s)
2017-05-26 16:19:05,197 - oe-selftest - INFO -   test_copy_tree_xattr (liboe.LibOE) ... OK (7.692s)
2017-05-26 16:19:16,447 - oe-selftest - INFO -   test_nonmatching_checksum (lic_checksum.LicenseTests) ... OK (11.249s)
2017-05-26 16:19:16,448 - oe-selftest - INFO - VerifyManifest: doing bitbake core-image-minimal as a prerequisite of the test
2017-05-26 16:33:41,222 - oe-selftest - INFO -   test_SDK_manifest_entries (manifest.VerifyManifest) ... OK (828.832s)
2017-05-26 16:33:52,679 - oe-selftest - INFO -   test_image_manifest_entries (manifest.VerifyManifest) ... OK (11.440s)
2017-05-26 16:33:54,899 - oe-selftest - INFO -   test_blob_to_dict (oelib.buildhistory.TestBlobParsing) ... OK (2.219s)
2017-05-26 16:33:56,281 - oe-selftest - INFO -   test_compare_dict_blobs (oelib.buildhistory.TestBlobParsing) ... OK (1.382s)
2017-05-26 16:33:57,642 - oe-selftest - INFO -   test_compare_dict_blobs_default (oelib.buildhistory.TestBlobParsing) ... OK (1.360s)
2017-05-26 16:33:57,645 - oe-selftest - INFO -   test_machine_name (oelib.elf.TestElf) ... OK (0.002s)
2017-05-26 16:33:57,649 - oe-selftest - INFO -   test_tests (oelib.license.TestComplexCombinations) ... OK (0.003s)
2017-05-26 16:33:57,652 - oe-selftest - INFO -   test_tests (oelib.license.TestSimpleCombinations) ... OK (0.002s)
2017-05-26 16:33:57,654 - oe-selftest - INFO -   test_invalid_licenses (oelib.license.TestSingleLicense) ... OK (0.002s)
2017-05-26 16:33:57,657 - oe-selftest - INFO -   test_single_licenses (oelib.license.TestSingleLicense) ... OK (0.002s)
2017-05-26 16:33:57,662 - oe-selftest - INFO -   test_loop (oelib.path.TestRealPath) ... OK (0.004s)
2017-05-26 16:33:57,666 - oe-selftest - INFO -   test_norm (oelib.path.TestRealPath) ... OK (0.004s)
2017-05-26 16:33:57,667 - oe-selftest - INFO -   test_phys (oelib.path.TestRealPath) ... OK (0.001s)
2017-05-26 16:33:57,670 - oe-selftest - INFO -   test_bool_equality (oelib.types.TestBooleanType) ... OK (0.002s)
2017-05-26 16:33:57,672 - oe-selftest - INFO -   test_false (oelib.types.TestBooleanType) ... OK (0.002s)
2017-05-26 16:33:57,674 - oe-selftest - INFO -   test_invalid (oelib.types.TestBooleanType) ... OK (0.002s)
2017-05-26 16:33:57,676 - oe-selftest - INFO -   test_true (oelib.types.TestBooleanType) ... OK (0.002s)
2017-05-26 16:33:57,678 - oe-selftest - INFO -   test_list_nosep (oelib.types.TestList) ... OK (0.002s)
2017-05-26 16:33:57,680 - oe-selftest - INFO -   test_list_usersep (oelib.types.TestList) ... OK (0.002s)
2017-05-26 16:33:57,682 - oe-selftest - INFO -   test_filter (oelib.utils.TestPackagesFilterOutSystem) ... OK (0.002s)
2017-05-26 16:33:57,685 - oe-selftest - INFO -   test_num_exception (oelib.utils.TestTrimVersion) ... OK (0.002s)
2017-05-26 16:33:57,686 - oe-selftest - INFO -   test_valid (oelib.utils.TestTrimVersion) ... OK (0.002s)
2017-05-26 16:33:57,688 - oe-selftest - INFO -   test_version_exception (oelib.utils.TestTrimVersion) ... OK (0.002s)
2017-05-26 16:34:30,006 - oe-selftest - INFO -   test_buildhistory_diff (oescripts.BuildhistoryDiffTests) ... OK (32.317s)
2017-05-26 16:34:47,052 - oe-selftest - INFO -   test_dpkg (package.VersionOrdering) ... OK (0.110s)
2017-05-26 16:34:47,162 - oe-selftest - INFO -   test_opkg (package.VersionOrdering) ... OK (0.109s)
2017-05-26 16:34:47,582 - oe-selftest - INFO -   test_rpm (package.VersionOrdering) ... OK (0.419s)
2017-05-26 16:34:47,583 - oe-selftest - INFO - Running bitbake to generate pkgdata
2017-05-26 16:35:45,912 - oe-selftest - INFO -   test_find_path (pkgdata.OePkgdataUtilTests) ... OK (53.144s)
2017-05-26 16:35:49,250 - oe-selftest - INFO -   test_glob (pkgdata.OePkgdataUtilTests) ... OK (3.338s)
2017-05-26 16:35:57,010 - oe-selftest - INFO -   test_list_pkg_files (pkgdata.OePkgdataUtilTests) ... OK (7.759s)
2017-05-26 16:36:06,409 - oe-selftest - INFO -   test_list_pkgs (pkgdata.OePkgdataUtilTests) ... OK (9.398s)
2017-05-26 16:36:12,620 - oe-selftest - INFO -   test_lookup_pkg (pkgdata.OePkgdataUtilTests) ... OK (6.211s)
2017-05-26 16:36:15,761 - oe-selftest - INFO -   test_lookup_recipe (pkgdata.OePkgdataUtilTests) ... OK (3.140s)
2017-05-26 16:36:18,822 - oe-selftest - INFO -   test_read_value (pkgdata.OePkgdataUtilTests) ... OK (3.060s)
2017-05-26 16:36:20,364 - oe-selftest - INFO -   test_specify_pkgdatadir (pkgdata.OePkgdataUtilTests) ... OK (1.542s)
2017-05-26 16:37:54,344 - oe-selftest - INFO -   test_import_export_override_db (prservice.BitbakePrTests) ... OK (92.598s)
2017-05-26 16:38:46,112 - oe-selftest - INFO -   test_import_export_replace_db (prservice.BitbakePrTests) ... OK (51.768s)
2017-05-26 16:40:32,995 - oe-selftest - INFO -   test_pr_service_deb_arch_dep (prservice.BitbakePrTests) ... OK (106.883s)
2017-05-26 16:41:08,206 - oe-selftest - INFO -   test_pr_service_deb_arch_indep (prservice.BitbakePrTests) ... OK (35.210s)
2017-05-26 16:41:49,325 - oe-selftest - INFO -   test_pr_service_ipk_arch_dep (prservice.BitbakePrTests) ... OK (41.118s)
2017-05-26 16:42:14,486 - oe-selftest - INFO -   test_pr_service_ipk_arch_indep (prservice.BitbakePrTests) ... OK (25.161s)
2017-05-26 16:42:43,749 - oe-selftest - INFO -   test_pr_service_rpm_arch_dep (prservice.BitbakePrTests) ... OK (29.262s)
2017-05-26 16:43:08,593 - oe-selftest - INFO -   test_pr_service_rpm_arch_indep (prservice.BitbakePrTests) ... OK (24.843s)
2017-05-26 16:43:10,025 - oe-selftest - INFO -   test_stopping_prservice_message (prservice.BitbakePrTests) ... OK (1.432s)
2017-05-26 16:43:27,101 - oe-selftest - INFO -   test_recipetool_appendsrcfile_basic (recipetool.RecipetoolAppendsrcTests) ... OK (15.751s)
2017-05-26 16:43:43,804 - oe-selftest - INFO -   test_recipetool_appendsrcfile_basic_wildcard (recipetool.RecipetoolAppendsrcTests) ... OK (16.702s)
2017-05-26 16:43:56,627 - oe-selftest - INFO -   test_recipetool_appendsrcfile_existing_in_src_uri (recipetool.RecipetoolAppendsrcTests) ... OK (12.823s)
2017-05-26 16:44:09,299 - oe-selftest - INFO -   test_recipetool_appendsrcfile_existing_in_src_uri_diff_params (recipetool.RecipetoolAppendsrcTests) ... OK (12.671s)
2017-05-26 16:44:31,277 - oe-selftest - INFO -   test_recipetool_appendsrcfile_replace_file_srcdir (recipetool.RecipetoolAppendsrcTests) ... OK (21.978s)
2017-05-26 16:44:44,883 - oe-selftest - INFO -   test_recipetool_appendsrcfile_srcdir_basic (recipetool.RecipetoolAppendsrcTests) ... OK (13.605s)
2017-05-26 16:44:55,019 - oe-selftest - INFO -   test_recipetool_appendsrcfile_subdir_basic (recipetool.RecipetoolAppendsrcTests) ... OK (10.135s)
2017-05-26 16:45:05,094 - oe-selftest - INFO -   test_recipetool_appendsrcfile_subdir_basic_dirdest (recipetool.RecipetoolAppendsrcTests) ... OK (10.075s)
2017-05-26 16:45:22,202 - oe-selftest - INFO -   test_recipetool_appendsrcfiles_basic (recipetool.RecipetoolAppendsrcTests) ... OK (17.107s)
2017-05-26 16:45:39,589 - oe-selftest - INFO -   test_recipetool_appendsrcfiles_basic_subdir (recipetool.RecipetoolAppendsrcTests) ... OK (17.387s)
2017-05-26 16:45:39,591 - oe-selftest - INFO - Running bitbake to generate pkgdata
2017-05-26 16:46:11,957 - oe-selftest - INFO -   test_recipetool_appendfile_add (recipetool.RecipetoolTests) ... OK (19.147s)
2017-05-26 16:46:21,956 - oe-selftest - INFO -   test_recipetool_appendfile_add_bindir (recipetool.RecipetoolTests) ... OK (9.999s)
2017-05-26 16:46:35,743 - oe-selftest - INFO -   test_recipetool_appendfile_add_machine (recipetool.RecipetoolTests) ... OK (13.786s)
2017-05-26 16:47:00,134 - oe-selftest - INFO -   test_recipetool_appendfile_alternatives (recipetool.RecipetoolTests) ... OK (24.390s)
2017-05-26 16:47:11,479 - oe-selftest - INFO -   test_recipetool_appendfile_basic (recipetool.RecipetoolTests) ... OK (11.345s)
2017-05-26 16:47:15,266 - oe-selftest - INFO -   test_recipetool_appendfile_binary (recipetool.RecipetoolTests) ... OK (3.786s)
2017-05-26 16:47:19,558 - oe-selftest - INFO -   test_recipetool_appendfile_extlayer (recipetool.RecipetoolTests) ... OK (4.291s)
2017-05-26 16:47:30,396 - oe-selftest - INFO -   test_recipetool_appendfile_inst_func (recipetool.RecipetoolTests) ... OK (10.838s)
2017-05-26 16:47:41,230 - oe-selftest - INFO -   test_recipetool_appendfile_inst_glob (recipetool.RecipetoolTests) ... OK (10.833s)
2017-05-26 16:47:52,719 - oe-selftest - INFO -   test_recipetool_appendfile_inst_todir_glob (recipetool.RecipetoolTests) ... OK (11.488s)
2017-05-26 16:48:01,752 - oe-selftest - INFO -   test_recipetool_appendfile_invalid (recipetool.RecipetoolTests) ... OK (9.032s)
2017-05-26 16:48:12,204 - oe-selftest - INFO -   test_recipetool_appendfile_orig (recipetool.RecipetoolTests) ... OK (10.451s)
2017-05-26 16:48:23,676 - oe-selftest - INFO -   test_recipetool_appendfile_patch (recipetool.RecipetoolTests) ... OK (11.471s)
2017-05-26 16:48:37,399 - oe-selftest - INFO -   test_recipetool_appendfile_postinstall (recipetool.RecipetoolTests) ... OK (13.723s)
2017-05-26 16:48:48,894 - oe-selftest - INFO -   test_recipetool_appendfile_renamed (recipetool.RecipetoolTests) ... OK (11.494s)
2017-05-26 16:49:00,386 - oe-selftest - INFO -   test_recipetool_appendfile_script (recipetool.RecipetoolTests) ... OK (11.492s)
2017-05-26 16:49:11,651 - oe-selftest - INFO -   test_recipetool_appendfile_src_glob (recipetool.RecipetoolTests) ... OK (11.264s)
2017-05-26 16:49:22,487 - oe-selftest - INFO -   test_recipetool_appendfile_subdir (recipetool.RecipetoolTests) ... OK (10.836s)
2017-05-26 16:49:33,750 - oe-selftest - INFO -   test_recipetool_appendfile_todir (recipetool.RecipetoolTests) ... OK (11.263s)
2017-05-26 16:49:45,599 - oe-selftest - INFO -   test_recipetool_appendfile_wildcard (recipetool.RecipetoolTests) ... OK (11.848s)
2017-05-26 16:50:15,057 - oe-selftest - INFO -   test_recipetool_create (recipetool.RecipetoolTests) ... OK (29.458s)
2017-05-26 16:50:27,357 - oe-selftest - INFO -   test_recipetool_create_cmake (recipetool.RecipetoolTests) ... OK (12.299s)
2017-05-26 16:50:53,594 - oe-selftest - INFO -   test_recipetool_create_git (recipetool.RecipetoolTests) ... OK (26.237s)
2017-05-26 16:51:07,445 - oe-selftest - INFO -   test_recipetool_create_git_http (recipetool.RecipetoolTests) ... OK (13.849s)
2017-05-26 16:51:43,822 - oe-selftest - INFO -   test_recipetool_create_github (recipetool.RecipetoolTests) ... OK (36.377s)
2017-05-26 16:51:58,240 - oe-selftest - INFO -   test_recipetool_create_github_tarball (recipetool.RecipetoolTests) ... OK (14.417s)
2017-05-26 16:52:13,669 - oe-selftest - INFO -   test_recipetool_create_simple (recipetool.RecipetoolTests) ... OK (15.429s)
2017-05-26 16:52:31,879 - oe-selftest - INFO -   test_recipetool_load_plugin (recipetool.RecipetoolTests) ... OK (18.209s)

rootfs file:
Qemu log file: /home/ab/autobuilder/yocto-worker/nightly-oe-selftest/build/build/tmp/work/qemux86_64-poky-linux/core-image-minimal/1.0-r0/testimage/qemu_boot_log.20170526220744
SSH log file: /home/ab/autobuilder/yocto-worker/nightly-oe-selftest/build/build/tmp/work/qemux86_64-poky-linux/core-image-minimal/1.0-r0/testimage/ssh_target_log.20170526220744
Created listening socket for qemu serial console on: 127.0.0.1:45377
Created listening socket for qemu serial console on: 127.0.0.1:51781
launchcmd=runqemu nographic /home/ab/autobuilder/yocto-worker/nightly-oe-selftest/build/build/tmp/deploy/images/qemux86-64 tcpserial=51781 bootparams="console=tty1 console=ttyS0,115200n8 printk.time=1" qemuparams="-serial tcp:127.0.0.1:45377" runqemu started, pid is 29543
waiting at most 60 seconds for qemu pid
qemu started - qemu procces pid is 29565
Starting logging thread
Starting thread event loop
Connection request received
Setting connection established event
Output from runqemu:
runqemu - INFO - DEPLOY_DIR_IMAGE: /home/ab/autobuilder/yocto-worker/nightly-oe-selftest/build/build/tmp/deploy/images/qemux86-64
runqemu - INFO - Running ls -t /home/ab/autobuilder/yocto-worker/nightly-oe-selftest/build/build/tmp/deploy/images/qemux86-64/*.qemuboot.conf...
runqemu - INFO - CONFFILE: /home/ab/autobuilder/yocto-worker/nightly-oe-selftest/build/build/tmp/deploy/images/qemux86-64/core-image-minimal-qemux86-64-20170526215243.qemuboot.conf
runqemu - INFO - Continuing with the following parameters:

stty: standard input: Inappropriate ioctl for device
runqemu - INFO - Running /bin/ip link...
runqemu - INFO - Acquiring lockfile /tmp/qemu-tap-locks/tap0.lock...
runqemu - INFO - Using preconfigured tap device tap0
runqemu - INFO - If this is not intended, touch /tmp/qemu-tap-locks/tap0.skip to make runqemu skip tap0.
runqemu - INFO - Network configuration: 192.168.7.2::192.168.7.1:255.255.255.0
runqemu - INFO - Running ldd tmp/work/x86_64-linux/qemu-helper-native/1.0-r1/recipe-sysroot-native/usr/bin//qemu-system-x86_64...
runqemu - INFO - Running tmp/work/x86_64-linux/qemu-helper-native/1.0-r1/recipe-sysroot-native/usr/bin//qemu-system-x86_64 -device virtio-net-pci,netdev=net0,mac=52:54:00:12:34:02 -netdev tap,id=net0,ifname=tap0,script=no,downscript=no -drive file=tmp/deploy/images/qemux86-64/core-image-minimal-qemux86-64-20170526215243.rootfs.ext4,if=virtio,format=raw -vga vmware -show-cursor -usb -usbdevice tablet -device virtio-rng-pci -nographic -serial tcp:127.0.0.1:45377 -cpu core2duo -m 256 -serial tcp:127.0.0.1:51781 -kernel tmp/deploy/images/qemux86-64/bzImage--4.10.15+git0+4d929fac34_d2c1ed3c0c-r0-qemux86-64-20170526174439.bin -append 'root=/dev/vda rw highres=off console=ttyS0 mem=256M ip=192.168.7.2::192.168.7.1:255.255.255.0 vga=0 uvesafb.mode_option=640x480-32 oprofile.timer=1 uvesafb.task_timeout=-1 console=tty1 console=ttyS0,115200n8 printk.time=1' QEMU 2.8.1.1 monitor - type 'help' for more information
(qemu)
Waiting at most 1000 seconds for login banner
Connection from 127.0.0.1:44344
Reached login banner
Logged as root in serial console
Stopping logging thread
Stop event received
Tearing down logging thread
Sending SIGTERM to runqemu

2017-05-26 17:08:02,719 - oe-selftest - INFO -   test_boot_deploy (runqemu.RunqemuTests) ... OK (929.537s)

rootfs file:
Qemu log file: /home/ab/autobuilder/yocto-worker/nightly-oe-selftest/build/build/tmp/work/qemux86_64-poky-linux/core-image-minimal/1.0-r0/testimage/qemu_boot_log.20170526220803
SSH log file: /home/ab/autobuilder/yocto-worker/nightly-oe-selftest/build/build/tmp/work/qemux86_64-poky-linux/core-image-minimal/1.0-r0/testimage/ssh_target_log.20170526220803
Created listening socket for qemu serial console on: 127.0.0.1:43716
Created listening socket for qemu serial console on: 127.0.0.1:38091
launchcmd=runqemu nographic /home/ab/autobuilder/yocto-worker/nightly-oe-selftest/build/build/tmp/deploy/images/qemux86-64 hddimg tcpserial=38091 bootparams="console=tty1 console=ttyS0,115200n8 printk.time=1" qemuparams="-serial tcp:127.0.0.1:43716" runqemu started, pid is 29585
waiting at most 60 seconds for qemu pid
qemu started - qemu procces pid is 29607
Starting logging thread
Starting thread event loop
Connection request received
Setting connection established event
Output from runqemu:
runqemu - INFO - DEPLOY_DIR_IMAGE: /home/ab/autobuilder/yocto-worker/nightly-oe-selftest/build/build/tmp/deploy/images/qemux86-64
runqemu - INFO - Running ls -t /home/ab/autobuilder/yocto-worker/nightly-oe-selftest/build/build/tmp/deploy/images/qemux86-64/*.qemuboot.conf...
runqemu - INFO - CONFFILE: /home/ab/autobuilder/yocto-worker/nightly-oe-selftest/build/build/tmp/deploy/images/qemux86-64/core-image-minimal-qemux86-64-20170526215243.qemuboot.conf
runqemu - INFO - Continuing with the following parameters:

stty: standard input: Inappropriate ioctl for device
runqemu - INFO - Running /bin/ip link...
runqemu - INFO - Acquiring lockfile /tmp/qemu-tap-locks/tap0.lock...
runqemu - INFO - Using preconfigured tap device tap0
runqemu - INFO - If this is not intended, touch /tmp/qemu-tap-locks/tap0.skip to make runqemu skip tap0.
runqemu - INFO - Network configuration: 192.168.7.2::192.168.7.1:255.255.255.0
runqemu - INFO - Using scsi drive
runqemu - INFO - Running ldd tmp/work/x86_64-linux/qemu-helper-native/1.0-r1/recipe-sysroot-native/usr/bin//qemu-system-x86_64...
runqemu - INFO - Running tmp/work/x86_64-linux/qemu-helper-native/1.0-r1/recipe-sysroot-native/usr/bin//qemu-system-x86_64 -device virtio-net-pci,netdev=net0,mac=52:54:00:12:34:02 -netdev tap,id=net0,ifname=tap0,script=no,downscript=no -drive if=none,id=hd,file=tmp/deploy/images/qemux86-64/core-image-minimal-qemux86-64-20170526215243.hddimg,format=raw -device virtio-scsi-pci,id=scsi -device scsi-hd,drive=hd -no-reboot -vga vmware -show-cursor -usb -usbdevice tablet -device virtio-rng-pci -nographic -serial tcp:127.0.0.1:43716 -cpu core2duo -m 256 -serial tcp:127.0.0.1:38091 QEMU 2.8.1.1 monitor - type 'help' for more information
(qemu)
Waiting at most 1000 seconds for login banner
Connection from 127.0.0.1:52208
Reached login banner
Logged as root in serial console
Stopping logging thread
Stop event received
Tearing down logging thread
Sending SIGTERM to runqemu

2017-05-26 17:08:26,428 - oe-selftest - INFO -   test_boot_deploy_hddimg (runqemu.RunqemuTests) ... OK (23.709s)

rootfs file:
Qemu log file: /home/ab/autobuilder/yocto-worker/nightly-oe-selftest/build/build/tmp/work/qemux86_64-poky-linux/core-image-minimal/1.0-r0/testimage/qemu_boot_log.20170526220826 SSH log file: /home/ab/autobuilder/yocto-worker/nightly-oe-selftest/build/build/tmp/work/qemux86_64-poky-linux/core-image-minimal/1.0-r0/testimage/ssh_target_log.20170526220826 Created listening socket for qemu serial console on: 127.0.0.1:53919
Created listening socket for qemu serial console on: 127.0.0.1:52102
launchcmd=runqemu nographic qemux86-64 tcpserial=52102 bootparams="console=tty1 console=ttyS0,115200n8 printk.time=1" qemuparams="-serial tcp:127.0.0.1:53919" runqemu started, pid is 29627
waiting at most 60 seconds for qemu pid
qemu started - qemu procces pid is 29664
Starting logging thread
Starting thread event loop
Connection request received
Setting connection established event
Output from runqemu:
runqemu - INFO - Assuming MACHINE = qemux86-64
runqemu - INFO - Running MACHINE=qemux86-64 bitbake -e...
runqemu - INFO - MACHINE: qemux86-64
runqemu - INFO - DEPLOY_DIR_IMAGE: /home/ab/autobuilder/yocto-worker/nightly-oe-selftest/build/build/tmp/deploy/images/qemux86-64
runqemu - INFO - Running ls -t /home/ab/autobuilder/yocto-worker/nightly-oe-selftest/build/build/tmp/deploy/images/qemux86-64/*.qemuboot.conf... runqemu - INFO - CONFFILE: /home/ab/autobuilder/yocto-worker/nightly-oe-selftest/build/build/tmp/deploy/images/qemux86-64/core-image-minimal-qemux86-64-20170526215243.qemuboot.conf runqemu - INFO - Continuing with the following parameters:

stty: standard input: Inappropriate ioctl for device
runqemu - INFO - Running /bin/ip link...
runqemu - INFO - Acquiring lockfile /tmp/qemu-tap-locks/tap0.lock...
runqemu - INFO - Using preconfigured tap device tap0
runqemu - INFO - If this is not intended, touch /tmp/qemu-tap-locks/tap0.skip to make runqemu skip tap0.
runqemu - INFO - Network configuration: 192.168.7.2::192.168.7.1:255.255.255.0
runqemu - INFO - Running ldd tmp/work/x86_64-linux/qemu-helper-native/1.0-r1/recipe-sysroot-native/usr/bin//qemu-system-x86_64...
runqemu - INFO - Running tmp/work/x86_64-linux/qemu-helper-native/1.0-r1/recipe-sysroot-native/usr/bin//qemu-system-x86_64 -device virtio-net-pci,netdev=net0,mac=52:54:00:12:34:02 -netdev tap,id=net0,ifname=tap0,script=no,downscript=no -drive file=tmp/deploy/images/qemux86-64/core-image-minimal-qemux86-64-20170526215243.rootfs.ext4,if=virtio,format=raw -vga vmware -show-cursor -usb -usbdevice tablet -device virtio-rng-pci -nographic -serial tcp:127.0.0.1:53919 -cpu core2duo -m 256 -serial tcp:127.0.0.1:52102 -kernel tmp/deploy/images/qemux86-64/bzImage--4.10.15+git0+4d929fac34_d2c1ed3c0c-r0-qemux86-64-20170526174439.bin -append 'root=/dev/vda rw highres=off console=ttyS0 mem=256M ip=192.168.7.2::192.168.7.1:255.255.255.0 vga=0 uvesafb.mode_option=640x480-32 oprofile.timer=1 uvesafb.task_timeout=-1 console=tty1 console=ttyS0,115200n8 printk.time=1' QEMU 2.8.1.1 monitor - type 'help' for more information
(qemu)
Waiting at most 1000 seconds for login banner
Connection from 127.0.0.1:42790
Reached login banner
Logged as root in serial console
Stopping logging thread
Stop event received
Tearing down logging thread
Sending SIGTERM to runqemu

2017-05-26 17:08:45,306 - oe-selftest - INFO -   test_boot_machine (runqemu.RunqemuTests) ... OK (18.877s)

rootfs file:
Qemu log file: /home/ab/autobuilder/yocto-worker/nightly-oe-selftest/build/build/tmp/work/qemux86_64-poky-linux/core-image-minimal/1.0-r0/testimage/qemu_boot_log.20170526220845 SSH log file: /home/ab/autobuilder/yocto-worker/nightly-oe-selftest/build/build/tmp/work/qemux86_64-poky-linux/core-image-minimal/1.0-r0/testimage/ssh_target_log.20170526220845 Created listening socket for qemu serial console on: 127.0.0.1:41561
Created listening socket for qemu serial console on: 127.0.0.1:51638
launchcmd=runqemu nographic qemux86-64 ext4 tcpserial=51638 bootparams="console=tty1 console=ttyS0,115200n8 printk.time=1" qemuparams="-serial tcp:127.0.0.1:41561" runqemu started, pid is 29685
waiting at most 60 seconds for qemu pid
qemu started - qemu procces pid is 29722
Starting logging thread
Starting thread event loop
Connection request received
Setting connection established event
Output from runqemu:
runqemu - INFO - Assuming MACHINE = qemux86-64
runqemu - INFO - Running MACHINE=qemux86-64 bitbake -e...
runqemu - INFO - MACHINE: qemux86-64
runqemu - INFO - DEPLOY_DIR_IMAGE: /home/ab/autobuilder/yocto-worker/nightly-oe-selftest/build/build/tmp/deploy/images/qemux86-64
runqemu - INFO - Running ls -t /home/ab/autobuilder/yocto-worker/nightly-oe-selftest/build/build/tmp/deploy/images/qemux86-64/*.qemuboot.conf... runqemu - INFO - CONFFILE: /home/ab/autobuilder/yocto-worker/nightly-oe-selftest/build/build/tmp/deploy/images/qemux86-64/core-image-minimal-qemux86-64-20170526215243.qemuboot.conf runqemu - INFO - Continuing with the following parameters:

stty: standard input: Inappropriate ioctl for device
runqemu - INFO - Running /bin/ip link...
runqemu - INFO - Acquiring lockfile /tmp/qemu-tap-locks/tap0.lock...
runqemu - INFO - Using preconfigured tap device tap0
runqemu - INFO - If this is not intended, touch /tmp/qemu-tap-locks/tap0.skip to make runqemu skip tap0.
runqemu - INFO - Network configuration: 192.168.7.2::192.168.7.1:255.255.255.0
runqemu - INFO - Running ldd tmp/work/x86_64-linux/qemu-helper-native/1.0-r1/recipe-sysroot-native/usr/bin//qemu-system-x86_64...
runqemu - INFO - Running tmp/work/x86_64-linux/qemu-helper-native/1.0-r1/recipe-sysroot-native/usr/bin//qemu-system-x86_64 -device virtio-net-pci,netdev=net0,mac=52:54:00:12:34:02 -netdev tap,id=net0,ifname=tap0,script=no,downscript=no -drive file=tmp/deploy/images/qemux86-64/core-image-minimal-qemux86-64-20170526215243.rootfs.ext4,if=virtio,format=raw -vga vmware -show-cursor -usb -usbdevice tablet -device virtio-rng-pci -nographic -serial tcp:127.0.0.1:41561 -cpu core2duo -m 256 -serial tcp:127.0.0.1:51638 -kernel tmp/deploy/images/qemux86-64/bzImage--4.10.15+git0+4d929fac34_d2c1ed3c0c-r0-qemux86-64-20170526174439.bin -append 'root=/dev/vda rw highres=off console=ttyS0 mem=256M ip=192.168.7.2::192.168.7.1:255.255.255.0 vga=0 uvesafb.mode_option=640x480-32 oprofile.timer=1 uvesafb.task_timeout=-1 console=tty1 console=ttyS0,115200n8 printk.time=1' QEMU 2.8.1.1 monitor - type 'help' for more information
(qemu)
Waiting at most 1000 seconds for login banner
Connection from 127.0.0.1:40568
Reached login banner
Logged as root in serial console
Stopping logging thread
Stop event received
Tearing down logging thread
Sending SIGTERM to runqemu

2017-05-26 17:09:03,585 - oe-selftest - INFO -   test_boot_machine_ext4 (runqemu.RunqemuTests) ... OK (18.278s)

rootfs file:
Qemu log file: /home/ab/autobuilder/yocto-worker/nightly-oe-selftest/build/build/tmp/work/qemux86_64-poky-linux/core-image-minimal/1.0-r0/testimage/qemu_boot_log.20170526220903 SSH log file: /home/ab/autobuilder/yocto-worker/nightly-oe-selftest/build/build/tmp/work/qemux86_64-poky-linux/core-image-minimal/1.0-r0/testimage/ssh_target_log.20170526220903 Created listening socket for qemu serial console on: 127.0.0.1:45543
Created listening socket for qemu serial console on: 127.0.0.1:38058
launchcmd=runqemu nographic qemux86-64 iso tcpserial=38058 bootparams="console=tty1 console=ttyS0,115200n8 printk.time=1" qemuparams="-serial tcp:127.0.0.1:45543" runqemu started, pid is 29742
waiting at most 60 seconds for qemu pid
qemu started - qemu procces pid is 29779
Starting logging thread
Starting thread event loop
Connection request received
Setting connection established event
Output from runqemu:
runqemu - INFO - Assuming MACHINE = qemux86-64
runqemu - INFO - Running MACHINE=qemux86-64 bitbake -e...
runqemu - INFO - MACHINE: qemux86-64
runqemu - INFO - DEPLOY_DIR_IMAGE: /home/ab/autobuilder/yocto-worker/nightly-oe-selftest/build/build/tmp/deploy/images/qemux86-64
runqemu - INFO - Running ls -t /home/ab/autobuilder/yocto-worker/nightly-oe-selftest/build/build/tmp/deploy/images/qemux86-64/*.qemuboot.conf... runqemu - INFO - CONFFILE: /home/ab/autobuilder/yocto-worker/nightly-oe-selftest/build/build/tmp/deploy/images/qemux86-64/core-image-minimal-qemux86-64-20170526215243.qemuboot.conf runqemu - INFO - Continuing with the following parameters:

stty: standard input: Inappropriate ioctl for device
runqemu - INFO - Running /bin/ip link...
runqemu - INFO - Acquiring lockfile /tmp/qemu-tap-locks/tap0.lock...
runqemu - INFO - Using preconfigured tap device tap0
runqemu - INFO - If this is not intended, touch /tmp/qemu-tap-locks/tap0.skip to make runqemu skip tap0.
runqemu - INFO - Network configuration: 192.168.7.2::192.168.7.1:255.255.255.0
runqemu - INFO - Running ldd tmp/work/x86_64-linux/qemu-helper-native/1.0-r1/recipe-sysroot-native/usr/bin//qemu-system-x86_64...
runqemu - INFO - Running tmp/work/x86_64-linux/qemu-helper-native/1.0-r1/recipe-sysroot-native/usr/bin//qemu-system-x86_64 -device virtio-net-pci,netdev=net0,mac=52:54:00:12:34:02 -netdev tap,id=net0,ifname=tap0,script=no,downscript=no -cdrom tmp/deploy/images/qemux86-64/core-image-minimal-qemux86-64-20170526215243.iso -no-reboot -vga vmware -show-cursor -usb -usbdevice tablet -device virtio-rng-pci -nographic -serial tcp:127.0.0.1:45543 -cpu core2duo -m 256 -serial tcp:127.0.0.1:38058 QEMU 2.8.1.1 monitor - type 'help' for more information
(qemu)
Waiting at most 1000 seconds for login banner
Connection from 127.0.0.1:41596
Reached login banner
Logged as root in serial console
Stopping logging thread
Stop event received
Tearing down logging thread
Sending SIGTERM to runqemu

2017-05-26 17:09:26,581 - oe-selftest - INFO -   test_boot_machine_iso (runqemu.RunqemuTests) ... OK (22.995s)

rootfs file:
Qemu log file: /home/ab/autobuilder/yocto-worker/nightly-oe-selftest/build/build/tmp/work/qemux86_64-poky-linux/core-image-minimal/1.0-r0/testimage/qemu_boot_log.20170526220926 SSH log file: /home/ab/autobuilder/yocto-worker/nightly-oe-selftest/build/build/tmp/work/qemux86_64-poky-linux/core-image-minimal/1.0-r0/testimage/ssh_target_log.20170526220926 Created listening socket for qemu serial console on: 127.0.0.1:47827
Created listening socket for qemu serial console on: 127.0.0.1:53394
launchcmd=runqemu nographic slirp qemux86-64 tcpserial=53394 bootparams="console=tty1 console=ttyS0,115200n8 printk.time=1" qemuparams="-serial tcp:127.0.0.1:47827" runqemu started, pid is 29799
waiting at most 60 seconds for qemu pid
qemu started - qemu procces pid is 29834
Starting logging thread
Starting thread event loop
Connection request received
Setting connection established event
Output from runqemu:
runqemu - INFO - Assuming MACHINE = qemux86-64
runqemu - INFO - Running MACHINE=qemux86-64 bitbake -e...
runqemu - INFO - MACHINE: qemux86-64
runqemu - INFO - DEPLOY_DIR_IMAGE: /home/ab/autobuilder/yocto-worker/nightly-oe-selftest/build/build/tmp/deploy/images/qemux86-64
runqemu - INFO - Running ls -t /home/ab/autobuilder/yocto-worker/nightly-oe-selftest/build/build/tmp/deploy/images/qemux86-64/*.qemuboot.conf... runqemu - INFO - CONFFILE: /home/ab/autobuilder/yocto-worker/nightly-oe-selftest/build/build/tmp/deploy/images/qemux86-64/core-image-minimal-qemux86-64-20170526215243.qemuboot.conf runqemu - INFO - Continuing with the following parameters:

stty: standard input: Inappropriate ioctl for device
runqemu - INFO - Port forward: hostfwd=tcp::2222-:22 hostfwd=tcp::2323-:23
runqemu - INFO - Running ldd tmp/work/x86_64-linux/qemu-helper-native/1.0-r1/recipe-sysroot-native/usr/bin//qemu-system-x86_64...
runqemu - INFO - Running tmp/work/x86_64-linux/qemu-helper-native/1.0-r1/recipe-sysroot-native/usr/bin//qemu-system-x86_64 -device virtio-net-pci,netdev=net0,mac=52:54:00:12:35:02 -netdev user,id=net0,hostfwd=tcp::2222-:22,hostfwd=tcp::2323-:23,tftp=tmp/deploy/images/qemux86-64 -drive file=tmp/deploy/images/qemux86-64/core-image-minimal-qemux86-64-20170526215243.rootfs.ext4,if=virtio,format=raw -vga vmware -show-cursor -usb -usbdevice tablet -device virtio-rng-pci -nographic -serial tcp:127.0.0.1:47827 -cpu core2duo -m 256 -serial tcp:127.0.0.1:53394 -kernel tmp/deploy/images/qemux86-64/bzImage--4.10.15+git0+4d929fac34_d2c1ed3c0c-r0-qemux86-64-20170526174439.bin -append 'root=/dev/vda rw highres=off console=ttyS0 mem=256M ip=dhcp vga=0 uvesafb.mode_option=640x480-32 oprofile.timer=1 uvesafb.task_timeout=-1 console=tty1 console=ttyS0,115200n8 printk.time=1' QEMU 2.8.1.1 monitor - type 'help' for more information
(qemu)
Waiting at most 1000 seconds for login banner
Connection from 127.0.0.1:52471
Reached login banner
Logged as root in serial console
Stopping logging thread
Stop event received
Tearing down logging thread
Sending SIGTERM to runqemu

2017-05-26 17:09:46,047 - oe-selftest - INFO -   test_boot_machine_slirp (runqemu.RunqemuTests) ... OK (19.466s)

rootfs file:
Qemu log file: /home/ab/autobuilder/yocto-worker/nightly-oe-selftest/build/build/tmp/work/qemux86_64-poky-linux/core-image-minimal/1.0-r0/testimage/qemu_boot_log.20170526220946 SSH log file: /home/ab/autobuilder/yocto-worker/nightly-oe-selftest/build/build/tmp/work/qemux86_64-poky-linux/core-image-minimal/1.0-r0/testimage/ssh_target_log.20170526220946 Created listening socket for qemu serial console on: 127.0.0.1:40945
Created listening socket for qemu serial console on: 127.0.0.1:40741
launchcmd=runqemu nographic slirp qcow2 qemux86-64 tcpserial=40741 bootparams="console=tty1 console=ttyS0,115200n8 printk.time=1" qemuparams="-serial tcp:127.0.0.1:40945" runqemu started, pid is 29857
waiting at most 60 seconds for qemu pid
qemu started - qemu procces pid is 29892
Starting logging thread
Starting thread event loop
Connection request received
Setting connection established event
Output from runqemu:
runqemu - INFO - Assuming MACHINE = qemux86-64
runqemu - INFO - Running MACHINE=qemux86-64 bitbake -e...
runqemu - INFO - MACHINE: qemux86-64
runqemu - INFO - DEPLOY_DIR_IMAGE: /home/ab/autobuilder/yocto-worker/nightly-oe-selftest/build/build/tmp/deploy/images/qemux86-64
runqemu - INFO - Running ls -t /home/ab/autobuilder/yocto-worker/nightly-oe-selftest/build/build/tmp/deploy/images/qemux86-64/*.qemuboot.conf... runqemu - INFO - CONFFILE: /home/ab/autobuilder/yocto-worker/nightly-oe-selftest/build/build/tmp/deploy/images/qemux86-64/core-image-minimal-qemux86-64-20170526215243.qemuboot.conf runqemu - INFO - Continuing with the following parameters:

stty: standard input: Inappropriate ioctl for device
runqemu - INFO - Port forward: hostfwd=tcp::2222-:22 hostfwd=tcp::2323-:23
runqemu - INFO - Using scsi drive
runqemu - INFO - Running ldd tmp/work/x86_64-linux/qemu-helper-native/1.0-r1/recipe-sysroot-native/usr/bin//qemu-system-x86_64...
runqemu - INFO - Running tmp/work/x86_64-linux/qemu-helper-native/1.0-r1/recipe-sysroot-native/usr/bin//qemu-system-x86_64 -device virtio-net-pci,netdev=net0,mac=52:54:00:12:35:02 -netdev user,id=net0,hostfwd=tcp::2222-:22,hostfwd=tcp::2323-:23,tftp=tmp/deploy/images/qemux86-64 -drive if=none,id=hd,file=tmp/deploy/images/qemux86-64/core-image-minimal-qemux86-64-20170526215243.qcow2,format=qcow2 -device virtio-scsi-pci,id=scsi -device scsi-hd,drive=hd -no-reboot -vga vmware -show-cursor -usb -usbdevice tablet -device virtio-rng-pci -nographic -serial tcp:127.0.0.1:40945 -cpu core2duo -m 256 -serial tcp:127.0.0.1:40741 QEMU 2.8.1.1 monitor - type 'help' for more information
(qemu)
Waiting at most 1000 seconds for login banner
Connection from 127.0.0.1:40077
Reached login banner
Logged as root in serial console
Stopping logging thread
Stop event received
Tearing down logging thread
Sending SIGTERM to runqemu

2017-05-26 17:10:07,241 - oe-selftest - INFO -   test_boot_machine_slirp_qcow2 (runqemu.RunqemuTests) ... OK (21.194s)

rootfs file:
Qemu log file: /home/ab/autobuilder/yocto-worker/nightly-oe-selftest/build/build/tmp/work/qemux86_64-poky-linux/core-image-minimal/1.0-r0/testimage/qemu_boot_log.20170526221007
SSH log file: /home/ab/autobuilder/yocto-worker/nightly-oe-selftest/build/build/tmp/work/qemux86_64-poky-linux/core-image-minimal/1.0-r0/testimage/ssh_target_log.20170526221007
Created listening socket for qemu serial console on: 127.0.0.1:53433
Created listening socket for qemu serial console on: 127.0.0.1:49815
launchcmd=runqemu nographic /home/ab/autobuilder/yocto-worker/nightly-oe-selftest/build/build/tmp/deploy/images/qemux86-64/core-image-minimal-qemux86-64.qemuboot.conf tcpserial=49815 bootparams="console=tty1 console=ttyS0,115200n8 printk.time=1" qemuparams="-serial tcp:127.0.0.1:53433" runqemu started, pid is 29912
waiting at most 60 seconds for qemu pid
qemu started - qemu procces pid is 29947
Starting logging thread
Starting thread event loop
Connection request received
Setting connection established event
Output from runqemu:
runqemu - INFO - Running bitbake -e...
runqemu - INFO - CONFFILE: /home/ab/autobuilder/yocto-worker/nightly-oe-selftest/build/build/tmp/deploy/images/qemux86-64/core-image-minimal-qemux86-64.qemuboot.conf
runqemu - INFO - Continuing with the following parameters:

stty: standard input: Inappropriate ioctl for device
runqemu - INFO - Running /bin/ip link...
runqemu - INFO - Acquiring lockfile /tmp/qemu-tap-locks/tap0.lock...
runqemu - INFO - Using preconfigured tap device tap0
runqemu - INFO - If this is not intended, touch /tmp/qemu-tap-locks/tap0.skip to make runqemu skip tap0.
runqemu - INFO - Network configuration: 192.168.7.2::192.168.7.1:255.255.255.0
runqemu - INFO - Running ldd tmp/work/x86_64-linux/qemu-helper-native/1.0-r1/recipe-sysroot-native/usr/bin//qemu-system-x86_64...
runqemu - INFO - Running tmp/work/x86_64-linux/qemu-helper-native/1.0-r1/recipe-sysroot-native/usr/bin//qemu-system-x86_64 -device virtio-net-pci,netdev=net0,mac=52:54:00:12:34:02 -netdev tap,id=net0,ifname=tap0,script=no,downscript=no -drive file=tmp/deploy/images/qemux86-64/core-image-minimal-qemux86-64-20170526215243.rootfs.ext4,if=virtio,format=raw -vga vmware -show-cursor -usb -usbdevice tablet -device virtio-rng-pci -nographic -serial tcp:127.0.0.1:53433 -cpu core2duo -m 256 -serial tcp:127.0.0.1:49815 -kernel tmp/deploy/images/qemux86-64/bzImage--4.10.15+git0+4d929fac34_d2c1ed3c0c-r0-qemux86-64-20170526174439.bin -append 'root=/dev/vda rw highres=off console=ttyS0 mem=256M ip=192.168.7.2::192.168.7.1:255.255.255.0 vga=0 uvesafb.mode_option=640x480-32 oprofile.timer=1 uvesafb.task_timeout=-1 console=tty1 console=ttyS0,115200n8 printk.time=1' QEMU 2.8.1.1 monitor - type 'help' for more information
(qemu)
Waiting at most 1000 seconds for login banner
Connection from 127.0.0.1:33673
Reached login banner
Logged as root in serial console
Stopping logging thread
Stop event received
Tearing down logging thread
Sending SIGTERM to runqemu

2017-05-26 17:10:26,298 - oe-selftest - INFO -   test_boot_qemu_boot (runqemu.RunqemuTests) ... OK (19.056s)

rootfs file:
Qemu log file: /home/ab/autobuilder/yocto-worker/nightly-oe-selftest/build/build/tmp/work/qemux86_64-poky-linux/core-image-minimal/1.0-r0/testimage/qemu_boot_log.20170526221026 SSH log file: /home/ab/autobuilder/yocto-worker/nightly-oe-selftest/build/build/tmp/work/qemux86_64-poky-linux/core-image-minimal/1.0-r0/testimage/ssh_target_log.20170526221026 Created listening socket for qemu serial console on: 127.0.0.1:57286
Created listening socket for qemu serial console on: 127.0.0.1:55675
launchcmd=runqemu nographic core-image-minimal tcpserial=55675 bootparams="console=tty1 console=ttyS0,115200n8 printk.time=1" qemuparams="-serial tcp:127.0.0.1:57286" runqemu started, pid is 29967
waiting at most 60 seconds for qemu pid
qemu started - qemu procces pid is 30002
Starting logging thread
Starting thread event loop
Connection request received
Setting connection established event
Output from runqemu:
runqemu - INFO - Running bitbake -e...
runqemu - INFO - CONFFILE: /home/ab/autobuilder/yocto-worker/nightly-oe-selftest/build/build/tmp/deploy/images/qemux86-64/core-image-minimal-qemux86-64.qemuboot.conf runqemu - INFO - Continuing with the following parameters:

stty: standard input: Inappropriate ioctl for device
runqemu - INFO - Running /bin/ip link...
runqemu - INFO - Acquiring lockfile /tmp/qemu-tap-locks/tap0.lock...
runqemu - INFO - Using preconfigured tap device tap0
runqemu - INFO - If this is not intended, touch /tmp/qemu-tap-locks/tap0.skip to make runqemu skip tap0.
runqemu - INFO - Network configuration: 192.168.7.2::192.168.7.1:255.255.255.0
runqemu - INFO - Running ldd tmp/work/x86_64-linux/qemu-helper-native/1.0-r1/recipe-sysroot-native/usr/bin//qemu-system-x86_64...
runqemu - INFO - Running tmp/work/x86_64-linux/qemu-helper-native/1.0-r1/recipe-sysroot-native/usr/bin//qemu-system-x86_64 -device virtio-net-pci,netdev=net0,mac=52:54:00:12:34:02 -netdev tap,id=net0,ifname=tap0,script=no,downscript=no -drive file=tmp/deploy/images/qemux86-64/core-image-minimal-qemux86-64.ext4,if=virtio,format=raw -vga vmware -show-cursor -usb -usbdevice tablet -device virtio-rng-pci -nographic -serial tcp:127.0.0.1:57286 -cpu core2duo -m 256 -serial tcp:127.0.0.1:55675 -kernel tmp/deploy/images/qemux86-64/bzImage--4.10.15+git0+4d929fac34_d2c1ed3c0c-r0-qemux86-64-20170526174439.bin -append 'root=/dev/vda rw highres=off console=ttyS0 mem=256M ip=192.168.7.2::192.168.7.1:255.255.255.0 vga=0 uvesafb.mode_option=640x480-32 oprofile.timer=1 uvesafb.task_timeout=-1 console=tty1 console=ttyS0,115200n8 printk.time=1' QEMU 2.8.1.1 monitor - type 'help' for more information
(qemu)
Waiting at most 1000 seconds for login banner
Connection from 127.0.0.1:59872
Reached login banner
Logged as root in serial console
Stopping logging thread
Stop event received
Tearing down logging thread
Sending SIGTERM to runqemu

2017-05-26 17:10:44,998 - oe-selftest - INFO -   test_boot_recipe_image (runqemu.RunqemuTests) ... OK (18.699s)

rootfs file:
Qemu log file: /home/ab/autobuilder/yocto-worker/nightly-oe-selftest/build/build/tmp/work/qemux86_64-poky-linux/core-image-minimal/1.0-r0/testimage/qemu_boot_log.20170526221045 SSH log file: /home/ab/autobuilder/yocto-worker/nightly-oe-selftest/build/build/tmp/work/qemux86_64-poky-linux/core-image-minimal/1.0-r0/testimage/ssh_target_log.20170526221045 Created listening socket for qemu serial console on: 127.0.0.1:59168
Created listening socket for qemu serial console on: 127.0.0.1:41893
launchcmd=runqemu nographic core-image-minimal vdi tcpserial=41893 bootparams="console=tty1 console=ttyS0,115200n8 printk.time=1" qemuparams="-serial tcp:127.0.0.1:59168" runqemu started, pid is 30023
waiting at most 60 seconds for qemu pid
qemu started - qemu procces pid is 30058
Starting logging thread
Starting thread event loop
Connection request received
Setting connection established event
Output from runqemu:
runqemu - INFO - Running bitbake -e...
runqemu - INFO - CONFFILE: /home/ab/autobuilder/yocto-worker/nightly-oe-selftest/build/build/tmp/deploy/images/qemux86-64/core-image-minimal-qemux86-64.qemuboot.conf runqemu - INFO - Continuing with the following parameters:

stty: standard input: Inappropriate ioctl for device
runqemu - INFO - Running /bin/ip link...
runqemu - INFO - Acquiring lockfile /tmp/qemu-tap-locks/tap0.lock...
runqemu - INFO - Using preconfigured tap device tap0
runqemu - INFO - If this is not intended, touch /tmp/qemu-tap-locks/tap0.skip to make runqemu skip tap0.
runqemu - INFO - Network configuration: 192.168.7.2::192.168.7.1:255.255.255.0
runqemu - INFO - Using scsi drive
runqemu - INFO - Running ldd tmp/work/x86_64-linux/qemu-helper-native/1.0-r1/recipe-sysroot-native/usr/bin//qemu-system-x86_64...
runqemu - INFO - Running tmp/work/x86_64-linux/qemu-helper-native/1.0-r1/recipe-sysroot-native/usr/bin//qemu-system-x86_64 -device virtio-net-pci,netdev=net0,mac=52:54:00:12:34:02 -netdev tap,id=net0,ifname=tap0,script=no,downscript=no -drive if=none,id=hd,file=tmp/deploy/images/qemux86-64/core-image-minimal-qemux86-64.vdi,format=vdi -device virtio-scsi-pci,id=scsi -device scsi-hd,drive=hd -no-reboot -vga vmware -show-cursor -usb -usbdevice tablet -device virtio-rng-pci -nographic -serial tcp:127.0.0.1:59168 -cpu core2duo -m 256 -serial tcp:127.0.0.1:41893 QEMU 2.8.1.1 monitor - type 'help' for more information
(qemu)
Waiting at most 1000 seconds for login banner
Connection from 127.0.0.1:33649
Reached login banner
Logged as root in serial console
Stopping logging thread
Stop event received
Tearing down logging thread
Sending SIGTERM to runqemu

2017-05-26 17:11:05,027 - oe-selftest - INFO -   test_boot_recipe_image_vdi (runqemu.RunqemuTests) ... OK (20.029s)

rootfs file:
Qemu log file: /home/ab/autobuilder/yocto-worker/nightly-oe-selftest/build/build/tmp/work/qemux86_64-poky-linux/core-image-minimal/1.0-r0/testimage/qemu_boot_log.20170526221105 SSH log file: /home/ab/autobuilder/yocto-worker/nightly-oe-selftest/build/build/tmp/work/qemux86_64-poky-linux/core-image-minimal/1.0-r0/testimage/ssh_target_log.20170526221105 Created listening socket for qemu serial console on: 127.0.0.1:41047
Created listening socket for qemu serial console on: 127.0.0.1:44611
launchcmd=runqemu nographic core-image-minimal vmdk tcpserial=44611 bootparams="console=tty1 console=ttyS0,115200n8 printk.time=1" qemuparams="-serial tcp:127.0.0.1:41047" runqemu started, pid is 30079
waiting at most 60 seconds for qemu pid
qemu started - qemu procces pid is 30114
Starting logging thread
Starting thread event loop
Connection request received
Setting connection established event
Output from runqemu:
runqemu - INFO - Running bitbake -e...
runqemu - INFO - CONFFILE: /home/ab/autobuilder/yocto-worker/nightly-oe-selftest/build/build/tmp/deploy/images/qemux86-64/core-image-minimal-qemux86-64.qemuboot.conf runqemu - INFO - Continuing with the following parameters:

stty: standard input: Inappropriate ioctl for device
runqemu - INFO - Running /bin/ip link...
runqemu - INFO - Acquiring lockfile /tmp/qemu-tap-locks/tap0.lock...
runqemu - INFO - Using preconfigured tap device tap0
runqemu - INFO - If this is not intended, touch /tmp/qemu-tap-locks/tap0.skip to make runqemu skip tap0.
runqemu - INFO - Network configuration: 192.168.7.2::192.168.7.1:255.255.255.0
runqemu - INFO - Using scsi drive
runqemu - INFO - Running ldd tmp/work/x86_64-linux/qemu-helper-native/1.0-r1/recipe-sysroot-native/usr/bin//qemu-system-x86_64...
runqemu - INFO - Running tmp/work/x86_64-linux/qemu-helper-native/1.0-r1/recipe-sysroot-native/usr/bin//qemu-system-x86_64 -device virtio-net-pci,netdev=net0,mac=52:54:00:12:34:02 -netdev tap,id=net0,ifname=tap0,script=no,downscript=no -drive if=none,id=hd,file=tmp/deploy/images/qemux86-64/core-image-minimal-qemux86-64.vmdk,format=vmdk -device virtio-scsi-pci,id=scsi -device scsi-hd,drive=hd -no-reboot -vga vmware -show-cursor -usb -usbdevice tablet -device virtio-rng-pci -nographic -serial tcp:127.0.0.1:41047 -cpu core2duo -m 256 -serial tcp:127.0.0.1:44611 QEMU 2.8.1.1 monitor - type 'help' for more information
(qemu)
Waiting at most 1000 seconds for login banner
Connection from 127.0.0.1:45001
Reached login banner
Logged as root in serial console
Stopping logging thread
Stop event received
Tearing down logging thread
Sending SIGTERM to runqemu

2017-05-26 17:11:25,553 - oe-selftest - INFO -   test_boot_recipe_image_vmdk (runqemu.RunqemuTests) ... OK (20.525s)

rootfs file:
Qemu log file: /home/ab/autobuilder/yocto-worker/nightly-oe-selftest/build/build/tmp/work/qemux86_64-poky-linux/core-image-minimal/1.0-r0/testimage/qemu_boot_log.20170526221125
SSH log file: /home/ab/autobuilder/yocto-worker/nightly-oe-selftest/build/build/tmp/work/qemux86_64-poky-linux/core-image-minimal/1.0-r0/testimage/ssh_target_log.20170526221125
Created listening socket for qemu serial console on: 127.0.0.1:45809
Created listening socket for qemu serial console on: 127.0.0.1:32962
launchcmd=runqemu nographic /home/ab/autobuilder/yocto-worker/nightly-oe-selftest/build/build/tmp/deploy/images/qemux86-64/core-image-minimal-qemux86-64.ext4 tcpserial=32962 bootparams="console=tty1 console=ttyS0,115200n8 printk.time=1" qemuparams="-serial tcp:127.0.0.1:45809" runqemu started, pid is 30134
waiting at most 60 seconds for qemu pid
qemu started - qemu procces pid is 30169
Starting logging thread
Starting thread event loop
Connection request received
Setting connection established event
Output from runqemu:
runqemu - INFO - Running bitbake -e...
runqemu - INFO - CONFFILE: /home/ab/autobuilder/yocto-worker/nightly-oe-selftest/build/build/tmp/deploy/images/qemux86-64/core-image-minimal-qemux86-64.qemuboot.conf
runqemu - INFO - Continuing with the following parameters:

stty: standard input: Inappropriate ioctl for device
runqemu - INFO - Running /bin/ip link...
runqemu - INFO - Acquiring lockfile /tmp/qemu-tap-locks/tap0.lock...
runqemu - INFO - Using preconfigured tap device tap0
runqemu - INFO - If this is not intended, touch /tmp/qemu-tap-locks/tap0.skip to make runqemu skip tap0.
runqemu - INFO - Network configuration: 192.168.7.2::192.168.7.1:255.255.255.0
runqemu - INFO - Running ldd tmp/work/x86_64-linux/qemu-helper-native/1.0-r1/recipe-sysroot-native/usr/bin//qemu-system-x86_64...
runqemu - INFO - Running tmp/work/x86_64-linux/qemu-helper-native/1.0-r1/recipe-sysroot-native/usr/bin//qemu-system-x86_64 -device virtio-net-pci,netdev=net0,mac=52:54:00:12:34:02 -netdev tap,id=net0,ifname=tap0,script=no,downscript=no -drive file=/home/ab/autobuilder/yocto-worker/nightly-oe-selftest/build/build/tmp/deploy/images/qemux86-64/core-image-minimal-qemux86-64.ext4,if=virtio,format=raw -vga vmware -show-cursor -usb -usbdevice tablet -device virtio-rng-pci -nographic -serial tcp:127.0.0.1:45809 -cpu core2duo -m 256 -serial tcp:127.0.0.1:32962 -kernel tmp/deploy/images/qemux86-64/bzImage--4.10.15+git0+4d929fac34_d2c1ed3c0c-r0-qemux86-64-20170526174439.bin -append 'root=/dev/vda rw highres=off console=ttyS0 mem=256M ip=192.168.7.2::192.168.7.1:255.255.255.0 vga=0 uvesafb.mode_option=640x480-32 oprofile.timer=1 uvesafb.task_timeout=-1 console=tty1 console=ttyS0,115200n8 printk.time=1' QEMU 2.8.1.1 monitor - type 'help' for more information
(qemu)
Waiting at most 1000 seconds for login banner
Connection from 127.0.0.1:39834
Reached login banner
Logged as root in serial console
Stopping logging thread
Stop event received
Tearing down logging thread
Sending SIGTERM to runqemu

2017-05-26 17:11:44,005 - oe-selftest - INFO -   test_boot_rootfs (runqemu.RunqemuTests) ... OK (18.452s)

WARNING: /home/ab/autobuilder/yocto-worker/nightly-oe-selftest/build/bitbake/lib/bb/parse/ast.py:304: ResourceWarning: unclosed file <_io.FileIO name=47 mode='wb'>
statements.append(DataNode(filename, lineno, groupd))

WARNING: /home/ab/autobuilder/yocto-worker/nightly-oe-selftest/build/bitbake/lib/bb/parse/ast.py:304: ResourceWarning: unclosed file <_io.FileIO name=47 mode='wb'>
statements.append(DataNode(filename, lineno, groupd))

rootfs file: /home/ab/autobuilder/yocto-worker/nightly-oe-selftest/build/build/tmp/deploy/images/qemux86/core-image-minimal-qemux86.ext4
Qemu log file: /home/ab/autobuilder/yocto-worker/nightly-oe-selftest/build/build/tmp/work/qemux86-poky-linux/core-image-minimal/1.0-r0/testimage/qemu_boot_log.20170526223416
SSH log file: /home/ab/autobuilder/yocto-worker/nightly-oe-selftest/build/build/tmp/work/qemux86-poky-linux/core-image-minimal/1.0-r0/testimage/ssh_target_log.20170526223416
Using kvm for runqemu
Created listening socket for qemu serial console on: 127.0.0.1:39709
Created listening socket for qemu serial console on: 127.0.0.1:32861
launchcmd=runqemu snapshot kvm qemux86 /home/ab/autobuilder/yocto-worker/nightly-oe-selftest/build/build/tmp/deploy/images/qemux86/core-image-minimal-qemux86.ext4 tcpserial=32861 bootparams="console=tty1 console=ttyS0,115200n8 printk.time=1" qemuparams="-serial tcp:127.0.0.1:39709"
runqemu started, pid is 12952
waiting at most 60 seconds for qemu pid
qemu started - qemu procces pid is 12972
qemu cmdline used:
tmp/work/x86_64-linux/qemu-helper-native/1.0-r1/recipe-sysroot-native/usr/bin//qemu-system-i386-devicevirtio-net-pci,netdev=net0,mac=52:54:00:12:34:02-netdevtap,id=net0,ifname=tap0,script=no,downscript=no-drivefile=/home/ab/autobuilder/yocto-worker/nightly-oe-selftest/build/build/tmp/deploy/images/qemux86/core-image-minimal-qemux86.ext4,if=virtio,format=raw-vgavmware-show-cursor-usb-usbdevicetablet-devicevirtio-rng-pci-serialtcp:127.0.0.1:39709-cpukvm32-enable-kvm-m256-serialtcp:127.0.0.1:32861-snapshot-kerneltmp/deploy/images/qemux86/bzImage--4.10.15+git0+4d929fac34_d2c1ed3c0c-r0-qemux86-20170526221151.bin-appendroot=/dev/vda rw highres=off mem=256M ip=192.168.7.2::192.168.7.1:255.255.255.0 vga=0 uvesafb.mode_option=640x480-32 oprofile.timer=1 uvesafb.task_timeout=-1 console=tty1 console=ttyS0,115200n8 printk.time=1 Target IP: 192.168.7.2
Server IP: 192.168.7.1
Starting logging thread
Starting thread event loop
Connection request received
Setting connection established event
Output from runqemu:
runqemu - INFO - CONFFILE: /home/ab/autobuilder/yocto-worker/nightly-oe-selftest/build/build/tmp/deploy/images/qemux86/core-image-minimal-qemux86.qemuboot.conf
runqemu - INFO - Continuing with the following parameters:

stty: standard input: Inappropriate ioctl for device
runqemu - INFO - Running /bin/ip link...
runqemu - INFO - Acquiring lockfile /tmp/qemu-tap-locks/tap0.lock...
runqemu - INFO - Using preconfigured tap device tap0
runqemu - INFO - If this is not intended, touch /tmp/qemu-tap-locks/tap0.skip to make runqemu skip tap0.
runqemu - INFO - Network configuration: 192.168.7.2::192.168.7.1:255.255.255.0
runqemu - INFO - Running ldd tmp/work/x86_64-linux/qemu-helper-native/1.0-r1/recipe-sysroot-native/usr/bin//qemu-system-i386...
runqemu - INFO - Running tmp/work/x86_64-linux/qemu-helper-native/1.0-r1/recipe-sysroot-native/usr/bin//qemu-system-i386 -device virtio-net-pci,netdev=net0,mac=52:54:00:12:34:02 -netdev tap,id=net0,ifname=tap0,script=no,downscript=no -drive file=/home/ab/autobuilder/yocto-worker/nightly-oe-selftest/build/build/tmp/deploy/images/qemux86/core-image-minimal-qemux86.ext4,if=virtio,format=raw -vga vmware -show-cursor -usb -usbdevice tablet -device virtio-rng-pci -serial tcp:127.0.0.1:39709 -cpu kvm32 -enable-kvm -m 256 -serial tcp:127.0.0.1:32861 -snapshot -kernel tmp/deploy/images/qemux86/bzImage--4.10.15+git0+4d929fac34_d2c1ed3c0c-r0-qemux86-20170526221151.bin -append 'root=/dev/vda rw highres=off mem=256M ip=192.168.7.2::192.168.7.1:255.255.255.0 vga=0 uvesafb.mode_option=640x480-32 oprofile.timer=1 uvesafb.task_timeout=-1 console=tty1 console=ttyS0,115200n8 printk.time=1'

Waiting at most 1000 seconds for login banner
Connection from 127.0.0.1:51616
Reached login banner
Logged as root in serial console
Stopping logging thread
Stop event received
Tearing down logging thread
Sending SIGTERM to runqemu
rootfs file: /home/ab/autobuilder/yocto-worker/nightly-oe-selftest/build/build/tmp/deploy/images/qemux86/core-image-minimal-qemux86.ext4
Qemu log file: /home/ab/autobuilder/yocto-worker/nightly-oe-selftest/build/build/tmp/work/qemux86-poky-linux/core-image-minimal/1.0-r0/testimage/qemu_boot_log.20170526223612
SSH log file: /home/ab/autobuilder/yocto-worker/nightly-oe-selftest/build/build/tmp/work/qemux86-poky-linux/core-image-minimal/1.0-r0/testimage/ssh_target_log.20170526223612
Using kvm for runqemu
Created listening socket for qemu serial console on: 127.0.0.1:52143
Created listening socket for qemu serial console on: 127.0.0.1:56554
launchcmd=runqemu snapshot kvm qemux86 /home/ab/autobuilder/yocto-worker/nightly-oe-selftest/build/build/tmp/deploy/images/qemux86/core-image-minimal-qemux86.ext4 tcpserial=56554 bootparams="console=tty1 console=ttyS0,115200n8 printk.time=1" qemuparams="-serial tcp:127.0.0.1:52143"
runqemu started, pid is 27103
waiting at most 60 seconds for qemu pid
qemu started - qemu procces pid is 27124
qemu cmdline used:
tmp/work/x86_64-linux/qemu-helper-native/1.0-r1/recipe-sysroot-native/usr/bin//qemu-system-i386-devicevirtio-net-pci,netdev=net0,mac=52:54:00:12:34:02-netdevtap,id=net0,ifname=tap0,script=no,downscript=no-drivefile=/home/ab/autobuilder/yocto-worker/nightly-oe-selftest/build/build/tmp/deploy/images/qemux86/core-image-minimal-qemux86.ext4,if=virtio,format=raw-vgavmware-show-cursor-usb-usbdevicetablet-devicevirtio-rng-pci-serialtcp:127.0.0.1:52143-cpukvm32-enable-kvm-m256-serialtcp:127.0.0.1:56554-snapshot-kerneltmp/deploy/images/qemux86/bzImage--4.10.15+git0+4d929fac34_d2c1ed3c0c-r0-qemux86-20170526221151.bin-appendroot=/dev/vda rw highres=off mem=256M ip=192.168.7.2::192.168.7.1:255.255.255.0 vga=0 uvesafb.mode_option=640x480-32 oprofile.timer=1 uvesafb.task_timeout=-1 console=tty1 console=ttyS0,115200n8 printk.time=1 Target IP: 192.168.7.2
Server IP: 192.168.7.1
Starting logging thread
Starting thread event loop
Connection request received
Setting connection established event
Output from runqemu:
runqemu - INFO - CONFFILE: /home/ab/autobuilder/yocto-worker/nightly-oe-selftest/build/build/tmp/deploy/images/qemux86/core-image-minimal-qemux86.qemuboot.conf
runqemu - INFO - Continuing with the following parameters:

stty: standard input: Inappropriate ioctl for device
runqemu - INFO - Running /bin/ip link...
runqemu - INFO - Acquiring lockfile /tmp/qemu-tap-locks/tap0.lock...
runqemu - INFO - Using preconfigured tap device tap0
runqemu - INFO - If this is not intended, touch /tmp/qemu-tap-locks/tap0.skip to make runqemu skip tap0.
runqemu - INFO - Network configuration: 192.168.7.2::192.168.7.1:255.255.255.0
runqemu - INFO - Running ldd tmp/work/x86_64-linux/qemu-helper-native/1.0-r1/recipe-sysroot-native/usr/bin//qemu-system-i386...
runqemu - INFO - Running tmp/work/x86_64-linux/qemu-helper-native/1.0-r1/recipe-sysroot-native/usr/bin//qemu-system-i386 -device virtio-net-pci,netdev=net0,mac=52:54:00:12:34:02 -netdev tap,id=net0,ifname=tap0,script=no,downscript=no -drive file=/home/ab/autobuilder/yocto-worker/nightly-oe-selftest/build/build/tmp/deploy/images/qemux86/core-image-minimal-qemux86.ext4,if=virtio,format=raw -vga vmware -show-cursor -usb -usbdevice tablet -device virtio-rng-pci -serial tcp:127.0.0.1:52143 -cpu kvm32 -enable-kvm -m 256 -serial tcp:127.0.0.1:56554 -snapshot -kernel tmp/deploy/images/qemux86/bzImage--4.10.15+git0+4d929fac34_d2c1ed3c0c-r0-qemux86-20170526221151.bin -append 'root=/dev/vda rw highres=off mem=256M ip=192.168.7.2::192.168.7.1:255.255.255.0 vga=0 uvesafb.mode_option=640x480-32 oprofile.timer=1 uvesafb.task_timeout=-1 console=tty1 console=ttyS0,115200n8 printk.time=1'

Waiting at most 1000 seconds for login banner
Connection from 127.0.0.1:38363
Reached login banner
Logged as root in serial console
Stopping logging thread
Stop event received
Tearing down logging thread
Sending SIGTERM to runqemu
WARNING: /home/ab/autobuilder/yocto-worker/nightly-oe-selftest/build/bitbake/lib/bb/data_smart.py:598: ResourceWarning: unclosed file <_io.TextIOWrapper name=54 mode='w' encoding='UTF-8'>
self.overridedata[shortvar] = list(self.overridedata[shortvar])

WARNING: /home/ab/autobuilder/yocto-worker/nightly-oe-selftest/build/bitbake/lib/bb/data_smart.py:598: ResourceWarning: unclosed file <_io.TextIOWrapper name=54 mode='w' encoding='UTF-8'>
self.overridedata[shortvar] = list(self.overridedata[shortvar])

rootfs file: /home/ab/autobuilder/yocto-worker/nightly-oe-selftest/build/build/tmp/deploy/images/qemux86/core-image-minimal-qemux86.ext4
Qemu log file: /home/ab/autobuilder/yocto-worker/nightly-oe-selftest/build/build/tmp/work/qemux86-poky-linux/core-image-minimal/1.0-r0/testimage/qemu_boot_log.20170526223721
SSH log file: /home/ab/autobuilder/yocto-worker/nightly-oe-selftest/build/build/tmp/work/qemux86-poky-linux/core-image-minimal/1.0-r0/testimage/ssh_target_log.20170526223721
Using kvm for runqemu
Created listening socket for qemu serial console on: 127.0.0.1:44633
Created listening socket for qemu serial console on: 127.0.0.1:52807
launchcmd=runqemu snapshot kvm qemux86 /home/ab/autobuilder/yocto-worker/nightly-oe-selftest/build/build/tmp/deploy/images/qemux86/core-image-minimal-qemux86.ext4 tcpserial=52807 bootparams="console=tty1 console=ttyS0,115200n8 printk.time=1" qemuparams="-serial tcp:127.0.0.1:44633"
runqemu started, pid is 1777
waiting at most 60 seconds for qemu pid
qemu started - qemu procces pid is 1797
qemu cmdline used:
tmp/work/x86_64-linux/qemu-helper-native/1.0-r1/recipe-sysroot-native/usr/bin//qemu-system-i386-devicevirtio-net-pci,netdev=net0,mac=52:54:00:12:34:02-netdevtap,id=net0,ifname=tap0,script=no,downscript=no-drivefile=/home/ab/autobuilder/yocto-worker/nightly-oe-selftest/build/build/tmp/deploy/images/qemux86/core-image-minimal-qemux86.ext4,if=virtio,format=raw-vgavmware-show-cursor-usb-usbdevicetablet-devicevirtio-rng-pci-serialtcp:127.0.0.1:44633-cpukvm32-enable-kvm-m256-serialtcp:127.0.0.1:52807-snapshot-kerneltmp/deploy/images/qemux86/bzImage--4.10.15+git0+4d929fac34_d2c1ed3c0c-r0-qemux86-20170526221151.bin-appendroot=/dev/vda rw highres=off mem=256M ip=192.168.7.2::192.168.7.1:255.255.255.0 vga=0 uvesafb.mode_option=640x480-32 oprofile.timer=1 uvesafb.task_timeout=-1 console=tty1 console=ttyS0,115200n8 printk.time=1 Target IP: 192.168.7.2
Server IP: 192.168.7.1
Starting logging thread
Starting thread event loop
Connection request received
Setting connection established event
Output from runqemu:
runqemu - INFO - CONFFILE: /home/ab/autobuilder/yocto-worker/nightly-oe-selftest/build/build/tmp/deploy/images/qemux86/core-image-minimal-qemux86.qemuboot.conf
runqemu - INFO - Continuing with the following parameters:

stty: standard input: Inappropriate ioctl for device
runqemu - INFO - Running /bin/ip link...
runqemu - INFO - Acquiring lockfile /tmp/qemu-tap-locks/tap0.lock...
runqemu - INFO - Using preconfigured tap device tap0
runqemu - INFO - If this is not intended, touch /tmp/qemu-tap-locks/tap0.skip to make runqemu skip tap0.
runqemu - INFO - Network configuration: 192.168.7.2::192.168.7.1:255.255.255.0
runqemu - INFO - Running ldd tmp/work/x86_64-linux/qemu-helper-native/1.0-r1/recipe-sysroot-native/usr/bin//qemu-system-i386...
runqemu - INFO - Running tmp/work/x86_64-linux/qemu-helper-native/1.0-r1/recipe-sysroot-native/usr/bin//qemu-system-i386 -device virtio-net-pci,netdev=net0,mac=52:54:00:12:34:02 -netdev tap,id=net0,ifname=tap0,script=no,downscript=no -drive file=/home/ab/autobuilder/yocto-worker/nightly-oe-selftest/build/build/tmp/deploy/images/qemux86/core-image-minimal-qemux86.ext4,if=virtio,format=raw -vga vmware -show-cursor -usb -usbdevice tablet -device virtio-rng-pci -serial tcp:127.0.0.1:44633 -cpu kvm32 -enable-kvm -m 256 -serial tcp:127.0.0.1:52807 -snapshot -kernel tmp/deploy/images/qemux86/bzImage--4.10.15+git0+4d929fac34_d2c1ed3c0c-r0-qemux86-20170526221151.bin -append 'root=/dev/vda rw highres=off mem=256M ip=192.168.7.2::192.168.7.1:255.255.255.0 vga=0 uvesafb.mode_option=640x480-32 oprofile.timer=1 uvesafb.task_timeout=-1 console=tty1 console=ttyS0,115200n8 printk.time=1'

Waiting at most 1000 seconds for login banner
Connection from 127.0.0.1:40041
Reached login banner
Logged as root in serial console
Stopping logging thread
Stop event received
Tearing down logging thread
Sending SIGTERM to runqemu
WARNING: /home/ab/autobuilder/yocto-worker/nightly-oe-selftest/build/bitbake/lib/bb/data_smart.py:598: ResourceWarning: unclosed file <_io.TextIOWrapper name=54 mode='w' encoding='UTF-8'>
self.overridedata[shortvar] = list(self.overridedata[shortvar])

WARNING: /home/ab/autobuilder/yocto-worker/nightly-oe-selftest/build/bitbake/lib/bb/data_smart.py:598: ResourceWarning: unclosed file <_io.TextIOWrapper name=61 mode='w' encoding='UTF-8'>
self.overridedata[shortvar] = list(self.overridedata[shortvar])

WARNING: /home/ab/autobuilder/yocto-worker/nightly-oe-selftest/build/bitbake/lib/bb/data_smart.py:598: ResourceWarning: unclosed file <_io.TextIOWrapper name=54 mode='w' encoding='UTF-8'>
self.overridedata[shortvar] = list(self.overridedata[shortvar])

WARNING: /home/ab/autobuilder/yocto-worker/nightly-oe-selftest/build/bitbake/lib/bb/data_smart.py:598: ResourceWarning: unclosed file <_io.TextIOWrapper name=61 mode='w' encoding='UTF-8'>
self.overridedata[shortvar] = list(self.overridedata[shortvar])

rootfs file: /home/ab/autobuilder/yocto-worker/nightly-oe-selftest/build/build/tmp/deploy/images/qemux86/core-image-minimal-qemux86.ext4
Qemu log file: /home/ab/autobuilder/yocto-worker/nightly-oe-selftest/build/build/tmp/work/qemux86-poky-linux/core-image-minimal/1.0-r0/testimage/qemu_boot_log.20170526230136
SSH log file: /home/ab/autobuilder/yocto-worker/nightly-oe-selftest/build/build/tmp/work/qemux86-poky-linux/core-image-minimal/1.0-r0/testimage/ssh_target_log.20170526230136
Using kvm for runqemu
Created listening socket for qemu serial console on: 127.0.0.1:37198
Created listening socket for qemu serial console on: 127.0.0.1:36904
launchcmd=runqemu snapshot kvm qemux86 /home/ab/autobuilder/yocto-worker/nightly-oe-selftest/build/build/tmp/deploy/images/qemux86/core-image-minimal-qemux86.ext4 tcpserial=36904 bootparams="console=tty1 console=ttyS0,115200n8 printk.time=1" qemuparams="-serial tcp:127.0.0.1:37198"
runqemu started, pid is 5925
waiting at most 60 seconds for qemu pid
qemu started - qemu procces pid is 5945
qemu cmdline used:
tmp/work/x86_64-linux/qemu-helper-native/1.0-r1/recipe-sysroot-native/usr/bin//qemu-system-i386-devicevirtio-net-pci,netdev=net0,mac=52:54:00:12:34:02-netdevtap,id=net0,ifname=tap0,script=no,downscript=no-drivefile=/home/ab/autobuilder/yocto-worker/nightly-oe-selftest/build/build/tmp/deploy/images/qemux86/core-image-minimal-qemux86.ext4,if=virtio,format=raw-vgavmware-show-cursor-usb-usbdevicetablet-devicevirtio-rng-pci-serialtcp:127.0.0.1:37198-cpukvm32-enable-kvm-m256-serialtcp:127.0.0.1:36904-snapshot-kerneltmp/deploy/images/qemux86/bzImage--4.10.15+git0+4d929fac34_d2c1ed3c0c-r0-qemux86-20170526221151.bin-appendroot=/dev/vda rw highres=off mem=256M ip=192.168.7.2::192.168.7.1:255.255.255.0 vga=0 uvesafb.mode_option=640x480-32 oprofile.timer=1 uvesafb.task_timeout=-1 console=tty1 console=ttyS0,115200n8 printk.time=1 Target IP: 192.168.7.2
Server IP: 192.168.7.1
Starting logging thread
Starting thread event loop
Connection request received
Setting connection established event
Output from runqemu:
runqemu - INFO - CONFFILE: /home/ab/autobuilder/yocto-worker/nightly-oe-selftest/build/build/tmp/deploy/images/qemux86/core-image-minimal-qemux86.qemuboot.conf
runqemu - INFO - Continuing with the following parameters:

stty: standard input: Inappropriate ioctl for device
runqemu - INFO - Running /bin/ip link...
runqemu - INFO - Acquiring lockfile /tmp/qemu-tap-locks/tap0.lock...
runqemu - INFO - Using preconfigured tap device tap0
runqemu - INFO - If this is not intended, touch /tmp/qemu-tap-locks/tap0.skip to make runqemu skip tap0.
runqemu - INFO - Network configuration: 192.168.7.2::192.168.7.1:255.255.255.0
runqemu - INFO - Running ldd tmp/work/x86_64-linux/qemu-helper-native/1.0-r1/recipe-sysroot-native/usr/bin//qemu-system-i386...
runqemu - INFO - Running tmp/work/x86_64-linux/qemu-helper-native/1.0-r1/recipe-sysroot-native/usr/bin//qemu-system-i386 -device virtio-net-pci,netdev=net0,mac=52:54:00:12:34:02 -netdev tap,id=net0,ifname=tap0,script=no,downscript=no -drive file=/home/ab/autobuilder/yocto-worker/nightly-oe-selftest/build/build/tmp/deploy/images/qemux86/core-image-minimal-qemux86.ext4,if=virtio,format=raw -vga vmware -show-cursor -usb -usbdevice tablet -device virtio-rng-pci -serial tcp:127.0.0.1:37198 -cpu kvm32 -enable-kvm -m 256 -serial tcp:127.0.0.1:36904 -snapshot -kernel tmp/deploy/images/qemux86/bzImage--4.10.15+git0+4d929fac34_d2c1ed3c0c-r0-qemux86-20170526221151.bin -append 'root=/dev/vda rw highres=off mem=256M ip=192.168.7.2::192.168.7.1:255.255.255.0 vga=0 uvesafb.mode_option=640x480-32 oprofile.timer=1 uvesafb.task_timeout=-1 console=tty1 console=ttyS0,115200n8 printk.time=1'

Waiting at most 1000 seconds for login banner
Connection from 127.0.0.1:52981
Reached login banner
Logged as root in serial console
Stopping logging thread
Stop event received
Tearing down logging thread
Sending SIGTERM to runqemu
WARNING: /home/ab/autobuilder/yocto-worker/nightly-oe-selftest/build/bitbake/lib/bb/cache.py:449: ResourceWarning: unclosed file <_io.TextIOWrapper name=68 mode='w' encoding='UTF-8'>
value = pickled.load()

WARNING: /home/ab/autobuilder/yocto-worker/nightly-oe-selftest/build/bitbake/lib/bb/cache.py:449: ResourceWarning: unclosed file <_io.TextIOWrapper name=68 mode='w' encoding='UTF-8'>
value = pickled.load()

rootfs file: /home/ab/autobuilder/yocto-worker/nightly-oe-selftest/build/build/tmp/deploy/images/qemux86/core-image-minimal-qemux86.ext4
Qemu log file: /home/ab/autobuilder/yocto-worker/nightly-oe-selftest/build/build/tmp/work/qemux86-poky-linux/core-image-minimal/1.0-r0/testimage/qemu_boot_log.20170526230249
SSH log file: /home/ab/autobuilder/yocto-worker/nightly-oe-selftest/build/build/tmp/work/qemux86-poky-linux/core-image-minimal/1.0-r0/testimage/ssh_target_log.20170526230249
Using kvm for runqemu
Created listening socket for qemu serial console on: 127.0.0.1:47578
Created listening socket for qemu serial console on: 127.0.0.1:38453
launchcmd=runqemu snapshot kvm qemux86 /home/ab/autobuilder/yocto-worker/nightly-oe-selftest/build/build/tmp/deploy/images/qemux86/core-image-minimal-qemux86.ext4 tcpserial=38453 bootparams="console=tty1 console=ttyS0,115200n8 printk.time=1" qemuparams="-serial tcp:127.0.0.1:47578"
runqemu started, pid is 13970
waiting at most 60 seconds for qemu pid
qemu started - qemu procces pid is 13990
qemu cmdline used:
tmp/work/x86_64-linux/qemu-helper-native/1.0-r1/recipe-sysroot-native/usr/bin//qemu-system-i386-devicevirtio-net-pci,netdev=net0,mac=52:54:00:12:34:02-netdevtap,id=net0,ifname=tap0,script=no,downscript=no-drivefile=/home/ab/autobuilder/yocto-worker/nightly-oe-selftest/build/build/tmp/deploy/images/qemux86/core-image-minimal-qemux86.ext4,if=virtio,format=raw-vgavmware-show-cursor-usb-usbdevicetablet-devicevirtio-rng-pci-serialtcp:127.0.0.1:47578-cpukvm32-enable-kvm-m256-serialtcp:127.0.0.1:38453-snapshot-kerneltmp/deploy/images/qemux86/bzImage--4.10.15+git0+4d929fac34_d2c1ed3c0c-r0-qemux86-20170526221151.bin-appendroot=/dev/vda rw highres=off mem=256M ip=192.168.7.2::192.168.7.1:255.255.255.0 vga=0 uvesafb.mode_option=640x480-32 oprofile.timer=1 uvesafb.task_timeout=-1 console=tty1 console=ttyS0,115200n8 printk.time=1 Target IP: 192.168.7.2
Server IP: 192.168.7.1
Starting logging thread
Starting thread event loop
Connection request received
Setting connection established event
Output from runqemu:
runqemu - INFO - CONFFILE: /home/ab/autobuilder/yocto-worker/nightly-oe-selftest/build/build/tmp/deploy/images/qemux86/core-image-minimal-qemux86.qemuboot.conf
runqemu - INFO - Continuing with the following parameters:

stty: standard input: Inappropriate ioctl for device
runqemu - INFO - Running /bin/ip link...
runqemu - INFO - Acquiring lockfile /tmp/qemu-tap-locks/tap0.lock...
runqemu - INFO - Using preconfigured tap device tap0
runqemu - INFO - If this is not intended, touch /tmp/qemu-tap-locks/tap0.skip to make runqemu skip tap0.
runqemu - INFO - Network configuration: 192.168.7.2::192.168.7.1:255.255.255.0
runqemu - INFO - Running ldd tmp/work/x86_64-linux/qemu-helper-native/1.0-r1/recipe-sysroot-native/usr/bin//qemu-system-i386...
runqemu - INFO - Running tmp/work/x86_64-linux/qemu-helper-native/1.0-r1/recipe-sysroot-native/usr/bin//qemu-system-i386 -device virtio-net-pci,netdev=net0,mac=52:54:00:12:34:02 -netdev tap,id=net0,ifname=tap0,script=no,downscript=no -drive file=/home/ab/autobuilder/yocto-worker/nightly-oe-selftest/build/build/tmp/deploy/images/qemux86/core-image-minimal-qemux86.ext4,if=virtio,format=raw -vga vmware -show-cursor -usb -usbdevice tablet -device virtio-rng-pci -serial tcp:127.0.0.1:47578 -cpu kvm32 -enable-kvm -m 256 -serial tcp:127.0.0.1:38453 -snapshot -kernel tmp/deploy/images/qemux86/bzImage--4.10.15+git0+4d929fac34_d2c1ed3c0c-r0-qemux86-20170526221151.bin -append 'root=/dev/vda rw highres=off mem=256M ip=192.168.7.2::192.168.7.1:255.255.255.0 vga=0 uvesafb.mode_option=640x480-32 oprofile.timer=1 uvesafb.task_timeout=-1 console=tty1 console=ttyS0,115200n8 printk.time=1'

Waiting at most 1000 seconds for login banner
Connection from 127.0.0.1:55759
Reached login banner
Logged as root in serial console
Stopping logging thread
Stop event received
Tearing down logging thread
Sending SIGTERM to runqemu
WARNING: /home/ab/autobuilder/yocto-worker/nightly-oe-selftest/build/bitbake/lib/bb/cache.py:449: ResourceWarning: unclosed file <_io.TextIOWrapper name=68 mode='w' encoding='UTF-8'>
value = pickled.load()

WARNING: /home/ab/autobuilder/yocto-worker/nightly-oe-selftest/build/bitbake/lib/bb/cache.py:449: ResourceWarning: unclosed file <_io.TextIOWrapper name=68 mode='w' encoding='UTF-8'>
value = pickled.load()

WARNING: /home/ab/autobuilder/yocto-worker/nightly-oe-selftest/build/bitbake/lib/bb/cache.py:449: ResourceWarning: unclosed file <_io.TextIOWrapper name=45 mode='w' encoding='UTF-8'>
value = pickled.load()

WARNING: /home/ab/autobuilder/yocto-worker/nightly-oe-selftest/build/bitbake/lib/bb/cache.py:449: ResourceWarning: unclosed file <_io.TextIOWrapper name=45 mode='w' encoding='UTF-8'>
value = pickled.load()

rootfs file: /home/ab/autobuilder/yocto-worker/nightly-oe-selftest/build/build/tmp/deploy/images/qemux86/core-image-minimal-qemux86.ext4
Qemu log file: /home/ab/autobuilder/yocto-worker/nightly-oe-selftest/build/build/tmp/work/qemux86-poky-linux/core-image-minimal/1.0-r0/testimage/qemu_boot_log.20170526230359
SSH log file: /home/ab/autobuilder/yocto-worker/nightly-oe-selftest/build/build/tmp/work/qemux86-poky-linux/core-image-minimal/1.0-r0/testimage/ssh_target_log.20170526230359
Using kvm for runqemu
Created listening socket for qemu serial console on: 127.0.0.1:39808
Created listening socket for qemu serial console on: 127.0.0.1:57229
launchcmd=runqemu snapshot kvm qemux86 /home/ab/autobuilder/yocto-worker/nightly-oe-selftest/build/build/tmp/deploy/images/qemux86/core-image-minimal-qemux86.ext4 tcpserial=57229 bootparams="console=tty1 console=ttyS0,115200n8 printk.time=1" qemuparams="-serial tcp:127.0.0.1:39808"
runqemu started, pid is 21309
waiting at most 60 seconds for qemu pid
qemu started - qemu procces pid is 21329
qemu cmdline used:
tmp/work/x86_64-linux/qemu-helper-native/1.0-r1/recipe-sysroot-native/usr/bin//qemu-system-i386-devicevirtio-net-pci,netdev=net0,mac=52:54:00:12:34:02-netdevtap,id=net0,ifname=tap0,script=no,downscript=no-drivefile=/home/ab/autobuilder/yocto-worker/nightly-oe-selftest/build/build/tmp/deploy/images/qemux86/core-image-minimal-qemux86.ext4,if=virtio,format=raw-vgavmware-show-cursor-usb-usbdevicetablet-devicevirtio-rng-pci-serialtcp:127.0.0.1:39808-cpukvm32-enable-kvm-m256-serialtcp:127.0.0.1:57229-snapshot-kerneltmp/deploy/images/qemux86/bzImage--4.10.15+git0+4d929fac34_d2c1ed3c0c-r0-qemux86-20170526221151.bin-appendroot=/dev/vda rw highres=off mem=256M ip=192.168.7.2::192.168.7.1:255.255.255.0 vga=0 uvesafb.mode_option=640x480-32 oprofile.timer=1 uvesafb.task_timeout=-1 console=tty1 console=ttyS0,115200n8 printk.time=1 Target IP: 192.168.7.2
Server IP: 192.168.7.1
Starting logging thread
Starting thread event loop
Connection request received
Setting connection established event
Output from runqemu:
runqemu - INFO - CONFFILE: /home/ab/autobuilder/yocto-worker/nightly-oe-selftest/build/build/tmp/deploy/images/qemux86/core-image-minimal-qemux86.qemuboot.conf
runqemu - INFO - Continuing with the following parameters:

stty: standard input: Inappropriate ioctl for device
runqemu - INFO - Running /bin/ip link...
runqemu - INFO - Acquiring lockfile /tmp/qemu-tap-locks/tap0.lock...
runqemu - INFO - Using preconfigured tap device tap0
runqemu - INFO - If this is not intended, touch /tmp/qemu-tap-locks/tap0.skip to make runqemu skip tap0.
runqemu - INFO - Network configuration: 192.168.7.2::192.168.7.1:255.255.255.0
runqemu - INFO - Running ldd tmp/work/x86_64-linux/qemu-helper-native/1.0-r1/recipe-sysroot-native/usr/bin//qemu-system-i386...
runqemu - INFO - Running tmp/work/x86_64-linux/qemu-helper-native/1.0-r1/recipe-sysroot-native/usr/bin//qemu-system-i386 -device virtio-net-pci,netdev=net0,mac=52:54:00:12:34:02 -netdev tap,id=net0,ifname=tap0,script=no,downscript=no -drive file=/home/ab/autobuilder/yocto-worker/nightly-oe-selftest/build/build/tmp/deploy/images/qemux86/core-image-minimal-qemux86.ext4,if=virtio,format=raw -vga vmware -show-cursor -usb -usbdevice tablet -device virtio-rng-pci -serial tcp:127.0.0.1:39808 -cpu kvm32 -enable-kvm -m 256 -serial tcp:127.0.0.1:57229 -snapshot -kernel tmp/deploy/images/qemux86/bzImage--4.10.15+git0+4d929fac34_d2c1ed3c0c-r0-qemux86-20170526221151.bin -append 'root=/dev/vda rw highres=off mem=256M ip=192.168.7.2::192.168.7.1:255.255.255.0 vga=0 uvesafb.mode_option=640x480-32 oprofile.timer=1 uvesafb.task_timeout=-1 console=tty1 console=ttyS0,115200n8 printk.time=1'

Waiting at most 1000 seconds for login banner
Connection from 127.0.0.1:55680
Reached login banner
Logged as root in serial console
Stopping logging thread
Stop event received
Tearing down logging thread
Sending SIGTERM to runqemu

2017-05-26 18:04:16,907 - oe-selftest - INFO -   test_postinst_rootfs_and_boot (runtime_test.Postinst) ... OK (3152.901s)

rootfs file: /home/ab/autobuilder/yocto-worker/nightly-oe-selftest/build/build/tmp/deploy/images/qemux86-64/core-image-minimal-qemux86-64.ext4
Qemu log file: /home/ab/autobuilder/yocto-worker/nightly-oe-selftest/build/build/tmp/work/qemux86_64-poky-linux/core-image-minimal/1.0-r0/testimage/qemu_boot_log.20170526230530
SSH log file: /home/ab/autobuilder/yocto-worker/nightly-oe-selftest/build/build/tmp/work/qemux86_64-poky-linux/core-image-minimal/1.0-r0/testimage/ssh_target_log.20170526230530
Using kvm for runqemu
Created listening socket for qemu serial console on: 127.0.0.1:56404
Created listening socket for qemu serial console on: 127.0.0.1:51416
launchcmd=runqemu snapshot kvm qemux86-64 /home/ab/autobuilder/yocto-worker/nightly-oe-selftest/build/build/tmp/deploy/images/qemux86-64/core-image-minimal-qemux86-64.ext4 tcpserial=51416 bootparams="console=tty1 console=ttyS0,115200n8 printk.time=1" qemuparams="-serial tcp:127.0.0.1:56404"
runqemu started, pid is 28060
waiting at most 60 seconds for qemu pid
qemu started - qemu procces pid is 28080
qemu cmdline used:
tmp/work/x86_64-linux/qemu-helper-native/1.0-r1/recipe-sysroot-native/usr/bin//qemu-system-x86_64-devicevirtio-net-pci,netdev=net0,mac=52:54:00:12:34:02-netdevtap,id=net0,ifname=tap0,script=no,downscript=no-drivefile=/home/ab/autobuilder/yocto-worker/nightly-oe-selftest/build/build/tmp/deploy/images/qemux86-64/core-image-minimal-qemux86-64.ext4,if=virtio,format=raw-vgavmware-show-cursor-usb-usbdevicetablet-devicevirtio-rng-pci-serialtcp:127.0.0.1:56404-cpukvm64-enable-kvm-m256-serialtcp:127.0.0.1:51416-snapshot-kerneltmp/deploy/images/qemux86-64/bzImage--4.10.15+git0+4d929fac34_d2c1ed3c0c-r0-qemux86-64-20170526174439.bin-appendroot=/dev/vda rw highres=off mem=256M ip=192.168.7.2::192.168.7.1:255.255.255.0 vga=0 uvesafb.mode_option=640x480-32 oprofile.timer=1 uvesafb.task_timeout=-1 console=tty1 console=ttyS0,115200n8 printk.time=1 Target IP: 192.168.7.2
Server IP: 192.168.7.1
Starting logging thread
Starting thread event loop
Connection request received
Setting connection established event
Output from runqemu:
runqemu - INFO - CONFFILE: /home/ab/autobuilder/yocto-worker/nightly-oe-selftest/build/build/tmp/deploy/images/qemux86-64/core-image-minimal-qemux86-64.qemuboot.conf
runqemu - INFO - Continuing with the following parameters:

stty: standard input: Inappropriate ioctl for device
runqemu - INFO - Running /bin/ip link...
runqemu - INFO - Acquiring lockfile /tmp/qemu-tap-locks/tap0.lock...
runqemu - INFO - Using preconfigured tap device tap0
runqemu - INFO - If this is not intended, touch /tmp/qemu-tap-locks/tap0.skip to make runqemu skip tap0.
runqemu - INFO - Network configuration: 192.168.7.2::192.168.7.1:255.255.255.0
runqemu - INFO - Running ldd tmp/work/x86_64-linux/qemu-helper-native/1.0-r1/recipe-sysroot-native/usr/bin//qemu-system-x86_64...
runqemu - INFO - Running tmp/work/x86_64-linux/qemu-helper-native/1.0-r1/recipe-sysroot-native/usr/bin//qemu-system-x86_64 -device virtio-net-pci,netdev=net0,mac=52:54:00:12:34:02 -netdev tap,id=net0,ifname=tap0,script=no,downscript=no -drive file=/home/ab/autobuilder/yocto-worker/nightly-oe-selftest/build/build/tmp/deploy/images/qemux86-64/core-image-minimal-qemux86-64.ext4,if=virtio,format=raw -vga vmware -show-cursor -usb -usbdevice tablet -device virtio-rng-pci -serial tcp:127.0.0.1:56404 -cpu kvm64 -enable-kvm -m 256 -serial tcp:127.0.0.1:51416 -snapshot -kernel tmp/deploy/images/qemux86-64/bzImage--4.10.15+git0+4d929fac34_d2c1ed3c0c-r0-qemux86-64-20170526174439.bin -append 'root=/dev/vda rw highres=off mem=256M ip=192.168.7.2::192.168.7.1:255.255.255.0 vga=0 uvesafb.mode_option=640x480-32 oprofile.timer=1 uvesafb.task_timeout=-1 console=tty1 console=ttyS0,115200n8 printk.time=1'

Waiting at most 1000 seconds for login banner
Connection from 127.0.0.1:47651
Reached login banner
Logged as root in serial console
Stopping logging thread
Stop event received
Tearing down logging thread
Sending SIGTERM to runqemu

2017-05-26 18:05:43,835 - oe-selftest - INFO -   test_verify_postinst (runtime_test.Postinst) ... OK (86.926s)

WARNING: /home/ab/autobuilder/yocto-worker/nightly-oe-selftest/build/bitbake/lib/bb/data_smart.py:566: ResourceWarning: unclosed file <_io.TextIOWrapper name=68 mode='w' encoding='UTF-8'>
self._setvar_update_overrides(var, **loginfo)

WARNING: /home/ab/autobuilder/yocto-worker/nightly-oe-selftest/build/bitbake/lib/bb/data_smart.py:566: ResourceWarning: unclosed file <_io.TextIOWrapper name=45 mode='w' encoding='UTF-8'>
self._setvar_update_overrides(var, **loginfo)

WARNING: /home/ab/autobuilder/yocto-worker/nightly-oe-selftest/build/bitbake/lib/bb/data_smart.py:566: ResourceWarning: unclosed file <_io.TextIOWrapper name=54 mode='w' encoding='UTF-8'>
self._setvar_update_overrides(var, **loginfo)

WARNING: /home/ab/autobuilder/yocto-worker/nightly-oe-selftest/build/bitbake/lib/bb/data_smart.py:566: ResourceWarning: unclosed file <_io.TextIOWrapper name=68 mode='w' encoding='UTF-8'>
self._setvar_update_overrides(var, **loginfo)

WARNING: /home/ab/autobuilder/yocto-worker/nightly-oe-selftest/build/bitbake/lib/bb/data_smart.py:566: ResourceWarning: unclosed file <_io.TextIOWrapper name=45 mode='w' encoding='UTF-8'>
self._setvar_update_overrides(var, **loginfo)

WARNING: /home/ab/autobuilder/yocto-worker/nightly-oe-selftest/build/bitbake/lib/bb/data_smart.py:566: ResourceWarning: unclosed file <_io.TextIOWrapper name=54 mode='w' encoding='UTF-8'>
self._setvar_update_overrides(var, **loginfo)

rootfs file: /home/ab/autobuilder/yocto-worker/nightly-oe-selftest/build/build/tmp/deploy/images/qemux86-64/core-image-minimal-qemux86-64.ext4
Qemu log file: /home/ab/autobuilder/yocto-worker/nightly-oe-selftest/build/build/tmp/work/qemux86_64-poky-linux/core-image-minimal/1.0-r0/testimage/qemu_boot_log.20170526230734
SSH log file: /home/ab/autobuilder/yocto-worker/nightly-oe-selftest/build/build/tmp/work/qemux86_64-poky-linux/core-image-minimal/1.0-r0/testimage/ssh_target_log.20170526230734
Using kvm for runqemu
Created listening socket for qemu serial console on: 127.0.0.1:57566
Created listening socket for qemu serial console on: 127.0.0.1:36354
launchcmd=runqemu snapshot kvm qemux86-64 /home/ab/autobuilder/yocto-worker/nightly-oe-selftest/build/build/tmp/deploy/images/qemux86-64/core-image-minimal-qemux86-64.ext4 tcpserial=36354 bootparams="console=tty1 console=ttyS0,115200n8 printk.time=1" qemuparams="-serial tcp:127.0.0.1:57566"
runqemu started, pid is 12348
waiting at most 60 seconds for qemu pid
qemu started - qemu procces pid is 12368
qemu cmdline used:
tmp/work/x86_64-linux/qemu-helper-native/1.0-r1/recipe-sysroot-native/usr/bin//qemu-system-x86_64-devicevirtio-net-pci,netdev=net0,mac=52:54:00:12:34:02-netdevtap,id=net0,ifname=tap0,script=no,downscript=no-drivefile=/home/ab/autobuilder/yocto-worker/nightly-oe-selftest/build/build/tmp/deploy/images/qemux86-64/core-image-minimal-qemux86-64.ext4,if=virtio,format=raw-vgavmware-show-cursor-usb-usbdevicetablet-devicevirtio-rng-pci-serialtcp:127.0.0.1:57566-cpukvm64-enable-kvm-m256-serialtcp:127.0.0.1:36354-snapshot-kerneltmp/deploy/images/qemux86-64/bzImage--4.10.15+git0+4d929fac34_d2c1ed3c0c-r0-qemux86-64-20170526174439.bin-appendroot=/dev/vda rw highres=off mem=256M ip=192.168.7.2::192.168.7.1:255.255.255.0 vga=0 uvesafb.mode_option=640x480-32 oprofile.timer=1 uvesafb.task_timeout=-1 console=tty1 console=ttyS0,115200n8 printk.time=1 Target IP: 192.168.7.2
Server IP: 192.168.7.1
Starting logging thread
Starting thread event loop
Connection request received
Setting connection established event
Output from runqemu:
runqemu - INFO - CONFFILE: /home/ab/autobuilder/yocto-worker/nightly-oe-selftest/build/build/tmp/deploy/images/qemux86-64/core-image-minimal-qemux86-64.qemuboot.conf
runqemu - INFO - Continuing with the following parameters:

stty: standard input: Inappropriate ioctl for device
runqemu - INFO - Running /bin/ip link...
runqemu - INFO - Acquiring lockfile /tmp/qemu-tap-locks/tap0.lock...
runqemu - INFO - Using preconfigured tap device tap0
runqemu - INFO - If this is not intended, touch /tmp/qemu-tap-locks/tap0.skip to make runqemu skip tap0.
runqemu - INFO - Network configuration: 192.168.7.2::192.168.7.1:255.255.255.0
runqemu - INFO - Running ldd tmp/work/x86_64-linux/qemu-helper-native/1.0-r1/recipe-sysroot-native/usr/bin//qemu-system-x86_64...
runqemu - INFO - Running tmp/work/x86_64-linux/qemu-helper-native/1.0-r1/recipe-sysroot-native/usr/bin//qemu-system-x86_64 -device virtio-net-pci,netdev=net0,mac=52:54:00:12:34:02 -netdev tap,id=net0,ifname=tap0,script=no,downscript=no -drive file=/home/ab/autobuilder/yocto-worker/nightly-oe-selftest/build/build/tmp/deploy/images/qemux86-64/core-image-minimal-qemux86-64.ext4,if=virtio,format=raw -vga vmware -show-cursor -usb -usbdevice tablet -device virtio-rng-pci -serial tcp:127.0.0.1:57566 -cpu kvm64 -enable-kvm -m 256 -serial tcp:127.0.0.1:36354 -snapshot -kernel tmp/deploy/images/qemux86-64/bzImage--4.10.15+git0+4d929fac34_d2c1ed3c0c-r0-qemux86-64-20170526174439.bin -append 'root=/dev/vda rw highres=off mem=256M ip=192.168.7.2::192.168.7.1:255.255.255.0 vga=0 uvesafb.mode_option=640x480-32 oprofile.timer=1 uvesafb.task_timeout=-1 console=tty1 console=ttyS0,115200n8 printk.time=1'

Waiting at most 1000 seconds for login banner
Connection from 127.0.0.1:47752
Reached login banner
Logged as root in serial console
Stopping logging thread
Stop event received
Tearing down logging thread
Sending SIGTERM to runqemu

2017-05-26 18:07:48,521 - oe-selftest - INFO -   test_testexport_basic (runtime_test.TestExport) ... OK (124.685s)
2017-05-26 18:09:37,328 - oe-selftest - INFO -   test_testexport_sdk (runtime_test.TestExport) ... OK (108.806s)
2017-05-26 18:14:30,546 - oe-selftest - INFO -   test_testimage_install (runtime_test.TestImage) ... OK (293.209s)
2017-05-26 18:14:57,046 - oe-selftest - INFO -   test_locked_signatures (signing.LockedSignatures) ... OK (26.499s)
2017-05-26 18:25:06,875 - oe-selftest - INFO -   test_signing_packages (signing.Signing) ... OK (609.402s)
2017-05-26 18:26:32,525 - oe-selftest - INFO -   test_signing_sstate_archive (signing.Signing) ... OK (85.649s)
2017-05-26 18:27:11,102 - oe-selftest - INFO -   test_cleansstate_task_distro_nonspecific (sstatetests.SStateTests) ... OK (38.576s)
2017-05-26 18:27:40,323 - oe-selftest - INFO -   test_cleansstate_task_distro_specific (sstatetests.SStateTests) ... OK (29.221s)
2017-05-26 18:27:59,037 - oe-selftest - INFO -   test_cleansstate_task_distro_specific_nonspecific (sstatetests.SStateTests) ... OK (18.713s)
2017-05-26 18:28:22,423 - oe-selftest - INFO -   test_rebuild_distro_specific_sstate_cross_native_targets (sstatetests.SStateTests) ... OK (23.385s)
2017-05-26 18:28:45,360 - oe-selftest - INFO -   test_rebuild_distro_specific_sstate_cross_target (sstatetests.SStateTests) ... OK (22.937s)
2017-05-26 18:29:07,829 - oe-selftest - INFO -   test_rebuild_distro_specific_sstate_native_target (sstatetests.SStateTests) ... OK (22.469s)
2017-05-26 18:30:04,069 - oe-selftest - INFO -   test_sstate_32_64_same_hash (sstatetests.SStateTests) ... OK (56.239s)
2017-05-26 18:31:24,485 - oe-selftest - INFO -   test_sstate_allarch_samesigs (sstatetests.SStateTests) ... OK (80.416s)
2017-05-26 18:33:21,330 - oe-selftest - INFO -   test_sstate_allarch_samesigs_multilib (sstatetests.SStateTests) ... OK (116.844s)
2017-05-26 18:39:04,415 - oe-selftest - INFO -   test_sstate_cache_management_script_using_machine (sstatetests.SStateTests) ... OK (343.085s)
2017-05-26 18:40:14,154 - oe-selftest - INFO -   test_sstate_cache_management_script_using_pr_1 (sstatetests.SStateTests) ... OK (69.739s)
2017-05-26 18:42:16,630 - oe-selftest - INFO -   test_sstate_cache_management_script_using_pr_2 (sstatetests.SStateTests) ... OK (122.475s)
2017-05-26 18:45:24,021 - oe-selftest - INFO -   test_sstate_cache_management_script_using_pr_3 (sstatetests.SStateTests) ... OK (187.390s)
2017-05-26 18:45:38,310 - oe-selftest - INFO -   test_sstate_creation_distro_nonspecific_fail (sstatetests.SStateTests) ... OK (14.289s)
2017-05-26 18:45:51,845 - oe-selftest - INFO -   test_sstate_creation_distro_nonspecific_pass (sstatetests.SStateTests) ... OK (13.534s)
2017-05-26 18:46:05,260 - oe-selftest - INFO -   test_sstate_creation_distro_specific_fail (sstatetests.SStateTests) ... OK (13.415s)
2017-05-26 18:46:18,699 - oe-selftest - INFO -   test_sstate_creation_distro_specific_pass (sstatetests.SStateTests) ... OK (13.439s)
2017-05-26 18:47:15,210 - oe-selftest - INFO -   test_sstate_nativelsbstring_same_hash (sstatetests.SStateTests) ... OK (56.510s)
2017-05-26 18:48:30,541 - oe-selftest - INFO -   test_sstate_noop_samesigs (sstatetests.SStateTests) ... OK (75.330s)
2017-05-26 18:50:54,264 - oe-selftest - INFO -   test_sstate_sametune_samesigs (sstatetests.SStateTests) ... OK (143.723s)
2017-05-26 18:50:54,617 - oe-selftest - INFO -   test_datastore_operations (tinfoil.TinfoilTests) ... OK (0.352s)
2017-05-26 18:50:55,005 - oe-selftest - INFO -   test_expand (tinfoil.TinfoilTests) ... OK (0.388s)
2017-05-26 18:50:55,379 - oe-selftest - INFO -   test_getvar (tinfoil.TinfoilTests) ... OK (0.374s)
2017-05-26 18:50:55,753 - oe-selftest - INFO -   test_getvar_bb_origenv (tinfoil.TinfoilTests) ... OK (0.373s)
2017-05-26 18:50:57,265 - oe-selftest - INFO -   test_list_recipes (tinfoil.TinfoilTests) ... OK (1.511s)
2017-05-26 18:50:58,904 - oe-selftest - INFO -   test_parse_recipe (tinfoil.TinfoilTests) ... OK (1.639s)
2017-05-26 18:51:00,522 - oe-selftest - INFO -   test_parse_recipe_copy_expand (tinfoil.TinfoilTests) ... OK (1.618s)
2017-05-26 18:51:02,220 - oe-selftest - INFO -   test_parse_recipe_initial_datastore (tinfoil.TinfoilTests) ... OK (1.698s)
2017-05-26 18:51:03,378 - oe-selftest - INFO -   test_setvariable_clean (tinfoil.TinfoilTests) ... OK (1.157s)
2017-05-26 18:51:04,007 - oe-selftest - INFO -   test_wait_event (tinfoil.TinfoilTests) ... OK (0.629s)
2017-05-26 18:56:22,956 - oe-selftest - INFO -   test_bmap_long (wic.Wic) ... OK (318.947s)
2017-05-26 18:56:32,436 - oe-selftest - INFO -   test_bmap_short (wic.Wic) ... OK (9.479s)
2017-05-26 18:56:47,367 - oe-selftest - INFO -   test_bootloader_config (wic.Wic) ... OK (14.931s)
2017-05-26 18:57:03,103 - oe-selftest - INFO -   test_build_artifacts (wic.Wic) ... OK (15.735s)
2017-05-26 18:57:12,347 - oe-selftest - INFO -   test_build_image_name (wic.Wic) ... OK (9.243s)
2017-05-26 18:57:30,735 - oe-selftest - INFO -   test_build_rootfs_long (wic.Wic) ... OK (18.388s)
2017-05-26 18:57:48,004 - oe-selftest - INFO -   test_build_rootfs_short (wic.Wic) ... OK (17.268s)
2017-05-26 18:57:58,771 - oe-selftest - INFO -   test_compress_bzip2 (wic.Wic) ... OK (10.766s)
2017-05-26 18:58:08,734 - oe-selftest - INFO -   test_compress_gzip (wic.Wic) ... OK (9.962s)
2017-05-26 18:58:22,543 - oe-selftest - INFO -   test_compress_xz (wic.Wic) ... OK (13.808s)
2017-05-26 18:58:22,965 - oe-selftest - INFO -   test_createhelp (wic.Wic) ... OK (0.422s)
2017-05-26 18:58:31,999 - oe-selftest - INFO -   test_debug_long (wic.Wic) ... OK (9.033s)
2017-05-26 18:58:41,201 - oe-selftest - INFO -   test_debug_short (wic.Wic) ... OK (9.201s)
2017-05-26 18:58:51,242 - oe-selftest - INFO -   test_default_output_dir (wic.Wic) ... OK (10.041s)
2017-05-26 18:59:09,145 - oe-selftest - INFO -   test_exclude_path (wic.Wic) ... OK (17.902s)
2017-05-26 18:59:18,840 - oe-selftest - INFO -   test_exclude_path_errors (wic.Wic) ... OK (9.694s)
2017-05-26 18:59:28,370 - oe-selftest - INFO -   test_fixed_size (wic.Wic) ... OK (9.530s)
2017-05-26 18:59:32,957 - oe-selftest - INFO -   test_fixed_size_error (wic.Wic) ... OK (4.587s)
2017-05-26 18:59:46,614 - oe-selftest - INFO -   test_fs_types (wic.Wic) ... OK (13.656s)
2017-05-26 18:59:58,307 - oe-selftest - INFO -   test_gpt_image (wic.Wic) ... OK (11.693s)
2017-05-26 18:59:59,005 - oe-selftest - INFO -   test_help (wic.Wic) ... OK (0.697s)
2017-05-26 18:59:59,313 - oe-selftest - INFO -   test_help_create (wic.Wic) ... OK (0.308s)
2017-05-26 18:59:59,621 - oe-selftest - INFO -   test_help_kickstart (wic.Wic) ... OK (0.307s)
2017-05-26 19:00:00,058 - oe-selftest - INFO -   test_help_list (wic.Wic) ... OK (0.437s)
2017-05-26 19:00:00,453 - oe-selftest - INFO -   test_help_overview (wic.Wic) ... OK (0.394s)
2017-05-26 19:00:00,894 - oe-selftest - INFO -   test_help_plugins (wic.Wic) ... OK (0.440s)
2017-05-26 19:00:21,652 - oe-selftest - INFO -   test_image_bootpart_globbed (wic.Wic) ... OK (20.758s)
2017-05-26 19:00:39,034 - oe-selftest - INFO -   test_image_env (wic.Wic) ... OK (17.381s)
2017-05-26 19:00:40,304 - oe-selftest - INFO -   test_image_vars_dir_long (wic.Wic) ... OK (1.270s)
2017-05-26 19:00:41,482 - oe-selftest - INFO -   test_image_vars_dir_short (wic.Wic) ... OK (1.177s)
2017-05-26 19:07:02,600 - oe-selftest - INFO -   test_iso_image (wic.Wic) ... OK (381.118s)
2017-05-26 19:07:13,827 - oe-selftest - INFO -   test_kickstart_parser (wic.Wic) ... OK (11.227s)
2017-05-26 19:07:15,996 - oe-selftest - INFO -   test_list_images (wic.Wic) ... OK (2.168s)
2017-05-26 19:07:18,108 - oe-selftest - INFO -   test_list_source_plugins (wic.Wic) ... OK (2.111s)
2017-05-26 19:07:50,120 - oe-selftest - INFO -   test_listed_images_help (wic.Wic) ... OK (32.012s)
2017-05-26 19:07:50,559 - oe-selftest - INFO -   test_listhelp (wic.Wic) ... OK (0.438s)
2017-05-26 19:08:03,380 - oe-selftest - INFO -   test_mkefidisk (wic.Wic) ... OK (12.821s)
2017-05-26 19:08:03,832 - oe-selftest - INFO -   test_no_command (wic.Wic) ... OK (0.452s)

rootfs file: /home/ab/autobuilder/yocto-worker/nightly-oe-selftest/build/build/tmp/deploy/images/qemux86-64/wic-image-minimal-qemux86-64.wic
Qemu log file: /home/ab/autobuilder/yocto-worker/nightly-oe-selftest/build/build/tmp/work/qemux86_64-poky-linux/wic-image-minimal/1.0-r0/testimage/qemu_boot_log.20170527000913 SSH log file: /home/ab/autobuilder/yocto-worker/nightly-oe-selftest/build/build/tmp/work/qemux86_64-poky-linux/wic-image-minimal/1.0-r0/testimage/ssh_target_log.20170527000913 Using kvm for runqemu
Created listening socket for qemu serial console on: 127.0.0.1:42684
Created listening socket for qemu serial console on: 127.0.0.1:57473
launchcmd=runqemu snapshot kvm qemux86-64 /home/ab/autobuilder/yocto-worker/nightly-oe-selftest/build/build/tmp/deploy/images/qemux86-64/wic-image-minimal-qemux86-64.wic tcpserial=57473 bootparams="console=tty1 console=ttyS0,115200n8 printk.time=1" qemuparams="-serial tcp:127.0.0.1:42684"
runqemu started, pid is 21666
waiting at most 60 seconds for qemu pid
qemu started - qemu procces pid is 21686
Starting logging thread
Starting thread event loop
Connection request received
Setting connection established event
Output from runqemu:
runqemu - INFO - CONFFILE: /home/ab/autobuilder/yocto-worker/nightly-oe-selftest/build/build/tmp/deploy/images/qemux86-64/wic-image-minimal-qemux86-64.qemuboot.conf runqemu - INFO - Continuing with the following parameters:

stty: standard input: Inappropriate ioctl for device
runqemu - INFO - Running /bin/ip link...
runqemu - INFO - Acquiring lockfile /tmp/qemu-tap-locks/tap0.lock...
runqemu - INFO - Using preconfigured tap device tap0
runqemu - INFO - If this is not intended, touch /tmp/qemu-tap-locks/tap0.skip to make runqemu skip tap0.
runqemu - INFO - Network configuration: 192.168.7.2::192.168.7.1:255.255.255.0
runqemu - INFO - Using scsi drive
runqemu - INFO - Running ldd tmp/work/x86_64-linux/qemu-helper-native/1.0-r1/recipe-sysroot-native/usr/bin//qemu-system-x86_64...
runqemu - INFO - Running tmp/work/x86_64-linux/qemu-helper-native/1.0-r1/recipe-sysroot-native/usr/bin//qemu-system-x86_64 -device virtio-net-pci,netdev=net0,mac=52:54:00:12:34:02 -netdev tap,id=net0,ifname=tap0,script=no,downscript=no -drive if=none,id=hd,file=/home/ab/autobuilder/yocto-worker/nightly-oe-selftest/build/build/tmp/deploy/images/qemux86-64/wic-image-minimal-qemux86-64.wic,format=raw -device virtio-scsi-pci,id=scsi -device scsi-hd,drive=hd -no-reboot -vga vmware -show-cursor -usb -usbdevice tablet -device virtio-rng-pci -serial tcp:127.0.0.1:42684 -cpu kvm64 -enable-kvm -m 256 -serial tcp:127.0.0.1:57473 -snapshot

Waiting at most 1000 seconds for login banner
Connection from 127.0.0.1:34825
Reached login banner
Logged as root in serial console
Stopping logging thread
Stop event received
Tearing down logging thread
Sending SIGTERM to runqemu

2017-05-26 19:09:27,517 - oe-selftest - INFO -   test_qemu (wic.Wic) ... OK (83.684s)

WARNING: /home/ab/autobuilder/yocto-worker/nightly-oe-selftest/build/bitbake/lib/bb/data_smart.py:513: ResourceWarning: unclosed file <_io.TextIOWrapper name=41 mode='w' encoding='UTF-8'>
self.expand_cache = {}

WARNING: /home/ab/autobuilder/yocto-worker/nightly-oe-selftest/build/bitbake/lib/bb/data_smart.py:513: ResourceWarning: unclosed file <_io.TextIOWrapper name=41 mode='w' encoding='UTF-8'>
self.expand_cache = {}

rootfs file: /home/ab/autobuilder/yocto-worker/nightly-oe-selftest/build/build/tmp/deploy/images/qemux86-64/core-image-minimal-qemux86-64.wic
Qemu log file: /home/ab/autobuilder/yocto-worker/nightly-oe-selftest/build/build/tmp/work/qemux86_64-poky-linux/core-image-minimal/1.0-r0/testimage/qemu_boot_log.20170527001207
SSH log file: /home/ab/autobuilder/yocto-worker/nightly-oe-selftest/build/build/tmp/work/qemux86_64-poky-linux/core-image-minimal/1.0-r0/testimage/ssh_target_log.20170527001207
Using kvm for runqemu
Created listening socket for qemu serial console on: 127.0.0.1:43972
Created listening socket for qemu serial console on: 127.0.0.1:58733
launchcmd=runqemu snapshot ovmf kvm qemux86-64 /home/ab/autobuilder/yocto-worker/nightly-oe-selftest/build/build/tmp/deploy/images/qemux86-64/core-image-minimal-qemux86-64.wic tcpserial=58733 bootparams="console=tty1 console=ttyS0,115200n8 printk.time=1" qemuparams="-serial tcp:127.0.0.1:43972" runqemu started, pid is 16737
waiting at most 60 seconds for qemu pid
qemu started - qemu procces pid is 16757
Starting logging thread
Starting thread event loop
Connection request received
Setting connection established event
Output from runqemu:
runqemu - INFO - CONFFILE: /home/ab/autobuilder/yocto-worker/nightly-oe-selftest/build/build/tmp/deploy/images/qemux86-64/core-image-minimal-qemux86-64.qemuboot.conf
runqemu - INFO - Continuing with the following parameters:

stty: standard input: Inappropriate ioctl for device
runqemu - INFO - Running /bin/ip link...
runqemu - INFO - Acquiring lockfile /tmp/qemu-tap-locks/tap0.lock...
runqemu - INFO - Using preconfigured tap device tap0
runqemu - INFO - If this is not intended, touch /tmp/qemu-tap-locks/tap0.skip to make runqemu skip tap0.
runqemu - INFO - Network configuration: 192.168.7.2::192.168.7.1:255.255.255.0
runqemu - INFO - Using scsi drive
runqemu - INFO - Running ldd tmp/work/x86_64-linux/qemu-helper-native/1.0-r1/recipe-sysroot-native/usr/bin//qemu-system-x86_64...
runqemu - INFO - Running tmp/work/x86_64-linux/qemu-helper-native/1.0-r1/recipe-sysroot-native/usr/bin//qemu-system-x86_64 -device virtio-net-pci,netdev=net0,mac=52:54:00:12:34:02 -netdev tap,id=net0,ifname=tap0,script=no,downscript=no -drive if=none,id=hd,file=/home/ab/autobuilder/yocto-worker/nightly-oe-selftest/build/build/tmp/deploy/images/qemux86-64/core-image-minimal-qemux86-64.wic,format=raw -device virtio-scsi-pci,id=scsi -device scsi-hd,drive=hd -no-reboot -vga vmware -show-cursor -usb -usbdevice tablet -device virtio-rng-pci -drive if=pflash,format=qcow2,file=tmp/deploy/images/qemux86-64/ovmf.qcow2 -vga std -serial tcp:127.0.0.1:43972 -cpu kvm64 -enable-kvm -m 256 -serial tcp:127.0.0.1:58733 -snapshot

Waiting at most 1000 seconds for login banner
Connection from 127.0.0.1:43742
Reached login banner
Logged as root in serial console
Stopping logging thread
Stop event received
Tearing down logging thread
Sending SIGTERM to runqemu

2017-05-26 19:12:39,657 - oe-selftest - INFO -   test_qemu_efi (wic.Wic) ... OK (192.139s)
2017-05-26 19:12:50,531 - oe-selftest - INFO -   test_qemux86_directdisk (wic.Wic) ... OK (10.874s)
2017-05-26 19:13:04,103 - oe-selftest - INFO -   test_rawcopy_plugin (wic.Wic) ... OK (13.571s)

rootfs file: /home/ab/autobuilder/yocto-worker/nightly-oe-selftest/build/build/tmp/deploy/images/qemux86-64/core-image-minimal-qemux86-64.wic
Qemu log file: /home/ab/autobuilder/yocto-worker/nightly-oe-selftest/build/build/tmp/work/qemux86_64-poky-linux/core-image-minimal/1.0-r0/testimage/qemu_boot_log.20170527001448 SSH log file: /home/ab/autobuilder/yocto-worker/nightly-oe-selftest/build/build/tmp/work/qemux86_64-poky-linux/core-image-minimal/1.0-r0/testimage/ssh_target_log.20170527001448 Using kvm for runqemu
Created listening socket for qemu serial console on: 127.0.0.1:51228
Created listening socket for qemu serial console on: 127.0.0.1:55547
launchcmd=runqemu snapshot kvm qemux86-64 /home/ab/autobuilder/yocto-worker/nightly-oe-selftest/build/build/tmp/deploy/images/qemux86-64/core-image-minimal-qemux86-64.wic tcpserial=55547 bootparams="console=tty1 console=ttyS0,115200n8 printk.time=1" qemuparams="-serial tcp:127.0.0.1:51228"
runqemu started, pid is 29832
waiting at most 60 seconds for qemu pid
qemu started - qemu procces pid is 29852
Starting logging thread
Starting thread event loop
Connection request received
Setting connection established event
Output from runqemu:
runqemu - INFO - CONFFILE: /home/ab/autobuilder/yocto-worker/nightly-oe-selftest/build/build/tmp/deploy/images/qemux86-64/core-image-minimal-qemux86-64.qemuboot.conf runqemu - INFO - Continuing with the following parameters:

stty: standard input: Inappropriate ioctl for device
runqemu - INFO - Running /bin/ip link...
runqemu - INFO - Acquiring lockfile /tmp/qemu-tap-locks/tap0.lock...
runqemu - INFO - Using preconfigured tap device tap0
runqemu - INFO - If this is not intended, touch /tmp/qemu-tap-locks/tap0.skip to make runqemu skip tap0.
runqemu - INFO - Network configuration: 192.168.7.2::192.168.7.1:255.255.255.0
runqemu - INFO - Using scsi drive
runqemu - INFO - Running ldd tmp/work/x86_64-linux/qemu-helper-native/1.0-r1/recipe-sysroot-native/usr/bin//qemu-system-x86_64...
runqemu - INFO - Running tmp/work/x86_64-linux/qemu-helper-native/1.0-r1/recipe-sysroot-native/usr/bin//qemu-system-x86_64 -device virtio-net-pci,netdev=net0,mac=52:54:00:12:34:02 -netdev tap,id=net0,ifname=tap0,script=no,downscript=no -drive if=none,id=hd,file=/home/ab/autobuilder/yocto-worker/nightly-oe-selftest/build/build/tmp/deploy/images/qemux86-64/core-image-minimal-qemux86-64.wic,format=raw -device virtio-scsi-pci,id=scsi -device scsi-hd,drive=hd -no-reboot -vga vmware -show-cursor -usb -usbdevice tablet -device virtio-rng-pci -serial tcp:127.0.0.1:51228 -cpu kvm64 -enable-kvm -m 256 -serial tcp:127.0.0.1:55547 -snapshot

Waiting at most 1000 seconds for login banner
Connection from 127.0.0.1:37063
Reached login banner
Logged as root in serial console
Stopping logging thread
Stop event received
Tearing down logging thread
Sending SIGTERM to runqemu

2017-05-26 19:15:00,712 - oe-selftest - INFO -   test_rawcopy_plugin_qemu (wic.Wic) ... OK (116.609s)
2017-05-26 19:15:17,735 - oe-selftest - INFO -   test_rootfs_artifacts (wic.Wic) ... OK (17.022s)
2017-05-26 19:15:27,748 - oe-selftest - INFO -   test_rootfs_indirect_recipes (wic.Wic) ... OK (10.012s)
2017-05-26 19:15:48,396 - oe-selftest - INFO -   test_sdimage_bootpart (wic.Wic) ... OK (20.648s)
2017-05-26 19:15:57,938 - oe-selftest - INFO -   test_skip_build_check_long (wic.Wic) ... OK (9.542s)
2017-05-26 19:16:07,210 - oe-selftest - INFO -   test_skip_build_check_short (wic.Wic) ... OK (9.271s)
2017-05-26 19:16:08,997 - oe-selftest - INFO -   test_sparse_copy (wic.Wic) ... OK (1.787s)
2017-05-26 19:17:13,666 - oe-selftest - INFO -   test_systemd_bootdisk (wic.Wic) ... OK (64.669s)
2017-05-26 19:17:14,111 - oe-selftest - INFO -   test_unsupported_subcommand (wic.Wic) ... OK (0.444s)
2017-05-26 19:17:14,499 - oe-selftest - INFO -   test_version (wic.Wic) ... OK (0.388s)
2017-05-26 19:17:25,863 - oe-selftest - INFO -   test_wic_image_type (wic.Wic) ... OK (11.363s)
2017-05-26 19:17:26,316 - oe-selftest - INFO -   test_wrong_compressor (wic.Wic) ... OK (0.452s)
2017-05-26 19:24:06,484 - oe-selftest - INFO -   test_efi_systemdboot_images_can_be_built (systemd_boot.Systemdboot) ... OK (400.166s)
2017-05-26 19:24:06,485 - oe-selftest - INFO - 
2017-05-26 19:24:06,485 - oe-selftest - INFO - ----------------------------------------------------------------------
2017-05-26 19:24:06,485 - oe-selftest - INFO - Ran 282 tests in 21370.974s
2017-05-26 19:24:06,485 - oe-selftest - INFO - 
2017-05-26 19:24:06,485 - oe-selftest - INFO - OK
2017-05-26 19:24:06,485 - oe-selftest - INFO - 
2017-05-26 19:24:06,486 - oe-selftest - INFO - Generating XML reports...
2017-05-26 19:24:06,896 - oe-selftest - INFO - SUMMARY:
2017-05-26 19:24:06,896 - oe-selftest - INFO - oe-selftest () - Ran 282 tests in 21371.387s
2017-05-26 19:24:06,896 - oe-selftest - INFO - oe-selftest - OK - All required tests passed
2017-05-26 19:24:06,896 - oe-selftest - INFO - RESULTS:
2017-05-26 19:24:06,897 - oe-selftest - INFO - RESULTS - archiver.Archiver.test_archiver_allows_to_filter_on_recipe_name - Testcase 1345: PASSED
2017-05-26 19:24:06,897 - oe-selftest - INFO - RESULTS - bblayers.BitbakeLayers.test_bitbakelayers_add_remove - Testcase 1195: PASSED
2017-05-26 19:24:06,897 - oe-selftest - INFO - RESULTS - bblayers.BitbakeLayers.test_bitbakelayers_flatten - Testcase 95: PASSED
2017-05-26 19:24:06,897 - oe-selftest - INFO - RESULTS - bblayers.BitbakeLayers.test_bitbakelayers_showappends - Testcase 93: PASSED
2017-05-26 19:24:06,897 - oe-selftest - INFO - RESULTS - bblayers.BitbakeLayers.test_bitbakelayers_showcrossdepends - Testcase 756: PASSED
2017-05-26 19:24:06,897 - oe-selftest - INFO - RESULTS - bblayers.BitbakeLayers.test_bitbakelayers_showlayers - Testcase 83: PASSED
2017-05-26 19:24:06,897 - oe-selftest - INFO - RESULTS - bblayers.BitbakeLayers.test_bitbakelayers_showoverlayed - Testcase 90: PASSED
2017-05-26 19:24:06,897 - oe-selftest - INFO - RESULTS - bblayers.BitbakeLayers.test_bitbakelayers_showrecipes - Testcase 1384: PASSED
2017-05-26 19:24:06,898 - oe-selftest - INFO - RESULTS - bbtests.BitbakeTests.test_bbappend_order - Testcase 1425: PASSED
2017-05-26 19:24:06,898 - oe-selftest - INFO - RESULTS - bbtests.BitbakeTests.test_bitbake_g - Testcase 167: PASSED
2017-05-26 19:24:06,898 - oe-selftest - INFO - RESULTS - bbtests.BitbakeTests.test_bitbake_invalid_recipe - Testcase 105: PASSED
2017-05-26 19:24:06,898 - oe-selftest - INFO - RESULTS - bbtests.BitbakeTests.test_bitbake_invalid_target - Testcase 107: PASSED
2017-05-26 19:24:06,898 - oe-selftest - INFO - RESULTS - bbtests.BitbakeTests.test_checkuri - Testcase 1034: PASSED
2017-05-26 19:24:06,898 - oe-selftest - INFO - RESULTS - bbtests.BitbakeTests.test_continue - Testcase 1035: PASSED
2017-05-26 19:24:06,898 - oe-selftest - INFO - RESULTS - bbtests.BitbakeTests.test_dry_run - Testcase 1029: PASSED
2017-05-26 19:24:06,898 - oe-selftest - INFO - RESULTS - bbtests.BitbakeTests.test_environment - Testcase 1028: PASSED
2017-05-26 19:24:06,899 - oe-selftest - INFO - RESULTS - bbtests.BitbakeTests.test_event_handler - Testcase 806: PASSED
2017-05-26 19:24:06,899 - oe-selftest - INFO - RESULTS - bbtests.BitbakeTests.test_force_task_1 - Testcase 1354: PASSED
2017-05-26 19:24:06,899 - oe-selftest - INFO - RESULTS - bbtests.BitbakeTests.test_force_task_2 - Testcase 163: PASSED
2017-05-26 19:24:06,899 - oe-selftest - INFO - RESULTS - bbtests.BitbakeTests.test_image_manifest - Testcase 899: PASSED
2017-05-26 19:24:06,899 - oe-selftest - INFO - RESULTS - bbtests.BitbakeTests.test_invalid_patch - Testcase 108: PASSED
2017-05-26 19:24:06,899 - oe-selftest - INFO - RESULTS - bbtests.BitbakeTests.test_invalid_recipe_src_uri - Testcase 168: PASSED
2017-05-26 19:24:06,899 - oe-selftest - INFO - RESULTS - bbtests.BitbakeTests.test_just_parse - Testcase 1030: PASSED
2017-05-26 19:24:06,899 - oe-selftest - INFO - RESULTS - bbtests.BitbakeTests.test_local_sstate - Testcase 103: PASSED
2017-05-26 19:24:06,899 - oe-selftest - INFO - RESULTS - bbtests.BitbakeTests.test_non_gplv3 - Testcase 1119: PASSED
2017-05-26 19:24:06,900 - oe-selftest - INFO - RESULTS - bbtests.BitbakeTests.test_postfile - Testcase 1033: PASSED
2017-05-26 19:24:06,900 - oe-selftest - INFO - RESULTS - bbtests.BitbakeTests.test_prefile - Testcase 1032: PASSED
2017-05-26 19:24:06,900 - oe-selftest - INFO - RESULTS - bbtests.BitbakeTests.test_rename_downloaded_file - Testcase 171: PASSED
2017-05-26 19:24:06,900 - oe-selftest - INFO - RESULTS - bbtests.BitbakeTests.test_run_bitbake_from_dir_1 - Testcase 789: PASSED
2017-05-26 19:24:06,900 - oe-selftest - INFO - RESULTS - bbtests.BitbakeTests.test_run_bitbake_from_dir_2 - Testcase 790: PASSED
2017-05-26 19:24:06,900 - oe-selftest - INFO - RESULTS - bbtests.BitbakeTests.test_setscene_only - Testcase 1422: PASSED
2017-05-26 19:24:06,900 - oe-selftest - INFO - RESULTS - bbtests.BitbakeTests.test_version - Testcase 1031: PASSED
2017-05-26 19:24:06,900 - oe-selftest - INFO - RESULTS - bbtests.BitbakeTests.test_warnings_errors - Testcase 106: PASSED
2017-05-26 19:24:06,901 - oe-selftest - INFO - RESULTS - buildoptions.ArchiverTest.test_arch_work_dir_and_export_source - Testcase 926: PASSED
2017-05-26 19:24:06,901 - oe-selftest - INFO - RESULTS - buildoptions.BuildhistoryTests.test_buildhistory_basic - Testcase 293: PASSED
2017-05-26 19:24:06,901 - oe-selftest - INFO - RESULTS - buildoptions.BuildhistoryTests.test_buildhistory_buildtime_pr_backwards - Testcase 294: PASSED
2017-05-26 19:24:06,901 - oe-selftest - INFO - RESULTS - buildoptions.DiskMonTest.test_stoptask_behavior - Testcase 277: PASSED
2017-05-26 19:24:06,901 - oe-selftest - INFO - RESULTS - buildoptions.ImageOptionsTests.test_ccache_tool - Testcase 286: PASSED
2017-05-26 19:24:06,901 - oe-selftest - INFO - RESULTS - buildoptions.ImageOptionsTests.test_incremental_image_generation - Testcase 761: PASSED
2017-05-26 19:24:06,901 - oe-selftest - INFO - RESULTS - buildoptions.ImageOptionsTests.test_read_only_image - Testcase 1435: PASSED
2017-05-26 19:24:06,901 - oe-selftest - INFO - RESULTS - buildoptions.SanityOptionsTest.test_layer_without_git_dir - Testcase 1421: PASSED
2017-05-26 19:24:06,901 - oe-selftest - INFO - RESULTS - buildoptions.SanityOptionsTest.test_options_warnqa_errorqa_switch - Testcase 927: PASSED
2017-05-26 19:24:06,902 - oe-selftest - INFO - RESULTS - buildoptions.SanityOptionsTest.test_sanity_unsafe_script_references - Testcase 278: PASSED
2017-05-26 19:24:06,902 - oe-selftest - INFO - RESULTS - containerimage.ContainerImageTests.test_expected_files - Testcase -1: PASSED
2017-05-26 19:24:06,902 - oe-selftest - INFO - RESULTS - devtool.DevtoolTests.test_create_workspace - Testcase 1158: PASSED
2017-05-26 19:24:06,902 - oe-selftest - INFO - RESULTS - devtool.DevtoolTests.test_devtool_add - Testcase 1159: PASSED
2017-05-26 19:24:06,902 - oe-selftest - INFO - RESULTS - devtool.DevtoolTests.test_devtool_add_fetch - Testcase 1160: PASSED
2017-05-26 19:24:06,902 - oe-selftest - INFO - RESULTS - devtool.DevtoolTests.test_devtool_add_fetch_git - Testcase 1161: PASSED
2017-05-26 19:24:06,902 - oe-selftest - INFO - RESULTS - devtool.DevtoolTests.test_devtool_add_fetch_simple - Testcase 1391: PASSED
2017-05-26 19:24:06,902 - oe-selftest - INFO - RESULTS - devtool.DevtoolTests.test_devtool_add_git_local - Testcase 1423: PASSED
2017-05-26 19:24:06,903 - oe-selftest - INFO - RESULTS - devtool.DevtoolTests.test_devtool_add_library - Testcase 1162: PASSED
2017-05-26 19:24:06,903 - oe-selftest - INFO - RESULTS - devtool.DevtoolTests.test_devtool_build_image - Testcase 1366: PASSED
2017-05-26 19:24:06,903 - oe-selftest - INFO - RESULTS - devtool.DevtoolTests.test_devtool_buildclean - Testcase -1: PASSED
2017-05-26 19:24:06,903 - oe-selftest - INFO - RESULTS - devtool.DevtoolTests.test_devtool_deploy_target - Testcase 1272: PASSED
2017-05-26 19:24:06,903 - oe-selftest - INFO - RESULTS - devtool.DevtoolTests.test_devtool_extract - Testcase 1163: PASSED
2017-05-26 19:24:06,903 - oe-selftest - INFO - RESULTS - devtool.DevtoolTests.test_devtool_extract_virtual - Testcase 1379: PASSED
2017-05-26 19:24:06,903 - oe-selftest - INFO - RESULTS - devtool.DevtoolTests.test_devtool_finish_modify_origlayer - Testcase -1: PASSED
2017-05-26 19:24:06,903 - oe-selftest - INFO - RESULTS - devtool.DevtoolTests.test_devtool_finish_modify_otherlayer - Testcase -1: PASSED
2017-05-26 19:24:06,904 - oe-selftest - INFO - RESULTS - devtool.DevtoolTests.test_devtool_finish_upgrade_origlayer - Testcase -1: PASSED
2017-05-26 19:24:06,904 - oe-selftest - INFO - RESULTS - devtool.DevtoolTests.test_devtool_finish_upgrade_otherlayer - Testcase -1: PASSED
2017-05-26 19:24:06,904 - oe-selftest - INFO - RESULTS - devtool.DevtoolTests.test_devtool_layer_plugins - Testcase 1352: PASSED
2017-05-26 19:24:06,904 - oe-selftest - INFO - RESULTS - devtool.DevtoolTests.test_devtool_load_plugin - Testcase -1: PASSED
2017-05-26 19:24:06,904 - oe-selftest - INFO - RESULTS - devtool.DevtoolTests.test_devtool_modify - Testcase 1164: PASSED
2017-05-26 19:24:06,904 - oe-selftest - INFO - RESULTS - devtool.DevtoolTests.test_devtool_modify_git - Testcase 1165: PASSED
2017-05-26 19:24:06,904 - oe-selftest - INFO - RESULTS - devtool.DevtoolTests.test_devtool_modify_invalid - Testcase 1166: PASSED
2017-05-26 19:24:06,904 - oe-selftest - INFO - RESULTS - devtool.DevtoolTests.test_devtool_modify_localfiles - Testcase 1167: PASSED
2017-05-26 19:24:06,904 - oe-selftest - INFO - RESULTS - devtool.DevtoolTests.test_devtool_modify_native - Testcase 1365: PASSED
2017-05-26 19:24:06,905 - oe-selftest - INFO - RESULTS - devtool.DevtoolTests.test_devtool_modify_virtual - Testcase 1378: PASSED
2017-05-26 19:24:06,905 - oe-selftest - INFO - RESULTS - devtool.DevtoolTests.test_devtool_rename - Testcase -1: PASSED
2017-05-26 19:24:06,905 - oe-selftest - INFO - RESULTS - devtool.DevtoolTests.test_devtool_reset_all - Testcase 1168: PASSED
2017-05-26 19:24:06,905 - oe-selftest - INFO - RESULTS - devtool.DevtoolTests.test_devtool_update_recipe - Testcase 1169: PASSED
2017-05-26 19:24:06,905 - oe-selftest - INFO - RESULTS - devtool.DevtoolTests.test_devtool_update_recipe_append - Testcase 1170: PASSED
2017-05-26 19:24:06,905 - oe-selftest - INFO - RESULTS - devtool.DevtoolTests.test_devtool_update_recipe_append_git - Testcase 1171: PASSED
2017-05-26 19:24:06,905 - oe-selftest - INFO - RESULTS - devtool.DevtoolTests.test_devtool_update_recipe_git - Testcase 1172: PASSED
2017-05-26 19:24:06,905 - oe-selftest - INFO - RESULTS - devtool.DevtoolTests.test_devtool_update_recipe_local_files - Testcase 1370: PASSED
2017-05-26 19:24:06,905 - oe-selftest - INFO - RESULTS - devtool.DevtoolTests.test_devtool_update_recipe_local_files_2 - Testcase 1371: PASSED
2017-05-26 19:24:06,905 - oe-selftest - INFO - RESULTS - devtool.DevtoolTests.test_devtool_update_recipe_local_files_3 - Testcase -1: PASSED
2017-05-26 19:24:06,906 - oe-selftest - INFO - RESULTS - devtool.DevtoolTests.test_devtool_update_recipe_local_files_subdir - Testcase -1: PASSED
2017-05-26 19:24:06,906 - oe-selftest - INFO - RESULTS - devtool.DevtoolTests.test_devtool_update_recipe_local_patch_gz - Testcase -1: PASSED
2017-05-26 19:24:06,906 - oe-selftest - INFO - RESULTS - devtool.DevtoolTests.test_devtool_upgrade - Testcase 1367: PASSED
2017-05-26 19:24:06,906 - oe-selftest - INFO - RESULTS - devtool.DevtoolTests.test_devtool_upgrade_git - Testcase 1433: PASSED
2017-05-26 19:24:06,906 - oe-selftest - INFO - RESULTS - devtool.DevtoolTests.test_devtool_virtual_kernel_modify - Testcase 1577: PASSED
2017-05-26 19:24:06,906 - oe-selftest - INFO - RESULTS - eSDK.oeSDKExtSelfTest.test_image_generation_binary_feeds - Testcase 1603: PASSED
2017-05-26 19:24:06,906 - oe-selftest - INFO - RESULTS - eSDK.oeSDKExtSelfTest.test_install_libraries_headers - Testcase 1602: PASSED
2017-05-26 19:24:06,906 - oe-selftest - INFO - RESULTS - image_typedep.ImageTypeDepTests.test_conversion_typedep_added - Testcase -1: PASSED
2017-05-26 19:24:06,907 - oe-selftest - INFO - RESULTS - imagefeatures.ImageFeatures.test_all_users_can_connect_via_ssh_without_password - Testcase 1115: PASSED
2017-05-26 19:24:06,907 - oe-selftest - INFO - RESULTS - imagefeatures.ImageFeatures.test_bmap - Testcase -1: PASSED
2017-05-26 19:24:06,907 - oe-selftest - INFO - RESULTS - imagefeatures.ImageFeatures.test_clutter_image_can_be_built - Testcase 1116: PASSED
2017-05-26 19:24:06,907 - oe-selftest - INFO - RESULTS - imagefeatures.ImageFeatures.test_non_root_user_can_connect_via_ssh_without_password - Testcase 1107: PASSED
2017-05-26 19:24:06,907 - oe-selftest - INFO - RESULTS - imagefeatures.ImageFeatures.test_wayland_support_in_image - Testcase 1117: PASSED
2017-05-26 19:24:06,907 - oe-selftest - INFO - RESULTS - layerappend.LayerAppendTests.test_layer_appends - Testcase 1196: PASSED
2017-05-26 19:24:06,907 - oe-selftest - INFO - RESULTS - liboe.LibOE.test_copy_hardlink_tree_count - Testcase -1: PASSED
2017-05-26 19:24:06,907 - oe-selftest - INFO - RESULTS - liboe.LibOE.test_copy_tree_special - Testcase -1: PASSED
2017-05-26 19:24:06,907 - oe-selftest - INFO - RESULTS - liboe.LibOE.test_copy_tree_xattr - Testcase -1: PASSED
2017-05-26 19:24:06,908 - oe-selftest - INFO - RESULTS - lic_checksum.LicenseTests.test_nonmatching_checksum - Testcase 1197: PASSED
2017-05-26 19:24:06,908 - oe-selftest - INFO - RESULTS - manifest.VerifyManifest.test_SDK_manifest_entries - Testcase 1380: PASSED
2017-05-26 19:24:06,908 - oe-selftest - INFO - RESULTS - manifest.VerifyManifest.test_image_manifest_entries - Testcase 1381: PASSED
2017-05-26 19:24:06,908 - oe-selftest - INFO - RESULTS - oelib.buildhistory.TestBlobParsing.test_blob_to_dict - Testcase -1: PASSED
2017-05-26 19:24:06,908 - oe-selftest - INFO - RESULTS - oelib.buildhistory.TestBlobParsing.test_compare_dict_blobs - Testcase -1: PASSED
2017-05-26 19:24:06,908 - oe-selftest - INFO - RESULTS - oelib.buildhistory.TestBlobParsing.test_compare_dict_blobs_default - Testcase -1: PASSED
2017-05-26 19:24:06,908 - oe-selftest - INFO - RESULTS - oelib.elf.TestElf.test_machine_name - Testcase -1: PASSED
2017-05-26 19:24:06,908 - oe-selftest - INFO - RESULTS - oelib.license.TestComplexCombinations.test_tests - Testcase -1: PASSED
2017-05-26 19:24:06,908 - oe-selftest - INFO - RESULTS - oelib.license.TestSimpleCombinations.test_tests - Testcase -1: PASSED
2017-05-26 19:24:06,909 - oe-selftest - INFO - RESULTS - oelib.license.TestSingleLicense.test_invalid_licenses - Testcase -1: PASSED
2017-05-26 19:24:06,909 - oe-selftest - INFO - RESULTS - oelib.license.TestSingleLicense.test_single_licenses - Testcase -1: PASSED
2017-05-26 19:24:06,909 - oe-selftest - INFO - RESULTS - oelib.path.TestRealPath.test_loop - Testcase -1: PASSED
2017-05-26 19:24:06,909 - oe-selftest - INFO - RESULTS - oelib.path.TestRealPath.test_norm - Testcase -1: PASSED
2017-05-26 19:24:06,909 - oe-selftest - INFO - RESULTS - oelib.path.TestRealPath.test_phys - Testcase -1: PASSED
2017-05-26 19:24:06,909 - oe-selftest - INFO - RESULTS - oelib.types.TestBooleanType.test_bool_equality - Testcase -1: PASSED
2017-05-26 19:24:06,909 - oe-selftest - INFO - RESULTS - oelib.types.TestBooleanType.test_false - Testcase -1: PASSED
2017-05-26 19:24:06,909 - oe-selftest - INFO - RESULTS - oelib.types.TestBooleanType.test_invalid - Testcase -1: PASSED
2017-05-26 19:24:06,909 - oe-selftest - INFO - RESULTS - oelib.types.TestBooleanType.test_true - Testcase -1: PASSED
2017-05-26 19:24:06,910 - oe-selftest - INFO - RESULTS - oelib.types.TestList.test_list_nosep - Testcase -1: PASSED
2017-05-26 19:24:06,910 - oe-selftest - INFO - RESULTS - oelib.types.TestList.test_list_usersep - Testcase -1: PASSED
2017-05-26 19:24:06,910 - oe-selftest - INFO - RESULTS - oelib.utils.TestPackagesFilterOutSystem.test_filter - Testcase -1: PASSED
2017-05-26 19:24:06,910 - oe-selftest - INFO - RESULTS - oelib.utils.TestTrimVersion.test_num_exception - Testcase -1: PASSED
2017-05-26 19:24:06,910 - oe-selftest - INFO - RESULTS - oelib.utils.TestTrimVersion.test_valid - Testcase -1: PASSED
2017-05-26 19:24:06,910 - oe-selftest - INFO - RESULTS - oelib.utils.TestTrimVersion.test_version_exception - Testcase -1: PASSED
2017-05-26 19:24:06,910 - oe-selftest - INFO - RESULTS - oescripts.BuildhistoryDiffTests.test_buildhistory_diff - Testcase 295: PASSED
2017-05-26 19:24:06,910 - oe-selftest - INFO - RESULTS - package.VersionOrdering.test_dpkg - Testcase -1: PASSED
2017-05-26 19:24:06,911 - oe-selftest - INFO - RESULTS - package.VersionOrdering.test_opkg - Testcase -1: PASSED
2017-05-26 19:24:06,911 - oe-selftest - INFO - RESULTS - package.VersionOrdering.test_rpm - Testcase -1: PASSED
2017-05-26 19:24:06,911 - oe-selftest - INFO - RESULTS - pkgdata.OePkgdataUtilTests.test_find_path - Testcase 1198: PASSED
2017-05-26 19:24:06,911 - oe-selftest - INFO - RESULTS - pkgdata.OePkgdataUtilTests.test_glob - Testcase 1200: PASSED
2017-05-26 19:24:06,911 - oe-selftest - INFO - RESULTS - pkgdata.OePkgdataUtilTests.test_list_pkg_files - Testcase 1201: PASSED
2017-05-26 19:24:06,911 - oe-selftest - INFO - RESULTS - pkgdata.OePkgdataUtilTests.test_list_pkgs - Testcase 1202: PASSED
2017-05-26 19:24:06,911 - oe-selftest - INFO - RESULTS - pkgdata.OePkgdataUtilTests.test_lookup_pkg - Testcase 1203: PASSED
2017-05-26 19:24:06,911 - oe-selftest - INFO - RESULTS - pkgdata.OePkgdataUtilTests.test_lookup_recipe - Testcase 1204: PASSED
2017-05-26 19:24:06,911 - oe-selftest - INFO - RESULTS - pkgdata.OePkgdataUtilTests.test_read_value - Testcase 1205: PASSED
2017-05-26 19:24:06,912 - oe-selftest - INFO - RESULTS - pkgdata.OePkgdataUtilTests.test_specify_pkgdatadir - Testcase 1206: PASSED
2017-05-26 19:24:06,912 - oe-selftest - INFO - RESULTS - prservice.BitbakePrTests.test_import_export_override_db - Testcase 931: PASSED
2017-05-26 19:24:06,912 - oe-selftest - INFO - RESULTS - prservice.BitbakePrTests.test_import_export_replace_db - Testcase 930: PASSED
2017-05-26 19:24:06,912 - oe-selftest - INFO - RESULTS - prservice.BitbakePrTests.test_pr_service_deb_arch_dep - Testcase 934: PASSED
2017-05-26 19:24:06,912 - oe-selftest - INFO - RESULTS - prservice.BitbakePrTests.test_pr_service_deb_arch_indep - Testcase 937: PASSED
2017-05-26 19:24:06,912 - oe-selftest - INFO - RESULTS - prservice.BitbakePrTests.test_pr_service_ipk_arch_dep - Testcase 933: PASSED
2017-05-26 19:24:06,912 - oe-selftest - INFO - RESULTS - prservice.BitbakePrTests.test_pr_service_ipk_arch_indep - Testcase 936: PASSED
2017-05-26 19:24:06,912 - oe-selftest - INFO - RESULTS - prservice.BitbakePrTests.test_pr_service_rpm_arch_dep - Testcase 932: PASSED
2017-05-26 19:24:06,912 - oe-selftest - INFO - RESULTS - prservice.BitbakePrTests.test_pr_service_rpm_arch_indep - Testcase 935: PASSED
2017-05-26 19:24:06,913 - oe-selftest - INFO - RESULTS - prservice.BitbakePrTests.test_stopping_prservice_message - Testcase 1419: PASSED
2017-05-26 19:24:06,913 - oe-selftest - INFO - RESULTS - recipetool.RecipetoolAppendsrcTests.test_recipetool_appendsrcfile_basic - Testcase 1273: PASSED
2017-05-26 19:24:06,913 - oe-selftest - INFO - RESULTS - recipetool.RecipetoolAppendsrcTests.test_recipetool_appendsrcfile_basic_wildcard - Testcase 1274: PASSED
2017-05-26 19:24:06,913 - oe-selftest - INFO - RESULTS - recipetool.RecipetoolAppendsrcTests.test_recipetool_appendsrcfile_existing_in_src_uri - Testcase 1275: PASSED
2017-05-26 19:24:06,913 - oe-selftest - INFO - RESULTS - recipetool.RecipetoolAppendsrcTests.test_recipetool_appendsrcfile_existing_in_src_uri_diff_params - Testcase 1276: PASSED
2017-05-26 19:24:06,913 - oe-selftest - INFO - RESULTS - recipetool.RecipetoolAppendsrcTests.test_recipetool_appendsrcfile_replace_file_srcdir - Testcase 1277: PASSED
2017-05-26 19:24:06,913 - oe-selftest - INFO - RESULTS - recipetool.RecipetoolAppendsrcTests.test_recipetool_appendsrcfile_srcdir_basic - Testcase 1280: PASSED
2017-05-26 19:24:06,913 - oe-selftest - INFO - RESULTS - recipetool.RecipetoolAppendsrcTests.test_recipetool_appendsrcfile_subdir_basic - Testcase 1281: PASSED
2017-05-26 19:24:06,913 - oe-selftest - INFO - RESULTS - recipetool.RecipetoolAppendsrcTests.test_recipetool_appendsrcfile_subdir_basic_dirdest - Testcase 1282: PASSED
2017-05-26 19:24:06,914 - oe-selftest - INFO - RESULTS - recipetool.RecipetoolAppendsrcTests.test_recipetool_appendsrcfiles_basic - Testcase 1278: PASSED
2017-05-26 19:24:06,914 - oe-selftest - INFO - RESULTS - recipetool.RecipetoolAppendsrcTests.test_recipetool_appendsrcfiles_basic_subdir - Testcase 1279: PASSED
2017-05-26 19:24:06,914 - oe-selftest - INFO - RESULTS - recipetool.RecipetoolTests.test_recipetool_appendfile_add - Testcase 1173: PASSED
2017-05-26 19:24:06,914 - oe-selftest - INFO - RESULTS - recipetool.RecipetoolTests.test_recipetool_appendfile_add_bindir - Testcase 1174: PASSED
2017-05-26 19:24:06,914 - oe-selftest - INFO - RESULTS - recipetool.RecipetoolTests.test_recipetool_appendfile_add_machine - Testcase 1175: PASSED
2017-05-26 19:24:06,914 - oe-selftest - INFO - RESULTS - recipetool.RecipetoolTests.test_recipetool_appendfile_alternatives - Testcase 1176: PASSED
2017-05-26 19:24:06,914 - oe-selftest - INFO - RESULTS - recipetool.RecipetoolTests.test_recipetool_appendfile_basic - Testcase 1177: PASSED
2017-05-26 19:24:06,914 - oe-selftest - INFO - RESULTS - recipetool.RecipetoolTests.test_recipetool_appendfile_binary - Testcase 1178: PASSED
2017-05-26 19:24:06,914 - oe-selftest - INFO - RESULTS - recipetool.RecipetoolTests.test_recipetool_appendfile_extlayer - Testcase 1179: PASSED
2017-05-26 19:24:06,915 - oe-selftest - INFO - RESULTS - recipetool.RecipetoolTests.test_recipetool_appendfile_inst_func - Testcase 1180: PASSED
2017-05-26 19:24:06,915 - oe-selftest - INFO - RESULTS - recipetool.RecipetoolTests.test_recipetool_appendfile_inst_glob - Testcase 1181: PASSED
2017-05-26 19:24:06,915 - oe-selftest - INFO - RESULTS - recipetool.RecipetoolTests.test_recipetool_appendfile_inst_todir_glob - Testcase 1182: PASSED
2017-05-26 19:24:06,915 - oe-selftest - INFO - RESULTS - recipetool.RecipetoolTests.test_recipetool_appendfile_invalid - Testcase 1183: PASSED
2017-05-26 19:24:06,915 - oe-selftest - INFO - RESULTS - recipetool.RecipetoolTests.test_recipetool_appendfile_orig - Testcase 1184: PASSED
2017-05-26 19:24:06,915 - oe-selftest - INFO - RESULTS - recipetool.RecipetoolTests.test_recipetool_appendfile_patch - Testcase 1185: PASSED
2017-05-26 19:24:06,915 - oe-selftest - INFO - RESULTS - recipetool.RecipetoolTests.test_recipetool_appendfile_postinstall - Testcase 1186: PASSED
2017-05-26 19:24:06,915 - oe-selftest - INFO - RESULTS - recipetool.RecipetoolTests.test_recipetool_appendfile_renamed - Testcase 1187: PASSED
2017-05-26 19:24:06,915 - oe-selftest - INFO - RESULTS - recipetool.RecipetoolTests.test_recipetool_appendfile_script - Testcase 1188: PASSED
2017-05-26 19:24:06,916 - oe-selftest - INFO - RESULTS - recipetool.RecipetoolTests.test_recipetool_appendfile_src_glob - Testcase 1189: PASSED
2017-05-26 19:24:06,916 - oe-selftest - INFO - RESULTS - recipetool.RecipetoolTests.test_recipetool_appendfile_subdir - Testcase 1190: PASSED
2017-05-26 19:24:06,916 - oe-selftest - INFO - RESULTS - recipetool.RecipetoolTests.test_recipetool_appendfile_todir - Testcase 1191: PASSED
2017-05-26 19:24:06,916 - oe-selftest - INFO - RESULTS - recipetool.RecipetoolTests.test_recipetool_appendfile_wildcard - Testcase 1192: PASSED
2017-05-26 19:24:06,916 - oe-selftest - INFO - RESULTS - recipetool.RecipetoolTests.test_recipetool_create - Testcase 1193: PASSED
2017-05-26 19:24:06,916 - oe-selftest - INFO - RESULTS - recipetool.RecipetoolTests.test_recipetool_create_cmake - Testcase 1418: PASSED
2017-05-26 19:24:06,916 - oe-selftest - INFO - RESULTS - recipetool.RecipetoolTests.test_recipetool_create_git - Testcase 1194: PASSED
2017-05-26 19:24:06,916 - oe-selftest - INFO - RESULTS - recipetool.RecipetoolTests.test_recipetool_create_git_http - Testcase -1: PASSED
2017-05-26 19:24:06,916 - oe-selftest - INFO - RESULTS - recipetool.RecipetoolTests.test_recipetool_create_github - Testcase -1: PASSED
2017-05-26 19:24:06,917 - oe-selftest - INFO - RESULTS - recipetool.RecipetoolTests.test_recipetool_create_github_tarball - Testcase -1: PASSED
2017-05-26 19:24:06,917 - oe-selftest - INFO - RESULTS - recipetool.RecipetoolTests.test_recipetool_create_simple - Testcase 1392: PASSED
2017-05-26 19:24:06,917 - oe-selftest - INFO - RESULTS - recipetool.RecipetoolTests.test_recipetool_load_plugin - Testcase -1: PASSED
2017-05-26 19:24:06,917 - oe-selftest - INFO - RESULTS - runqemu.RunqemuTests.test_boot_deploy - Testcase 2007: PASSED
2017-05-26 19:24:06,917 - oe-selftest - INFO - RESULTS - runqemu.RunqemuTests.test_boot_deploy_hddimg - Testcase 2008: PASSED
2017-05-26 19:24:06,917 - oe-selftest - INFO - RESULTS - runqemu.RunqemuTests.test_boot_machine - Testcase 2001: PASSED
2017-05-26 19:24:06,917 - oe-selftest - INFO - RESULTS - runqemu.RunqemuTests.test_boot_machine_ext4 - Testcase 2002: PASSED
2017-05-26 19:24:06,917 - oe-selftest - INFO - RESULTS - runqemu.RunqemuTests.test_boot_machine_iso - Testcase 2003: PASSED
2017-05-26 19:24:06,917 - oe-selftest - INFO - RESULTS - runqemu.RunqemuTests.test_boot_machine_slirp - Testcase 2009: PASSED
2017-05-26 19:24:06,917 - oe-selftest - INFO - RESULTS - runqemu.RunqemuTests.test_boot_machine_slirp_qcow2 - Testcase 2009: PASSED
2017-05-26 19:24:06,918 - oe-selftest - INFO - RESULTS - runqemu.RunqemuTests.test_boot_qemu_boot - Testcase 2010: PASSED
2017-05-26 19:24:06,918 - oe-selftest - INFO - RESULTS - runqemu.RunqemuTests.test_boot_recipe_image - Testcase 2004: PASSED
2017-05-26 19:24:06,918 - oe-selftest - INFO - RESULTS - runqemu.RunqemuTests.test_boot_recipe_image_vdi - Testcase 2006: PASSED
2017-05-26 19:24:06,918 - oe-selftest - INFO - RESULTS - runqemu.RunqemuTests.test_boot_recipe_image_vmdk - Testcase 2005: PASSED
2017-05-26 19:24:06,918 - oe-selftest - INFO - RESULTS - runqemu.RunqemuTests.test_boot_rootfs - Testcase 2011: PASSED
2017-05-26 19:24:06,918 - oe-selftest - INFO - RESULTS - runtime_test.Postinst.test_postinst_rootfs_and_boot - Testcase 1545: PASSED
2017-05-26 19:24:06,918 - oe-selftest - INFO - RESULTS - runtime_test.Postinst.test_verify_postinst - Testcase 1540: PASSED
2017-05-26 19:24:06,918 - oe-selftest - INFO - RESULTS - runtime_test.TestExport.test_testexport_basic - Testcase -1: PASSED
2017-05-26 19:24:06,918 - oe-selftest - INFO - RESULTS - runtime_test.TestExport.test_testexport_sdk - Testcase -1: PASSED
2017-05-26 19:24:06,918 - oe-selftest - INFO - RESULTS - runtime_test.TestImage.test_testimage_install - Testcase -1: PASSED
2017-05-26 19:24:06,919 - oe-selftest - INFO - RESULTS - signing.LockedSignatures.test_locked_signatures - Testcase 1420: PASSED
2017-05-26 19:24:06,919 - oe-selftest - INFO - RESULTS - signing.Signing.test_signing_packages - Testcase 1362: PASSED
2017-05-26 19:24:06,919 - oe-selftest - INFO - RESULTS - signing.Signing.test_signing_sstate_archive - Testcase 1382: PASSED
2017-05-26 19:24:06,919 - oe-selftest - INFO - RESULTS - sstatetests.SStateTests.test_cleansstate_task_distro_nonspecific - Testcase 1376: PASSED
2017-05-26 19:24:06,919 - oe-selftest - INFO - RESULTS - sstatetests.SStateTests.test_cleansstate_task_distro_specific - Testcase 1377: PASSED
2017-05-26 19:24:06,919 - oe-selftest - INFO - RESULTS - sstatetests.SStateTests.test_cleansstate_task_distro_specific_nonspecific - Testcase 977: PASSED
2017-05-26 19:24:06,919 - oe-selftest - INFO - RESULTS - sstatetests.SStateTests.test_rebuild_distro_specific_sstate_cross_native_targets - Testcase 175: PASSED
2017-05-26 19:24:06,919 - oe-selftest - INFO - RESULTS - sstatetests.SStateTests.test_rebuild_distro_specific_sstate_cross_target - Testcase 1372: PASSED
2017-05-26 19:24:06,919 - oe-selftest - INFO - RESULTS - sstatetests.SStateTests.test_rebuild_distro_specific_sstate_native_target - Testcase 1373: PASSED
2017-05-26 19:24:06,920 - oe-selftest - INFO - RESULTS - sstatetests.SStateTests.test_sstate_32_64_same_hash - Testcase 1270: PASSED
2017-05-26 19:24:06,920 - oe-selftest - INFO - RESULTS - sstatetests.SStateTests.test_sstate_allarch_samesigs - Testcase 1368: PASSED
2017-05-26 19:24:06,920 - oe-selftest - INFO - RESULTS - sstatetests.SStateTests.test_sstate_allarch_samesigs_multilib - Testcase -1: PASSED
2017-05-26 19:24:06,920 - oe-selftest - INFO - RESULTS - sstatetests.SStateTests.test_sstate_cache_management_script_using_machine - Testcase 974: PASSED
2017-05-26 19:24:06,920 - oe-selftest - INFO - RESULTS - sstatetests.SStateTests.test_sstate_cache_management_script_using_pr_1 - Testcase 973: PASSED
2017-05-26 19:24:06,920 - oe-selftest - INFO - RESULTS - sstatetests.SStateTests.test_sstate_cache_management_script_using_pr_2 - Testcase 978: PASSED
2017-05-26 19:24:06,920 - oe-selftest - INFO - RESULTS - sstatetests.SStateTests.test_sstate_cache_management_script_using_pr_3 - Testcase 979: PASSED
2017-05-26 19:24:06,920 - oe-selftest - INFO - RESULTS - sstatetests.SStateTests.test_sstate_creation_distro_nonspecific_fail - Testcase 1375: PASSED
2017-05-26 19:24:06,920 - oe-selftest - INFO - RESULTS - sstatetests.SStateTests.test_sstate_creation_distro_nonspecific_pass - Testcase 976: PASSED
2017-05-26 19:24:06,921 - oe-selftest - INFO - RESULTS - sstatetests.SStateTests.test_sstate_creation_distro_specific_fail - Testcase 1374: PASSED
2017-05-26 19:24:06,921 - oe-selftest - INFO - RESULTS - sstatetests.SStateTests.test_sstate_creation_distro_specific_pass - Testcase 975: PASSED
2017-05-26 19:24:06,921 - oe-selftest - INFO - RESULTS - sstatetests.SStateTests.test_sstate_nativelsbstring_same_hash - Testcase 1271: PASSED
2017-05-26 19:24:06,921 - oe-selftest - INFO - RESULTS - sstatetests.SStateTests.test_sstate_noop_samesigs - Testcase -1: PASSED
2017-05-26 19:24:06,921 - oe-selftest - INFO - RESULTS - sstatetests.SStateTests.test_sstate_sametune_samesigs - Testcase 1369: PASSED
2017-05-26 19:24:06,921 - oe-selftest - INFO - RESULTS - tinfoil.TinfoilTests.test_datastore_operations - Testcase -1: PASSED
2017-05-26 19:24:06,921 - oe-selftest - INFO - RESULTS - tinfoil.TinfoilTests.test_expand - Testcase 1569: PASSED
2017-05-26 19:24:06,921 - oe-selftest - INFO - RESULTS - tinfoil.TinfoilTests.test_getvar - Testcase 1568: PASSED
2017-05-26 19:24:06,921 - oe-selftest - INFO - RESULTS - tinfoil.TinfoilTests.test_getvar_bb_origenv - Testcase 1570: PASSED
2017-05-26 19:24:06,921 - oe-selftest - INFO - RESULTS - tinfoil.TinfoilTests.test_list_recipes - Testcase 1574: PASSED
2017-05-26 19:24:06,922 - oe-selftest - INFO - RESULTS - tinfoil.TinfoilTests.test_parse_recipe - Testcase 1571: PASSED
2017-05-26 19:24:06,922 - oe-selftest - INFO - RESULTS - tinfoil.TinfoilTests.test_parse_recipe_copy_expand - Testcase 1572: PASSED
2017-05-26 19:24:06,922 - oe-selftest - INFO - RESULTS - tinfoil.TinfoilTests.test_parse_recipe_initial_datastore - Testcase 1573: PASSED
2017-05-26 19:24:06,922 - oe-selftest - INFO - RESULTS - tinfoil.TinfoilTests.test_setvariable_clean - Testcase 1576: PASSED
2017-05-26 19:24:06,922 - oe-selftest - INFO - RESULTS - tinfoil.TinfoilTests.test_wait_event - Testcase 1575: PASSED
2017-05-26 19:24:06,922 - oe-selftest - INFO - RESULTS - wic.Wic.test_bmap_long - Testcase -1: PASSED
2017-05-26 19:24:06,922 - oe-selftest - INFO - RESULTS - wic.Wic.test_bmap_short - Testcase 1496: PASSED
2017-05-26 19:24:06,922 - oe-selftest - INFO - RESULTS - wic.Wic.test_bootloader_config - Testcase 1385: PASSED
2017-05-26 19:24:06,922 - oe-selftest - INFO - RESULTS - wic.Wic.test_build_artifacts - Testcase 1212: PASSED
2017-05-26 19:24:06,923 - oe-selftest - INFO - RESULTS - wic.Wic.test_build_image_name - Testcase 1211: PASSED
2017-05-26 19:24:06,923 - oe-selftest - INFO - RESULTS - wic.Wic.test_build_rootfs_long - Testcase -1: PASSED
2017-05-26 19:24:06,923 - oe-selftest - INFO - RESULTS - wic.Wic.test_build_rootfs_short - Testcase 1564: PASSED
2017-05-26 19:24:06,923 - oe-selftest - INFO - RESULTS - wic.Wic.test_compress_bzip2 - Testcase 1265: PASSED
2017-05-26 19:24:06,923 - oe-selftest - INFO - RESULTS - wic.Wic.test_compress_gzip - Testcase 1264: PASSED
2017-05-26 19:24:06,923 - oe-selftest - INFO - RESULTS - wic.Wic.test_compress_xz - Testcase 1266: PASSED
2017-05-26 19:24:06,923 - oe-selftest - INFO - RESULTS - wic.Wic.test_createhelp - Testcase 1209: PASSED
2017-05-26 19:24:06,923 - oe-selftest - INFO - RESULTS - wic.Wic.test_debug_long - Testcase -1: PASSED
2017-05-26 19:24:06,923 - oe-selftest - INFO - RESULTS - wic.Wic.test_debug_short - Testcase 1558: PASSED
2017-05-26 19:24:06,923 - oe-selftest - INFO - RESULTS - wic.Wic.test_default_output_dir - Testcase 1562: PASSED
2017-05-26 19:24:06,924 - oe-selftest - INFO - RESULTS - wic.Wic.test_exclude_path - Testcase -1: PASSED
2017-05-26 19:24:06,924 - oe-selftest - INFO - RESULTS - wic.Wic.test_exclude_path_errors - Testcase -1: PASSED
2017-05-26 19:24:06,924 - oe-selftest - INFO - RESULTS - wic.Wic.test_fixed_size - Testcase -1: PASSED
2017-05-26 19:24:06,924 - oe-selftest - INFO - RESULTS - wic.Wic.test_fixed_size_error - Testcase -1: PASSED
2017-05-26 19:24:06,924 - oe-selftest - INFO - RESULTS - wic.Wic.test_fs_types - Testcase -1: PASSED
2017-05-26 19:24:06,924 - oe-selftest - INFO - RESULTS - wic.Wic.test_gpt_image - Testcase 1157: PASSED
2017-05-26 19:24:06,924 - oe-selftest - INFO - RESULTS - wic.Wic.test_help - Testcase 1208: PASSED
2017-05-26 19:24:06,924 - oe-selftest - INFO - RESULTS - wic.Wic.test_help_create - Testcase 1553: PASSED
2017-05-26 19:24:06,924 - oe-selftest - INFO - RESULTS - wic.Wic.test_help_kickstart - Testcase 1217: PASSED
2017-05-26 19:24:06,924 - oe-selftest - INFO - RESULTS - wic.Wic.test_help_list - Testcase 1554: PASSED
2017-05-26 19:24:06,925 - oe-selftest - INFO - RESULTS - wic.Wic.test_help_overview - Testcase 1215: PASSED
2017-05-26 19:24:06,925 - oe-selftest - INFO - RESULTS - wic.Wic.test_help_plugins - Testcase 1216: PASSED
2017-05-26 19:24:06,925 - oe-selftest - INFO - RESULTS - wic.Wic.test_image_bootpart_globbed - Testcase -1: PASSED
2017-05-26 19:24:06,925 - oe-selftest - INFO - RESULTS - wic.Wic.test_image_env - Testcase 1347: PASSED
2017-05-26 19:24:06,925 - oe-selftest - INFO - RESULTS - wic.Wic.test_image_vars_dir_long - Testcase -1: PASSED
2017-05-26 19:24:06,925 - oe-selftest - INFO - RESULTS - wic.Wic.test_image_vars_dir_short - Testcase 1559: PASSED
2017-05-26 19:24:06,925 - oe-selftest - INFO - RESULTS - wic.Wic.test_iso_image - Testcase 1346: PASSED
2017-05-26 19:24:06,925 - oe-selftest - INFO - RESULTS - wic.Wic.test_kickstart_parser - Testcase -1: PASSED
2017-05-26 19:24:06,925 - oe-selftest - INFO - RESULTS - wic.Wic.test_list_images - Testcase 1555: PASSED
2017-05-26 19:24:06,926 - oe-selftest - INFO - RESULTS - wic.Wic.test_list_source_plugins - Testcase 1556: PASSED
2017-05-26 19:24:06,926 - oe-selftest - INFO - RESULTS - wic.Wic.test_listed_images_help - Testcase 1557: PASSED
2017-05-26 19:24:06,926 - oe-selftest - INFO - RESULTS - wic.Wic.test_listhelp - Testcase 1210: PASSED
2017-05-26 19:24:06,926 - oe-selftest - INFO - RESULTS - wic.Wic.test_mkefidisk - Testcase 1350: PASSED
2017-05-26 19:24:06,926 - oe-selftest - INFO - RESULTS - wic.Wic.test_no_command - Testcase 1214: PASSED
2017-05-26 19:24:06,926 - oe-selftest - INFO - RESULTS - wic.Wic.test_qemu - Testcase 1422: PASSED
2017-05-26 19:24:06,926 - oe-selftest - INFO - RESULTS - wic.Wic.test_qemu_efi - Testcase -1: PASSED
2017-05-26 19:24:06,926 - oe-selftest - INFO - RESULTS - wic.Wic.test_qemux86_directdisk - Testcase 1348: PASSED
2017-05-26 19:24:06,926 - oe-selftest - INFO - RESULTS - wic.Wic.test_rawcopy_plugin - Testcase -1: PASSED
2017-05-26 19:24:06,926 - oe-selftest - INFO - RESULTS - wic.Wic.test_rawcopy_plugin_qemu - Testcase -1: PASSED
2017-05-26 19:24:06,927 - oe-selftest - INFO - RESULTS - wic.Wic.test_rootfs_artifacts - Testcase 1269: PASSED
2017-05-26 19:24:06,927 - oe-selftest - INFO - RESULTS - wic.Wic.test_rootfs_indirect_recipes - Testcase 1268: PASSED
2017-05-26 19:24:06,927 - oe-selftest - INFO - RESULTS - wic.Wic.test_sdimage_bootpart - Testcase 1561: PASSED
2017-05-26 19:24:06,927 - oe-selftest - INFO - RESULTS - wic.Wic.test_skip_build_check_long - Testcase -1: PASSED
2017-05-26 19:24:06,927 - oe-selftest - INFO - RESULTS - wic.Wic.test_skip_build_check_short - Testcase 1563: PASSED
2017-05-26 19:24:06,927 - oe-selftest - INFO - RESULTS - wic.Wic.test_sparse_copy - Testcase -1: PASSED
2017-05-26 19:24:06,927 - oe-selftest - INFO - RESULTS - wic.Wic.test_systemd_bootdisk - Testcase 1560: PASSED
2017-05-26 19:24:06,927 - oe-selftest - INFO - RESULTS - wic.Wic.test_unsupported_subcommand - Testcase 1213: PASSED
2017-05-26 19:24:06,927 - oe-selftest - INFO - RESULTS - wic.Wic.test_version - Testcase 1552: PASSED
2017-05-26 19:24:06,927 - oe-selftest - INFO - RESULTS - wic.Wic.test_wic_image_type - Testcase 1351: PASSED
2017-05-26 19:24:06,928 - oe-selftest - INFO - RESULTS - wic.Wic.test_wrong_compressor - Testcase 1267: PASSED
2017-05-26 19:24:06,928 - oe-selftest - INFO - RESULTS - systemd_boot.Systemdboot.test_efi_systemdboot_images_can_be_built - Testcase 1445: PASSED