Commit Graph

2462 Commits

Author SHA1 Message Date
Armin Kuster
85c18be8f4 oeqa/manual/oe-core: remove crosstab test from manual
(From OE-Core rev: fb76404edddb5a6739447bcfa046732b7fa5144b)

Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-11-14 13:21:00 +00:00
Armin Kuster
ef1f6cab65 oeqa/selftest/runtime_test: add crosstab selftest
(From OE-Core rev: fd83e9aa35fa2553a8afd975e5405ea22f318eab)

Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-11-14 13:21:00 +00:00
Armin Kuster
f23f766920 oeqa/manua/oe-core: remove manual PACKAGECONFIG_FLAGS tests
(From OE-Core rev: 77a0371284280c39731a4a0630ba6959969d850f)

Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-11-14 13:21:00 +00:00
Armin Kuster
7fcb703894 oeqa/selftest/oescripts: move list-packageconfig-flags tests from manual to self
(From OE-Core rev: f55bfde64bd7b6f862ca7b59eb075b862d221f12)

Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-11-14 13:21:00 +00:00
Armin Kuster
9eab3f9926 oeqa/manual/bsp-qemu: remove manual useradd test
useradd tested is done via:
test_non_root_user_can_connect_via_ssh_without_password and
test_non_root_user_can_connect_via_ssh_without_password

(From OE-Core rev: 0ab30c0386bf86b2e2101c18208b76200c665051)

Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-11-14 13:21:00 +00:00
Armin Kuster
d2a28aa65e oeqa/manual/bsp-qemu: remove manual bash test
(From OE-Core rev: 29127d5a6ff9eb09a11dc4157006dc4098b01963)

Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-11-14 13:21:00 +00:00
Armin Kuster
fdd96ad304 oeqa/manual/bsp-qemu: remove postinit test done w/selftest runtime
(From OE-Core rev: 63293d1c67736ea8dcb2872e7157b1f5db93c9fa)

Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-11-14 13:21:00 +00:00
Armin Kuster
9fc88bf924 oeqa/manual/bsp-qemu: remove only_one_connmand_in_background test done at runtime
(From OE-Core rev: e0aa0c195ae233c3c28a7e1bc415839171062f42)

Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-11-14 13:21:00 +00:00
Armin Kuster
2890aafb13 oeqa/manual/bsp-qemu: drop xserver test done at runtime
xserver testing is done at runtime and selftest via sato image

(From OE-Core rev: 0146b3a0b60f54fa6ea84461e4ced6fae59aafa7)

Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-11-14 13:21:00 +00:00
Armin Kuster
81bc4bbb59 oeqa/manual/bsp-qemu: remove KVM enabled which is already done in selftest runqemu
(From OE-Core rev: 378bcbc47bac718b7228506f010c26045114d421)

Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-11-14 13:21:00 +00:00
Armin Kuster
b524ddfd7c oeqa/manual/bsp-qemu: remove rpm tests already done in runtime
(From OE-Core rev: 3f71afb23d409f56175341f4b7ac2c84c112b383)

Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-11-14 13:21:00 +00:00
Armin Kuster
97c2021b8a oeqa/core: Add qemu checks
Some test should not be run in QEMU systems so
add some checks to make that easier

(From OE-Core rev: 1b1e53c4ad33a71d526887d1133598f255a476ec)

Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-11-14 13:21:00 +00:00
Armin Kuster
1351614b8d oeqa/core: Add a check for MACHINE
(From OE-Core rev: e69f963e548e2f6f211a56406694c029111d7203)

Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-11-14 13:21:00 +00:00
Denys Dmytriyenko
d71fb563c1 buildhistory: fix "version went backwards" QA error message
Fix parentheses placement in the message from:
Package version for package X went backwards which would break package feeds from (Y to Z)
to this one:
Package version for package X went backwards which would break package feeds (from Y to Z)

(From OE-Core rev: 3a5a61fb6b3f811bd4f7232ba902afcfd2019154)

