[OE-core] [PATCHv2 00/29] oeqa core and oe-selftest threaded enablement

Aníbal Limón anibal.limon at linux.intel.com
Thu Jul 13 16:14:32 UTC 2017


I found some other races in the test cases execution,
i will send a v3.

Cheers,
Anibal

On 07/12/2017 02:36 PM, Aníbal Limón wrote:
> The v2 address comments did by Patrick about add better explanation
> on the commit messages and some typos.
> 
> Other interesting information to add is that with this series we will
> able to execute oe-selftest in around half [1] of the original time [2],
> (9406.782s vs 17303.014s).
> 
> [1] https://bugzilla.yoctoproject.org/attachment.cgi?id=3863
> [2] https://bugzilla.yoctoproject.org/attachment.cgi?id=3864
> 
> This series is to enable oe-selftest threaded runs along some fixes,
> 
> * Implementation of main/end thread usage in oeqa threaded
> * Adaptation of oe-selftest cases to be able to run in threaded env,
>   ** Usage of own build directory by Test class.
>   ** Mark the test modules that are enabled to run into a thread.
>   ** Split some test modules because aren't support run into a thread
>      due to bitbake/tinfoil constraints.
> 
> The oe-selftest script now has an cmdline option (-t) to enable threaded
> runs, by default is set to 1, this needs to be set manually because 
> depending on HW resources available can cause ran out of cpu/memory.
> 
> By default the oe-selftest cases runs on the main thread and uses
> the main build directory for compatibility purposes.
> 
> The following changes since commit 81498aac9560fbeaeb58eaada32ce80e0ea51628:
> 
>   yocto-project-qs: Updated Next Steps list (2017-07-12 00:28:16 +0100)
> 
> are available in the git repository at:
> 
>   git://git.yoctoproject.org/poky-contrib alimon/oe_selftest_threaded
>   http://git.yoctoproject.org/cgit.cgi/poky-contrib/log/?h=alimon/oe_selftest_threaded
> 
> Aníbal Limón (29):
>   oeqa/core/loader: Switch method definition for _make_failed_test
>   oeqa/selftest/{context,case}: Handle KeyboardInterrupt/SIGINT and
>     SIGTERM
>   selftest/cases/package: Call parent setUpClass method
>   bb/tinfoil: run_command handle busy status in bitbake server
>   oe/copy_buildsystem: check_sstate_task_list also pop BBPATH from env
>   oeqa/core/threaded: Enable support to use the main thread
>   oeqa/core/threaded: Add support to run into a thread at end of
>     execution
>   oeqa/core/threaded: logSummary add skipped tests info
>   oeqa/core/tests: Update test_loader threaded to cover main thread
>     usage
>   oeqa/selftest/{case,context}: Add builddir by test class and context
>   oeqa/selftest/case: Add wrappers to utils.commands modules
>   oeqa/selftest/case: Creates meta-selftest layer per class
>   oeqa/selftest/case: tearDown extra commands print what actually fails
>   oeqa/selftest/case: Support bitbake memres mode in per build directory
>   oeqa/selftest/cases: Use testlayer_path instead of call
>     get_test_layer()
>   oeqa/selftest/cases: Use builddir from class instead of get from
>     environment
>   oeqa/selftest/cases: Use wrapper methods from OESelfTestCase class
>   oeqa/selftest/cases: imagefeatures enable threaded runs
>   oeqa/selftest/cases: runqemu enable threaded runs
>   oeqa/selftest/cases: runtime enable threaded runs
>   oeqa/selftest/cases: eSDK enable threaded runs
>   oeqa/selftest/cases: devtool enable threaded runs
>   oeqa/selftest/cases: recipetool enable for threaded runs
>   oeqa/selftest/cases: Move devtool deploy test case to own module
>   selftest/cases/devtool{,end}: Move update/finish_modify tests to its
>     own module
>   seltest/cases/devtool: Build dbus on test_devtool_add_git_local
>   argparse_oe: Add int_positive type
>   oeqa/selftest/context: Enable support for threaded runs
>   oeqa/selftest/cases: systemd_boot enable threaded runs
> 
>  bitbake/lib/bb/tinfoil.py                          |   23 +-
>  .../lib/oeqa/selftest/cases/systemd_boot.py        |   26 +-
>  meta/lib/oe/copy_buildsystem.py                    |    1 +
>  meta/lib/oeqa/core/loader.py                       |    4 +-
>  meta/lib/oeqa/core/tests/test_loader.py            |   17 +-
>  meta/lib/oeqa/core/threaded.py                     |  169 +++-
>  meta/lib/oeqa/selftest/case.py                     |  251 ++++-
>  .../lib/oeqa/selftest/cases/_sstatetests_noauto.py |   23 +-
>  meta/lib/oeqa/selftest/cases/archiver.py           |   21 +-
>  meta/lib/oeqa/selftest/cases/bblayers.py           |   45 +-
>  meta/lib/oeqa/selftest/cases/bbtests.py            |  103 +-
>  meta/lib/oeqa/selftest/cases/buildhistory.py       |    9 +-
>  meta/lib/oeqa/selftest/cases/buildoptions.py       |   51 +-
>  meta/lib/oeqa/selftest/cases/containerimage.py     |    9 +-
>  meta/lib/oeqa/selftest/cases/devtool.py            | 1014 +++++---------------
>  meta/lib/oeqa/selftest/cases/devtool_deploy.py     |   93 ++
>  meta/lib/oeqa/selftest/cases/devtool_end.py        |  506 ++++++++++
>  meta/lib/oeqa/selftest/cases/distrodata.py         |    7 +-
>  meta/lib/oeqa/selftest/cases/eSDK.py               |   61 +-
>  meta/lib/oeqa/selftest/cases/image_typedep.py      |    8 +-
>  meta/lib/oeqa/selftest/cases/imagefeatures.py      |   78 +-
>  meta/lib/oeqa/selftest/cases/imagefeatures_boot.py |   63 ++
>  meta/lib/oeqa/selftest/cases/layerappend.py        |   22 +-
>  meta/lib/oeqa/selftest/cases/liboe.py              |   13 +-
>  meta/lib/oeqa/selftest/cases/lic_checksum.py       |    8 +-
>  meta/lib/oeqa/selftest/cases/manifest.py           |   13 +-
>  meta/lib/oeqa/selftest/cases/oelib/buildhistory.py |    7 +-
>  meta/lib/oeqa/selftest/cases/oescripts.py          |    5 +-
>  meta/lib/oeqa/selftest/cases/package.py            |   12 +-
>  meta/lib/oeqa/selftest/cases/pkgdata.py            |   73 +-
>  meta/lib/oeqa/selftest/cases/prservice.py          |   19 +-
>  meta/lib/oeqa/selftest/cases/recipetool.py         |  105 +-
>  meta/lib/oeqa/selftest/cases/runqemu.py            |    7 +-
>  meta/lib/oeqa/selftest/cases/runtime_test.py       |  225 +----
>  .../lib/oeqa/selftest/cases/runtime_test_export.py |  104 ++
>  .../oeqa/selftest/cases/runtime_test_postinsts.py  |  114 +++
>  meta/lib/oeqa/selftest/cases/signing.py            |   40 +-
>  meta/lib/oeqa/selftest/cases/sstate.py             |    5 +-
>  meta/lib/oeqa/selftest/cases/sstatetests.py        |   51 +-
>  meta/lib/oeqa/selftest/context.py                  |  137 ++-
>  scripts/lib/argparse_oe.py                         |    7 +
>  41 files changed, 1997 insertions(+), 1552 deletions(-)
>  create mode 100644 meta/lib/oeqa/selftest/cases/devtool_deploy.py
>  create mode 100644 meta/lib/oeqa/selftest/cases/devtool_end.py
>  create mode 100644 meta/lib/oeqa/selftest/cases/imagefeatures_boot.py
>  create mode 100644 meta/lib/oeqa/selftest/cases/runtime_test_export.py
>  create mode 100644 meta/lib/oeqa/selftest/cases/runtime_test_postinsts.py
> 



More information about the Openembedded-core mailing list