meta-openembedded/meta-perl
Tim Orling 90589558e9 meta-perl-ptest*-image: enable BBCLASSEXTEND parallel execution
Similar to "core-image-ptest: Switch to BBCLASSEXTEND parallel execution"

Refactor meta-perl-ptest-image.bb for an image per ptest in the form of
meta-perl-ptest-image-XXX using class extensions.

* Add meta-perl-ptest-all-image.bb depends on ALL meta-perl-ptest-image-XXX in meta-perl
* Add meta-perl-ptest-fast-image.bb depends on meta-perl ptests which take less than ~30s

This allows parallel execution of the tests.

The downside to this approach is the parsing time of an image generating
this number of class extensions is slow but making it easier to execute
and collect test data should outweigh that.

A useful advantage is that the dependencies of each ptest package are
checked/tested individually.

Add to local.conf:
IMAGE_CLASSES += "testimage"

All the meta-perl-ptest-image-XXX can be built with:
$ bitbake meta-perl-ptest-all-image

Subsequently, all the ptest images can be run with:
$ bitbake -c testimage meta-perl-ptest-all-image

You will likely want to limit the number of parallel image tests:

BB_NUMBER_THREADS = "4"

based on the number of TAP devices you have defined or the number of simultaneous
QEMU sessions your server can support.

Results can be summarized with:

$ resulttool report tmp/log/oeqa/testresults.json

Signed-off-by: Tim Orling <tim.orling@konsulko.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2023-04-04 13:39:46 -07:00
..
conf ptest-packagelists-meta-perl.inc: add ptest recipes 2023-04-04 13:39:46 -07:00
recipes-core meta-perl-ptest*-image: enable BBCLASSEXTEND parallel execution 2023-04-04 13:39:46 -07:00
recipes-extended logcheck: upgrade 1.4.0 -> 1.4.2 2023-03-02 00:35:28 -08:00
recipes-perl recipes-perl/images: move to recipes-core 2023-04-04 13:39:46 -07:00
COPYING.MIT meta-perl creation 2013-08-16 12:58:29 +02:00
README README: update to main repo 2021-09-27 11:34:55 -07:00

meta-perl
=========
This layer provides commonly-used perl related recipes such as perl libraries
in the Comprehensive Perl Archive Network.

Contents and Help
-----------------

In this section the contents of the layer is listed, along with a short
help for each package.

         -- libdbi-perl --
         The DBI is a database access module for the Perl programming language.
         It defines a set of methods, variables, and conventions that provide
         a consistent database interface, independent of the actual database
         being used.
                      |<- Scope of DBI ->|
                           .-.   .--------------.   .-------------.
           .-------.       | |---| XYZ Driver   |---| XYZ Engine  |
           | Perl  |       | |   `--------------'   `-------------'
           | script|  |A|  |D|   .--------------.   .-------------.
           | using |--|P|--|B|---|Oracle Driver |---|Oracle Engine|
           | DBI   |  |I|  |I|   `--------------'   `-------------'
           | API   |       | |...
           |methods|       | |... Other drivers
           `-------'       | |...
                           `-'

        -- libdbd-sqlite-perl --
        DBD::SQLite is a Perl DBI driver for SQLite, that includes the entire
        thing in the distribution. So in order to get a fast transaction capable
        RDBMS working for your perl project you simply have to install this
        module, and nothing else.

        usage: there is a test case to show you how it works

        1) vim local.conf:
        ...
        IMAGE_INSTALL:append = " libdbd-sqlite-perl"
        PERL_DBM_TEST = "1"
        ...
        2) build core-image-sato and boot the target

        3) run "sqlite-perl-test.pl" on target. This script includes five
           operations create/insert/update/delete/select to do with a table.

        More information can be found in the recipe's git log.

Dependencies
------------

This layer depends on:

  URI: git://git.openembedded.org/openembedded-core
  branch: master

Adding the meta-perl layer to your build
---------------------------------------

In order to use this layer, you need to make the build system aware of
it.

Assuming the meta-perl layer exists at the top-level of your
yocto build tree, you can add it to the build system by adding the
location of the meta-perl layer to bblayers.conf, along with any
other layers needed. e.g.:

  BBLAYERS ?= " \
    /path/to/oe-core/meta \
    /path/to/layer/meta-perl \

Maintenance
-----------

Send patches / pull requests to openembedded-devel@lists.openembedded.org with
'[meta-perl]' in the subject.

When sending single patches, please using something like:
git send-email -M -1 --to openembedded-devel@lists.openembedded.org --subject-prefix='meta-perl][PATCH'

Layer maintainers:
    Hongxu Jia <hongxu.jia@windriver.com>
    Tim "moto-timo" Orling <ticotimo@gmail.com>

License
-------

All metadata is MIT licensed unless otherwise stated. Source code included
in tree for individual recipes is under the LICENSE stated in each recipe
(.bb file) unless otherwise stated.