Signed-off-by: Denys Dmytriyenko <denys@ti.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-11-14 13:20:59 +00:00
Haris Okanovic
dfb8d75ae6 meta/lib/oe/package_manager.py: Enable sha256 checksums in opkg indexer
Pass `--checksum md5` and `--checksum sha256` to opkg-make-index.

Sha256 checksum enables more reliable install-time validation of IPKs.
This is particularly useful when installing from signed feeds --
I.e. feeds using signed Packages index files that deliver otherwise
unsigned IPKs. Such feeds rely on hash validation of enclosed IPKs to
thwart tampering. After download, opkg verifies IPK's checksum against
the (signed) Packages index file. Weak hashes like md5 are prone to
collision and therefore tampering.

The md5 checksum is purely for backward compatibility. Sha256 validation
was recently added to opkg. Newer builds of opkg will use it. Older
builds still look for an md5 checksum. Md5 is deprecated and should be
removed once old build are phased out.

Testing: I ran `bitbake package-index` after building a few IPKs and
verified MD5Sum and SHA256sum attributes are present in Packages.
Using opkg-utils 0.4.0.

Performance Impact: It takes about 40 seconds to cleanly re-index 8000
IPKs on an Intel Xeon E5-1620 machine. This was previously about
20 seconds.

NOTE: It's recommended to delete all Packages* files after applying this
patch. Otherwise, some IPKs won't have sha256.

(From OE-Core rev: e462f47489f35902b6972f9837d9adfa542fc796)

Signed-off-by: Haris Okanovic <haris.okanovic@ni.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-11-10 14:06:10 +00:00
Joshua Watt
57ea3e78bd oeqa: reproducible: Add option to capture bad packages
Adds an option that can be used to copy the offending packages to a temp
directory for later evaluation. This is useful on the Autobuilder to
investigate failures.

(From OE-Core rev: 54b29bae78d1711074fbd18f0350ef0b83b555d1)

Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-11-07 22:30:39 +00:00
Richard Purdie
320049c058 selftest/signing: Fix test_locked_signatures to use a temporary layer
Tests shouldn't be writing to layers during tests as this could corrupt
other tests running in parallel.

Modify the test to write the bbappend to a separate temporary layer
which is added and removed by the test. This avoids race failures
on the autobuilder.

(From OE-Core rev: 467c72ff2c9fe00c40d04d5d859d860fb267499e)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-11-07 15:12:00 +00:00
Alexander Kanavin
222f6b3319 selftest: add a test for gpl3-free images
Existing tests check that adding a specific gpl3 package (bash)
to core-image-minimal results in expected behaviour.

These tests check the ability to build two common images
without gpl3 components in them:

1. core-image-minimal needs no further tweaks and works
out of the box.

2. core-image-full-cmdline requires dropping the GNU packages
that it pulls in; for good measure this tweaked image is
verified with runtime tests.

These two tests allow dropping meta-gplv2 from being tested
on the autobuilder, however there should be a community consensus
first.

(From OE-Core rev: a181f46b8aae066a4b8a26a8045797c38a63e834)

Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-11-04 13:39:05 +00:00
Alexander Kanavin
d1fb08991e selftest: skip virgl test on centos 7 entirely
With the sdl frontend, qemu isn't able to even boot fully,
so let's skip the test early.

(From OE-Core rev: 7b0708da20e4f04070837e5696e4fa3ee5990e8f)

Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-11-04 13:39:05 +00:00
Ross Burton
ce0b46650f oeqa/selftest: add test for oe-run-native
A small test to verify that oe-run-native is correctly working.

(From OE-Core rev: 1b577bcc44cbf7a9e94f8770f21841a16ad50c64)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-11-04 13:39:04 +00:00
Andreas Müller
29b733d7b8 IMAGE_LINGUAS_COMPLEMENTARY: auto-add language packages other than locales
This change allows layers adding packages other than locales automatically to
images based on languages selected in IMAGE_LINGUAS.

E.g if a layer has recipes creating packages as:
| ${PN}-foo-en / ${PN}-foo-de / ${PN}-foo-it / ..

it would set
| IMAGE_LINGUAS_COMPLEMENTARY_append = " *-foo-%s"

in its layer.conf to enable auto-adding.

(From OE-Core rev: 3a9e9585aeb67234901b2f842113dbe20c3801b3)

Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-10-31 16:09:34 +00:00
Ross Burton
37388b6899 buildhistory-analysis: filter out -src changes by default
Like the -dbg package, this package is automatically generated and contains
source filenames.  We expect this to change on every upgrade, so don't show the
differences unless the user wants to see all changes.

(From OE-Core rev: 30acbf6f89ba76d6fab8987ed20f72d1fa3d70fa)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-10-28 05:31:42 +00:00
André Draszik
f0f2a492f3 oeqa/runtime/context.py: ignore more files when loading controllers
When loading controllers as (external) modules, the code currently
tries to load all files ending with .py. This is a problem when
during development using an editor that creates a lock-file
in the same directory as the .py file, as the lock file is
typically called '.#xxxx.py'.
Python will try to load the lock file and fail miserably with
an exception:

    The stack trace of python calls that resulted in this exception/failure was:
    File: 'exec_python_func() autogenerated', lineno: 2, function: <module>
         0001:
     *** 0002:do_testimage(d)
         0003:
    File: 'poky/meta/classes/testimage.bbclass', lineno: 114, function: do_testimage
         0110:    netstat -an
         0111:}
         0112:
         0113:python do_testimage() {
     *** 0114:    testimage_main(d)
         0115:}
         0116:
         0117:addtask testimage
         0118:do_testimage[nostamp] = "1"
    File: 'poky/meta/classes/testimage.bbclass', lineno: 294, function: testimage_main
         0290:
         0291:    # the robot dance
         0292:    target = OERuntimeTestContextExecutor.getTarget(
         0293:        d.getVar("TEST_TARGET"), logger, d.getVar("TEST_TARGET_IP"),
     *** 0294:        d.getVar("TEST_SERVER_IP"), **target_kwargs)
         0295:
         0296:    # test context
         0297:    tc = OERuntimeTestContext(td, logger, target, host_dumper,
         0298:                              image_packages, extract_dir)
    File: 'poky/meta/lib/oeqa/runtime/context.py', lineno: 116, function: getTarget
         0112:            # XXX: Don't base your targets on this code it will be refactored
         0113:            # in the near future.
         0114:            # Custom target module loading
         0115:            target_modules_path = kwargs.get('target_modules_path', '')
     *** 0116:            controller = OERuntimeTestContextExecutor.getControllerModule(target_type, target_modules_path)
         0117:            target = controller(logger, target_ip, server_ip, **kwargs)
         0118:
         0119:        return target
         0120:
    File: 'poky/meta/lib/oeqa/runtime/context.py', lineno: 128, function: getControllerModule
         0124:    # ImportError raised if a provided module can not be imported.
         0125:    @staticmethod
         0126:    def getControllerModule(target, target_modules_path):
         0127:        controllerslist = OERuntimeTestContextExecutor._getControllerModulenames(target_modules_path)
     *** 0128:        controller = OERuntimeTestContextExecutor._loadControllerFromName(target, controllerslist)
         0129:        return controller
         0130:
         0131:    # Return a list of all python modules in lib/oeqa/controllers for each
         0132:    # layer in bbpath
    File: 'poky/meta/lib/oeqa/runtime/context.py', lineno: 163, function: _loadControllerFromName
         0159:    # Raise ImportError if a provided module can not be imported
         0160:    @staticmethod
         0161:    def _loadControllerFromName(target, modulenames):
         0162:        for name in modulenames:
     *** 0163:            obj = OERuntimeTestContextExecutor._loadControllerFromModule(target, name)
         0164:            if obj:
         0165:                return obj
         0166:        raise AttributeError("Unable to load {0} from available modules: {1}".format(target, str(modulenames)))
         0167:
    File: 'poky/meta/lib/oeqa/runtime/context.py', lineno: 173, function: _loadControllerFromModule
         0169:    @staticmethod
         0170:    def _loadControllerFromModule(target, modulename):
         0171:        obj = None
         0172:        # import module, allowing it to raise import exception
     *** 0173:        module = __import__(modulename, globals(), locals(), [target])
         0174:        # look for target class in the module, catching any exceptions as it
         0175:        # is valid that a module may not have the target class.
         0176:        try:
         0177:            obj = getattr(module, target)
    Exception: ImportError: No module named 'oeqa.controllers.'

Simply ignore those when collecting the list of files to try
to load.

(From OE-Core rev: 682f223cf2e2dabe8cf60634b6779bb2d5e359bd)

Signed-off-by: André Draszik <git@andred.net>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-10-23 16:30:36 +01:00
Ola x Nilsson
f3f1597249 lib/oe/package_manager: Use with to control file handle lifetime
(From OE-Core rev: e3e86d6683e305865c9fd171c6081aec037d9870)

Signed-off-by: Ola x Nilsson <olani@axis.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-10-23 16:30:36 +01:00
Ola x Nilsson
3af1c66939 lib/oe/packagedata: Use with to control file handle lifetime
(From OE-Core rev: 28b3635b7f40b627a9d6294a78589c78f0c682c8)

Signed-off-by: Ola x Nilsson <olani@axis.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-10-23 16:30:36 +01:00
Ola x Nilsson
c4f2a115f7 oe.types.path: Use with to control file handle lifetime
(From OE-Core rev: b6e7fee68d018e5f148a7a02cf110bc210022a72)

Signed-off-by: Ola x Nilsson <olani@axis.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-10-23 16:30:36 +01:00
Ola x Nilsson
864c8d67f2 oeqa/selftest/recipetool: Use with to control file handle lifetime
(From OE-Core rev: 890fbd77315474fbd582f8bbeb26925c6a42d8d4)

Signed-off-by: Ola x Nilsson <olani@axis.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-10-23 16:30:36 +01:00
Ross Burton
9b607c58ff oeqa/selftest: use specialist assert* methods
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-10-23 16:30:36 +01:00
André Draszik
ee9d2f4fcf oeqa/runtime/systemd: skip unit enable/disable on read-only-rootfs
This doesn't work on read-only-rootfs:
    AssertionError: 1 != 0 : SYSTEMD_BUS_TIMEOUT=240s systemctl disable avahi-daemon.service
    Failed to disable unit: File /etc/systemd/system/multi-user.target.wants/avahi-daemon.service: Read-only file system

This patch does two things:
1) Decorate the existing test to be skipped if the rootfs is
   read-only
2) add a new test to be executed only if the rootfs is
   read-only. This new test remounts the rootfs read-write
   before continuing to execute the existing test, making
   sure to clean up correctly after itself (remount r/o
   again).

(From OE-Core rev: ec856301887b1139f93aa54d04bed9b842357b4f)

Signed-off-by: André Draszik <git@andred.net>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-10-19 23:18:33 +01:00
André Draszik
568fd6ea47 oeqa/runtime/opkg: skip install on read-only-rootfs
Images can have package management enabled, but be
generally running as read-only. In this case, the
test fails at the moment with various errors due to
that.

Use the new @skipIfFeature decorator to also skip
this test in that case.

(From OE-Core rev: 84640e2b4daf4cf22c5b0324c22332f59e4d51e3)

Signed-off-by: André Draszik <git@andred.net>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-10-19 23:18:33 +01:00
André Draszik
34cce61ece oeqa/core/decorator: add skipIfFeature
skipIfFeature will skip a test if a given DIST_FEATURE
or IMAGE_FEATURE is enabled.

(From OE-Core rev: ff2218f7cc3992725dd35499c14ec3396120dcc5)

Signed-off-by: André Draszik <git@andred.net>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-10-19 23:18:33 +01:00
André Draszik
077c3bbf2f oeqa/runtime/df: don't fail on long device names
When device names are long (more than 20 characters), the
df test will fail with an exception:
    self.assertTrue(int(output)>5120, msg=msg)
    ValueError: invalid literal for int() with base 10: ''
at least when busybox is in use.

The reason is that busybox breaks the line in that case:
    Filesystem           1K-blocks      Used Available Use% Mounted on
    /dev/disk/by-partuuid/8e991e5a-cebd-4f88-9494-c9db4f30cb02
                           1998672     87024   1790408   5% /
and the code tries to extract the fourth field from the
second line, which is empty of course.

df can be told not to break lines, though, using the -P
flag, which turns on the POSIX output format, and is
supported by busybox df and coreutils df:
    Filesystem           1024-blocks    Used Available Capacity Mounted on
    /dev/disk/by-partuuid/8e991e5a-cebd-4f88-9494-c9db4f30cb02   1998672     87024   1790408   5% /

(From OE-Core rev: 8c23c1476d0c64b9bc8806db03414fa914c1e658)

Signed-off-by: André Draszik <git@andred.net>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-10-19 23:18:33 +01:00
Alexander Kanavin
25df405d4b license_image.bbclass: check and reject packages which have incompatible licenses
The use case is setting INCOMPATIBLE_LICENSE per image,
rather than as an awkward, and too strict global setting.

This for example would allow building development images with gplv3 tools,
but production images without them, and checking that nothing gpl3-licensed
gets into the latter.

Examples are provided via the selftest: four scenarios are tested:

- bash is added to the image, with a default gpl3 license; this is rejected
- bash is added to the image, with a "gpl3 & other" license; this is also rejected
- bash is added to the image, with a "gpl3 | other" license; this is accepted, but
only 'other' is added to the license manifest (this was already handled correctly
previously).
- bash is added to the image with a default gpl3 license, and is additionally
whitelisted for that image; this is accepted.

Eventually, this would allow deprecating the meta-gplv2 layer, while still
enforcing the no-gpl3 rule where possible and needed.

(From OE-Core rev: fd50395bc0783a3cce7b5b0d7398f22783ebbeca)

Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-10-15 14:16:10 +01:00
Ross Burton
cfc27f68fb oeqa/selftest/imagefeatures: improve test_hypervisor_fmts
If this test fails then the output doesn't help in any meaningful way, so
improve the test to output the unparsable JSON and display unexpected output.

(From OE-Core rev: 6a710ad0b445295991b17545f634684f4f317099)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-10-09 14:07:43 +01:00
Kai Kang
ff4b1d7ba7 dnf.py: check busybox for case test_dnf_installroot
Check package busybox which is required by cases test_dnf_installroot
and test_dnf_installroot_usrmerge.

(From OE-Core rev: 0f09c5b7a9a66af825951354b436b69dd9a596a4)

Signed-off-by: Kai Kang <kai.kang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-10-09 14:07:43 +01:00
Ross Burton
7a765a628f oeqa/sdk: improve Meson test
Verify that the build inside the SDK is detected as a cross compilation.

(From OE-Core rev: 3dc75ab44c23c4ff26502b96abded3c1c0b94e38)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-10-09 14:07:43 +01:00
Trevor Gamblin
621a5836dd lib/oe/terminal.py: fix gnome-terminal start behavior
[Bugzilla Bug 13201] -- https://bugzilla.yoctoproject.org/show_bug.cgi?id=13201

Newer versions of gnome-terminal (3.32.0 and up) are not starting
as expected for commands e.g. "bitbake -c devshell zlib". This
manifests as the instance appearing as a new tab rather than a
new window. Fix this (and maintain new window preferred behavior)
by changing the "-x" option to "--" as per the warning message,
avoiding deprecated options:

    # Option “--command” is deprecated and might be removed in a later version of gnome-terminal.
    # Use “-- ” to terminate the options and put the command line to execute after it.

(From OE-Core rev: d5fd205239c8e3a1d68649562a7e91c8fbbc805e)

Signed-off-by: Trevor Gamblin <trevor.gamblin@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-10-08 11:22:24 +01:00
Peter Kjellerstedt
9a07399607 lib/oe/lsb: Make sure the distro ID is always lowercased
In commit 8689e561 (lib/oe/lsb: attempt to ensure consistent distro id
regardless of source), the distro ID returned by
oe.lsb.distro_identifier() was lowercased, but only if a release
version is also present.

This changes the code to always lowercase the distro ID, including the
default distro ID "unknown", which is used if no other ID can be
identified.

(From OE-Core rev: 4ba7ef79d23a4cf688d7a794064893fe5f2f473b)

Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-30 16:55:21 +01:00
Nathan Rossi
ec1104fd7f oeqa/core/case.py: Encode binary data of log
Do not decode the log content into a string only to re-encode it as
binary data again. Some logs might un-intentionally contain bytes that
do not decode as utf-8, as such preserve the log file content as it was
on disk.

Handle the decoding on the resulttool side, but also handle the failure
to decode the data.

(From OE-Core rev: 20531dc0b8f76a6e37cc856f36cd94077b6aba50)

Signed-off-by: Nathan Rossi <nathan@nathanrossi.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-30 16:55:21 +01:00
Nathan Rossi
02a334c98f oeqa/core/utils/concurrencytest.py: Handle exceptions and details
Handle the streaming of exception content with details data. The
testtools package allows both 'err' and 'details' kwargs but can only
pass one of them to the parent.

To handle the passing of exception traceback and details data at the
same time, encode the traceback into the details object and remove the
'err' arg from the add* result call. This encodes the traceback similar
to how 'err' is handled without any details object. Decoding is already
done by testtools when the traceback is encoded in the details object.

(From OE-Core rev: 3613451825b251784b7673d89db465b9782c3a31)

Signed-off-by: Nathan Rossi <nathan@nathanrossi.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-30 16:55:21 +01:00
Richard Purdie
d80dd1c3f9 lib/sstatesig: Fix class inheritance problems
The locked sigs class needs to be inherited after the hashequiv mixin so
that get_unihash can correctly wrap the underlying hashequiv function.

To do this turn the locked sigs class into a second mixin, then the order
can be correctly handled. Tweak the get/set_taskdata to match.

(From OE-Core rev: 73d3414ecf594e426e6024b71931038a201eca52)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-30 16:55:21 +01:00
Richard Purdie
ca6cc9fa52 oeqa/selftest/signing: Fix for hash equivlance server
There were two issues with the test one is that an equivalent hash
could come from the server meaning the signature didn't change when it
should. A uuid string is injected to ensure this does not happen.

If there were multiple warnings the test would also fail as only the
first is prefixed with WARNING. Tweak the string to avoid that failure
mode.

(From OE-Core rev: e58eaf5b8c93521dc311b77593e0dd7debca602d)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-30 16:55:21 +01:00
Richard Purdie
c92aca546e sstatesig: Fix hash equivlanency locked signature issues
Using locked signatures with the hash equivalency server ran into
problems. We need to:

a) Ensure the lockedhashes data object is passed from the core to
   any individual tasks using the get/set_taskdata methods

b) Return a locked singature instead of a unihash

c) Write the unihash being used to locked signature lists rather than
   the calculated taskhash

d) Skip warnings of hash mismatch if the hash is a unihash

These changes fix esdk builds (which use locked sigs) when a hash equivalence
server is in use.

(From OE-Core rev: 25dc3d78de01dffa77a3a2452d6a97d741b446d9)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-30 16:55:21 +01:00
Joshua Watt
2b74cece39 oeqa: Test multiconfig parsing
Add a test to verify that when multiconfig conf files changed, recipes
are correctly reparsed.

[YOCTO #13541]

(From OE-Core rev: a424ef0a0c49123f4518e8fef993fd10f6fc5f4e)

Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-27 13:02:17 +01:00
Khem Raj
990fedd595 sdk: Install nativesdk locales for all TCLIBC variants
install_locales() here is actually operating on nativesdk and only glibc
is the default library for nativesdk, since thats what most of
desktop/server distros use, therefore bailing out based on TCLIBC is not
needed here, since nativesdk-glibc would be required for all non-glibc
targetting SDKs as well.

Fixes SDK install time error

ERROR:  OE-core's config sanity checker detected a potential misconfiguration.
Either fix the cause of this error or at your own risk disable the checker (see sanity.conf).
Following is the list of potential problems / advisories:
Your system needs to support the en_US.UTF-8 locale.
ERROR: SDK preparation failed

(From OE-Core rev: ba2df1fa43b79c4959911c1b0bcad996f255b7a8)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-27 13:02:16 +01:00
Robert Yang
c782ef5360 cases/bbtests.py: test_bitbake_g(): Check base-files rather than busybox
It checked whether busybox is in task-depends.dot after run "bitbake -g
core-image-minimal", but busybox is not a must for core-image-minimal since it
is configurable:

VIRTUAL-RUNTIME_base-utils = ""
VIRTUAL-RUNTIME_base-utils-syslog = ""
VIRTUAL-RUNTIME_base-utils-hwclock  =  ""
VIRTUAL-RUNTIME_login_manager = "shadow"
VIRTUAL-RUNTIME_syslog = ""

So the case may fail when busybox is not present, check
base-files which is more reliable.

(From OE-Core rev: f73676b07f6d8a4573a5f46c3e082831b34b7d18)

Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-27 13:02:16 +01:00
Changqing Li
299a3e5975 devtool.py: fix buildclean test
when build with EXTERNALSRC, checksum of EXTERNALSRC is one of inputs
for generate sigdata of task do_compile. without change any source, the
sigdata will not changed, and buildclean task only do make clean, and
not clean stampfiles like clean task, so the stampfile keep there, then
do_compile after do_buildclean will not rerun, and targetfile
tempdir_mdadm/mdadm will not be generated, report below error:

AssertionError: '/tmp/devtoolqarxv8ct6u/mdadm' does not exist

Fix by add a comments in Makefile to trigger rebuild of compile task

(From OE-Core rev: f4621cf4516f9de9980f3864a193f3f61c4abedc)

Signed-off-by: Changqing Li <changqing.li@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-27 13:02:16 +01:00
Changqing Li
c08c61d2f1 devtool.py: change to do clean before remove-layer
if do clean after remove-layer, it will make stamp file not cleaned
since variable STAMP has changed, this will cause error like:

if testcase buildclean failed, when run next testcase modify, since
do_prepare_recipe_sysroot's stamp file exists, sysroot not populated,
then do_compile will fail with error:
/bin/sh: x86_64-poky-linux-gcc: command not found

(From OE-Core rev: 046d7e1de094105db0949c2cf5333ff55d9ad9c8)

Signed-off-by: Changqing Li <changqing.li@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-27 13:02:16 +01:00
Ross Burton
667200903c oeqa/selftest/reproducible: test ipkgs too
Now that opkg-build can build reproducible ipkgs, we can also add those to the
test case.

[ YOCTO #13513 ]

(From OE-Core rev: 3806d38e6194a42534381993fcfcc3ff39550a13)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-27 13:02:16 +01:00
Richard Purdie
e9f859106c oeqa/concurrenttest: Use ionice to delete build directories
Autobuilder type infrastructure can benefit from deletion of certain files as
background IO due to the way Linux filesystem priority works.

We have problems where build directories as part of oe-selftest being
delete starves the running tasks of IO to the point builds take much
longer to compelte.

Having this option of running the deletion at "idle" helps a lot with
that. Use the new option added to bb.utils.prunedir().

(From OE-Core rev: d41e7018be56902b7a1be4590e468cd15e02a3b5)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-19 20:30:35 +01:00