diff options
Diffstat (limited to 'meta/lib/oeqa')
17 files changed, 113 insertions, 78 deletions
diff --git a/meta/lib/oeqa/sdk/cases/buildcpio.py b/meta/lib/oeqa/sdk/cases/autotools.py index 51003b19cd..848e9392ec 100644 --- a/meta/lib/oeqa/sdk/cases/buildcpio.py +++ b/meta/lib/oeqa/sdk/cases/autotools.py | |||
@@ -7,13 +7,12 @@ | |||
7 | import os | 7 | import os |
8 | import tempfile | 8 | import tempfile |
9 | import subprocess | 9 | import subprocess |
10 | import unittest | ||
11 | 10 | ||
12 | from oeqa.sdk.case import OESDKTestCase | 11 | from oeqa.sdk.case import OESDKTestCase |
13 | from oeqa.utils.subprocesstweak import errors_have_output | 12 | from oeqa.utils.subprocesstweak import errors_have_output |
14 | errors_have_output() | 13 | errors_have_output() |
15 | 14 | ||
16 | class BuildCpioTest(OESDKTestCase): | 15 | class AutotoolsTest(OESDKTestCase): |
17 | """ | 16 | """ |
18 | Check that autotools will cross-compile correctly. | 17 | Check that autotools will cross-compile correctly. |
19 | """ | 18 | """ |
diff --git a/meta/lib/oeqa/sdk/cases/assimp.py b/meta/lib/oeqa/sdk/cases/cmake.py index e986838aea..db7d826a38 100644 --- a/meta/lib/oeqa/sdk/cases/assimp.py +++ b/meta/lib/oeqa/sdk/cases/cmake.py | |||
@@ -13,7 +13,7 @@ from oeqa.sdk.case import OESDKTestCase | |||
13 | from oeqa.utils.subprocesstweak import errors_have_output | 13 | from oeqa.utils.subprocesstweak import errors_have_output |
14 | errors_have_output() | 14 | errors_have_output() |
15 | 15 | ||
16 | class BuildAssimp(OESDKTestCase): | 16 | class CMakeTest(OESDKTestCase): |
17 | """ | 17 | """ |
18 | Test case to build a project using cmake. | 18 | Test case to build a project using cmake. |
19 | """ | 19 | """ |
@@ -21,14 +21,14 @@ class BuildAssimp(OESDKTestCase): | |||
21 | def setUp(self): | 21 | def setUp(self): |
22 | if not (self.tc.hasHostPackage("nativesdk-cmake") or | 22 | if not (self.tc.hasHostPackage("nativesdk-cmake") or |
23 | self.tc.hasHostPackage("cmake-native")): | 23 | self.tc.hasHostPackage("cmake-native")): |
24 | raise unittest.SkipTest("Needs cmake") | 24 | raise unittest.SkipTest("CMakeTest: needs cmake") |
25 | 25 | ||
26 | def test_assimp(self): | 26 | def test_assimp(self): |
27 | with tempfile.TemporaryDirectory(prefix="assimp", dir=self.tc.sdk_dir) as testdir: | 27 | with tempfile.TemporaryDirectory(prefix="assimp", dir=self.tc.sdk_dir) as testdir: |
28 | tarball = self.fetch(testdir, self.td["DL_DIR"], "https://github.com/assimp/assimp/archive/v5.3.1.tar.gz") | 28 | tarball = self.fetch(testdir, self.td["DL_DIR"], "https://github.com/assimp/assimp/archive/v5.4.1.tar.gz") |
29 | 29 | ||
30 | dirs = {} | 30 | dirs = {} |
31 | dirs["source"] = os.path.join(testdir, "assimp-5.3.1") | 31 | dirs["source"] = os.path.join(testdir, "assimp-5.4.1") |
32 | dirs["build"] = os.path.join(testdir, "build") | 32 | dirs["build"] = os.path.join(testdir, "build") |
33 | dirs["install"] = os.path.join(testdir, "install") | 33 | dirs["install"] = os.path.join(testdir, "install") |
34 | 34 | ||
@@ -39,7 +39,7 @@ class BuildAssimp(OESDKTestCase): | |||
39 | self._run("sed -i '/# ifdef _FILE_OFFSET_BITS/I,+2 d' {source}/contrib/zlib/gzguts.h".format(**dirs)) | 39 | self._run("sed -i '/# ifdef _FILE_OFFSET_BITS/I,+2 d' {source}/contrib/zlib/gzguts.h".format(**dirs)) |
40 | os.makedirs(dirs["build"]) | 40 | os.makedirs(dirs["build"]) |
41 | 41 | ||
42 | self._run("cd {build} && cmake -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON -DASSIMP_BUILD_ZLIB=ON {source}".format(**dirs)) | 42 | self._run("cd {build} && cmake -DASSIMP_WARNINGS_AS_ERRORS=OFF -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON -DASSIMP_BUILD_ZLIB=ON {source}".format(**dirs)) |
43 | self._run("cmake --build {build} -- -j".format(**dirs)) | 43 | self._run("cmake --build {build} -- -j".format(**dirs)) |
44 | self._run("cmake --build {build} --target install -- DESTDIR={install}".format(**dirs)) | 44 | self._run("cmake --build {build} --target install -- DESTDIR={install}".format(**dirs)) |
45 | self.check_elf(os.path.join(dirs["install"], "usr", "local", "lib", "libassimp.so.5.3.0")) | 45 | self.check_elf(os.path.join(dirs["install"], "usr", "local", "lib", "libassimp.so.5.4.1")) |
diff --git a/meta/lib/oeqa/sdk/cases/buildgalculator.py b/meta/lib/oeqa/sdk/cases/gtk3.py index 178f07472d..c329c4bb86 100644 --- a/meta/lib/oeqa/sdk/cases/buildgalculator.py +++ b/meta/lib/oeqa/sdk/cases/gtk3.py | |||
@@ -13,7 +13,7 @@ from oeqa.sdk.case import OESDKTestCase | |||
13 | from oeqa.utils.subprocesstweak import errors_have_output | 13 | from oeqa.utils.subprocesstweak import errors_have_output |
14 | errors_have_output() | 14 | errors_have_output() |
15 | 15 | ||
16 | class GalculatorTest(OESDKTestCase): | 16 | class GTK3Test(OESDKTestCase): |
17 | """ | 17 | """ |
18 | Test that autotools and GTK+ 3 compiles correctly. | 18 | Test that autotools and GTK+ 3 compiles correctly. |
19 | """ | 19 | """ |
diff --git a/meta/lib/oeqa/sdk/cases/buildlzip.py b/meta/lib/oeqa/sdk/cases/makefile.py index b4b7d85b88..2ff54ce25f 100644 --- a/meta/lib/oeqa/sdk/cases/buildlzip.py +++ b/meta/lib/oeqa/sdk/cases/makefile.py | |||
@@ -4,12 +4,12 @@ | |||
4 | # SPDX-License-Identifier: MIT | 4 | # SPDX-License-Identifier: MIT |
5 | # | 5 | # |
6 | 6 | ||
7 | import os, tempfile, subprocess, unittest | 7 | import os, tempfile, subprocess |
8 | from oeqa.sdk.case import OESDKTestCase | 8 | from oeqa.sdk.case import OESDKTestCase |
9 | from oeqa.utils.subprocesstweak import errors_have_output | 9 | from oeqa.utils.subprocesstweak import errors_have_output |
10 | errors_have_output() | 10 | errors_have_output() |
11 | 11 | ||
12 | class BuildLzipTest(OESDKTestCase): | 12 | class MakefileTest(OESDKTestCase): |
13 | """ | 13 | """ |
14 | Test that "plain" compilation works, using just $CC $CFLAGS etc. | 14 | Test that "plain" compilation works, using just $CC $CFLAGS etc. |
15 | """ | 15 | """ |
diff --git a/meta/lib/oeqa/sdk/cases/maturin.py b/meta/lib/oeqa/sdk/cases/maturin.py index ea10f568b2..20f6b553d0 100644 --- a/meta/lib/oeqa/sdk/cases/maturin.py +++ b/meta/lib/oeqa/sdk/cases/maturin.py | |||
@@ -8,7 +8,6 @@ import os | |||
8 | import shutil | 8 | import shutil |
9 | import unittest | 9 | import unittest |
10 | 10 | ||
11 | from oeqa.core.utils.path import remove_safe | ||
12 | from oeqa.sdk.case import OESDKTestCase | 11 | from oeqa.sdk.case import OESDKTestCase |
13 | from oeqa.utils.subprocesstweak import errors_have_output | 12 | from oeqa.utils.subprocesstweak import errors_have_output |
14 | 13 | ||
diff --git a/meta/lib/oeqa/sdk/cases/buildepoxy.py b/meta/lib/oeqa/sdk/cases/meson.py index 147ee3e0ee..be53df204a 100644 --- a/meta/lib/oeqa/sdk/cases/buildepoxy.py +++ b/meta/lib/oeqa/sdk/cases/meson.py | |||
@@ -13,14 +13,14 @@ from oeqa.sdk.case import OESDKTestCase | |||
13 | from oeqa.utils.subprocesstweak import errors_have_output | 13 | from oeqa.utils.subprocesstweak import errors_have_output |
14 | errors_have_output() | 14 | errors_have_output() |
15 | 15 | ||
16 | class EpoxyTest(OESDKTestCase): | 16 | class MesonTest(OESDKTestCase): |
17 | """ | 17 | """ |
18 | Test that Meson builds correctly. | 18 | Test that Meson builds correctly. |
19 | """ | 19 | """ |
20 | def setUp(self): | 20 | def setUp(self): |
21 | if not (self.tc.hasHostPackage("nativesdk-meson") or | 21 | if not (self.tc.hasHostPackage("nativesdk-meson") or |
22 | self.tc.hasHostPackage("meson-native")): | 22 | self.tc.hasHostPackage("meson-native")): |
23 | raise unittest.SkipTest("EpoxyTest class: SDK doesn't contain Meson") | 23 | raise unittest.SkipTest("MesonTest: needs meson") |
24 | 24 | ||
25 | def test_epoxy(self): | 25 | def test_epoxy(self): |
26 | with tempfile.TemporaryDirectory(prefix="epoxy", dir=self.tc.sdk_dir) as testdir: | 26 | with tempfile.TemporaryDirectory(prefix="epoxy", dir=self.tc.sdk_dir) as testdir: |
diff --git a/meta/lib/oeqa/sdk/cases/python.py b/meta/lib/oeqa/sdk/cases/python.py index 5ea992b9f3..51284949f5 100644 --- a/meta/lib/oeqa/sdk/cases/python.py +++ b/meta/lib/oeqa/sdk/cases/python.py | |||
@@ -4,7 +4,7 @@ | |||
4 | # SPDX-License-Identifier: MIT | 4 | # SPDX-License-Identifier: MIT |
5 | # | 5 | # |
6 | 6 | ||
7 | import subprocess, unittest | 7 | import unittest |
8 | from oeqa.sdk.case import OESDKTestCase | 8 | from oeqa.sdk.case import OESDKTestCase |
9 | 9 | ||
10 | from oeqa.utils.subprocesstweak import errors_have_output | 10 | from oeqa.utils.subprocesstweak import errors_have_output |
diff --git a/meta/lib/oeqa/sdk/cases/rust.py b/meta/lib/oeqa/sdk/cases/rust.py index f5d437bb19..a54245851b 100644 --- a/meta/lib/oeqa/sdk/cases/rust.py +++ b/meta/lib/oeqa/sdk/cases/rust.py | |||
@@ -8,7 +8,6 @@ import os | |||
8 | import shutil | 8 | import shutil |
9 | import unittest | 9 | import unittest |
10 | 10 | ||
11 | from oeqa.core.utils.path import remove_safe | ||
12 | from oeqa.sdk.case import OESDKTestCase | 11 | from oeqa.sdk.case import OESDKTestCase |
13 | 12 | ||
14 | from oeqa.utils.subprocesstweak import errors_have_output | 13 | from oeqa.utils.subprocesstweak import errors_have_output |
diff --git a/meta/lib/oeqa/sdkext/cases/devtool.py b/meta/lib/oeqa/sdkext/cases/devtool.py index 5ffb732556..d0746e68eb 100644 --- a/meta/lib/oeqa/sdkext/cases/devtool.py +++ b/meta/lib/oeqa/sdkext/cases/devtool.py | |||
@@ -69,10 +69,9 @@ class DevtoolTest(OESDKExtTestCase): | |||
69 | self._test_devtool_build(self.myapp_cmake_dst) | 69 | self._test_devtool_build(self.myapp_cmake_dst) |
70 | 70 | ||
71 | def test_extend_autotools_recipe_creation(self): | 71 | def test_extend_autotools_recipe_creation(self): |
72 | req = 'https://github.com/rdfa/librdfa' | 72 | recipe = "test-dbus-wait" |
73 | recipe = "librdfa" | 73 | self._run('devtool sdk-install dbus') |
74 | self._run('devtool sdk-install libxml2') | 74 | self._run('devtool add %s https://git.yoctoproject.org/git/dbus-wait' % (recipe) ) |
75 | self._run('devtool add %s %s' % (recipe, req) ) | ||
76 | try: | 75 | try: |
77 | self._run('devtool build %s' % recipe) | 76 | self._run('devtool build %s' % recipe) |
78 | finally: | 77 | finally: |
diff --git a/meta/lib/oeqa/selftest/cases/debuginfod.py b/meta/lib/oeqa/selftest/cases/debuginfod.py index 505b4be837..46c0cd87bb 100644 --- a/meta/lib/oeqa/selftest/cases/debuginfod.py +++ b/meta/lib/oeqa/selftest/cases/debuginfod.py | |||
@@ -62,7 +62,7 @@ class Debuginfod(OESelftestTestCase): | |||
62 | 62 | ||
63 | raise TimeoutError("Cannot connect debuginfod, still %d scan jobs running" % latest) | 63 | raise TimeoutError("Cannot connect debuginfod, still %d scan jobs running" % latest) |
64 | 64 | ||
65 | def start_debuginfod(self): | 65 | def start_debuginfod(self, feed_dir): |
66 | # We assume that the caller has already bitbake'd elfutils-native:do_addto_recipe_sysroot | 66 | # We assume that the caller has already bitbake'd elfutils-native:do_addto_recipe_sysroot |
67 | 67 | ||
68 | # Save some useful paths for later | 68 | # Save some useful paths for later |
@@ -82,7 +82,7 @@ class Debuginfod(OESelftestTestCase): | |||
82 | # Disable rescanning, this is a one-shot test | 82 | # Disable rescanning, this is a one-shot test |
83 | "--rescan-time=0", | 83 | "--rescan-time=0", |
84 | "--groom-time=0", | 84 | "--groom-time=0", |
85 | get_bb_var("DEPLOY_DIR"), | 85 | feed_dir, |
86 | ] | 86 | ] |
87 | 87 | ||
88 | format = get_bb_var("PACKAGE_CLASSES").split()[0] | 88 | format = get_bb_var("PACKAGE_CLASSES").split()[0] |
@@ -114,11 +114,12 @@ class Debuginfod(OESelftestTestCase): | |||
114 | self.write_config(""" | 114 | self.write_config(""" |
115 | TMPDIR = "${TOPDIR}/tmp-debuginfod" | 115 | TMPDIR = "${TOPDIR}/tmp-debuginfod" |
116 | DISTRO_FEATURES:append = " debuginfod" | 116 | DISTRO_FEATURES:append = " debuginfod" |
117 | INHERIT += "localpkgfeed" | ||
117 | """) | 118 | """) |
118 | bitbake("elfutils-native:do_addto_recipe_sysroot xz xz:do_package") | 119 | bitbake("elfutils-native:do_addto_recipe_sysroot xz xz:do_package xz:do_localpkgfeed") |
119 | 120 | ||
120 | try: | 121 | try: |
121 | self.start_debuginfod() | 122 | self.start_debuginfod(get_bb_var("LOCALPKGFEED_DIR", "xz")) |
122 | 123 | ||
123 | env = os.environ.copy() | 124 | env = os.environ.copy() |
124 | env["DEBUGINFOD_URLS"] = "http://localhost:%d/" % self.port | 125 | env["DEBUGINFOD_URLS"] = "http://localhost:%d/" % self.port |
@@ -141,12 +142,13 @@ DISTRO_FEATURES:append = " debuginfod" | |||
141 | self.write_config(""" | 142 | self.write_config(""" |
142 | TMPDIR = "${TOPDIR}/tmp-debuginfod" | 143 | TMPDIR = "${TOPDIR}/tmp-debuginfod" |
143 | DISTRO_FEATURES:append = " debuginfod" | 144 | DISTRO_FEATURES:append = " debuginfod" |
145 | INHERIT += "localpkgfeed" | ||
144 | CORE_IMAGE_EXTRA_INSTALL += "elfutils xz" | 146 | CORE_IMAGE_EXTRA_INSTALL += "elfutils xz" |
145 | """) | 147 | """) |
146 | bitbake("core-image-minimal elfutils-native:do_addto_recipe_sysroot") | 148 | bitbake("core-image-minimal elfutils-native:do_addto_recipe_sysroot xz:do_localpkgfeed") |
147 | 149 | ||
148 | try: | 150 | try: |
149 | self.start_debuginfod() | 151 | self.start_debuginfod(get_bb_var("LOCALPKGFEED_DIR", "xz")) |
150 | 152 | ||
151 | with runqemu("core-image-minimal", runqemuparams="nographic") as qemu: | 153 | with runqemu("core-image-minimal", runqemuparams="nographic") as qemu: |
152 | cmd = "DEBUGINFOD_URLS=http://%s:%d/ debuginfod-find debuginfo /usr/bin/xz" % (qemu.server_ip, self.port) | 154 | cmd = "DEBUGINFOD_URLS=http://%s:%d/ debuginfod-find debuginfo /usr/bin/xz" % (qemu.server_ip, self.port) |
diff --git a/meta/lib/oeqa/selftest/cases/devtool.py b/meta/lib/oeqa/selftest/cases/devtool.py index bc1e40ef83..c8bf7d9e44 100644 --- a/meta/lib/oeqa/selftest/cases/devtool.py +++ b/meta/lib/oeqa/selftest/cases/devtool.py | |||
@@ -286,10 +286,13 @@ class DevtoolTestCase(OESelftestTestCase): | |||
286 | else: | 286 | else: |
287 | self.skipTest('No tap devices found - you must set up tap devices with scripts/runqemu-gen-tapdevs before running this test') | 287 | self.skipTest('No tap devices found - you must set up tap devices with scripts/runqemu-gen-tapdevs before running this test') |
288 | 288 | ||
289 | def _test_devtool_add_git_url(self, git_url, version, pn, resulting_src_uri): | 289 | def _test_devtool_add_git_url(self, git_url, version, pn, resulting_src_uri, srcrev=None): |
290 | self.track_for_cleanup(self.workspacedir) | 290 | self.track_for_cleanup(self.workspacedir) |
291 | self.add_command_to_tearDown('bitbake-layers remove-layer */workspace') | 291 | self.add_command_to_tearDown('bitbake-layers remove-layer */workspace') |
292 | result = runCmd('devtool add --version %s %s %s' % (version, pn, git_url)) | 292 | command = 'devtool add --version %s %s %s' % (version, pn, git_url) |
293 | if srcrev : | ||
294 | command += ' --srcrev %s' %srcrev | ||
295 | result = runCmd(command) | ||
293 | self.assertExists(os.path.join(self.workspacedir, 'conf', 'layer.conf'), 'Workspace directory not created') | 296 | self.assertExists(os.path.join(self.workspacedir, 'conf', 'layer.conf'), 'Workspace directory not created') |
294 | # Check the recipe name is correct | 297 | # Check the recipe name is correct |
295 | recipefile = get_bb_var('FILE', pn) | 298 | recipefile = get_bb_var('FILE', pn) |
@@ -479,11 +482,12 @@ class DevtoolAddTests(DevtoolBase): | |||
479 | 482 | ||
480 | def test_devtool_add_git_style2(self): | 483 | def test_devtool_add_git_style2(self): |
481 | version = 'v3.1.0' | 484 | version = 'v3.1.0' |
485 | srcrev = 'v3.1.0' | ||
482 | pn = 'mbedtls' | 486 | pn = 'mbedtls' |
483 | # this will trigger reformat_git_uri with branch parameter in url | 487 | # this will trigger reformat_git_uri with branch parameter in url |
484 | git_url = "'git://git@github.com/ARMmbed/mbedtls.git;protocol=https'" | 488 | git_url = "'git://git@github.com/ARMmbed/mbedtls.git;protocol=https'" |
485 | resulting_src_uri = "gitsm://git@github.com/ARMmbed/mbedtls.git;protocol=https;branch=master" | 489 | resulting_src_uri = "git://git@github.com/ARMmbed/mbedtls.git;protocol=https;branch=master" |
486 | self._test_devtool_add_git_url(git_url, version, pn, resulting_src_uri) | 490 | self._test_devtool_add_git_url(git_url, version, pn, resulting_src_uri, srcrev) |
487 | 491 | ||
488 | def test_devtool_add_library(self): | 492 | def test_devtool_add_library(self): |
489 | # Fetch source | 493 | # Fetch source |
@@ -875,13 +879,8 @@ class DevtoolModifyTests(DevtoolBase): | |||
875 | self.add_command_to_tearDown('bitbake -c clean %s' % testrecipe) | 879 | self.add_command_to_tearDown('bitbake -c clean %s' % testrecipe) |
876 | self.add_command_to_tearDown('bitbake-layers remove-layer */workspace') | 880 | self.add_command_to_tearDown('bitbake-layers remove-layer */workspace') |
877 | result = runCmd('devtool modify %s -x %s' % (testrecipe, tempdir)) | 881 | result = runCmd('devtool modify %s -x %s' % (testrecipe, tempdir)) |
878 | srcfile = os.path.join(tempdir, 'oe-local-files/share/dot.bashrc') | 882 | srcfile = os.path.join(tempdir, 'share/dot.bashrc') |
879 | srclink = os.path.join(tempdir, 'share/dot.bashrc') | ||
880 | self.assertExists(srcfile, 'Extracted source could not be found') | 883 | self.assertExists(srcfile, 'Extracted source could not be found') |
881 | if os.path.islink(srclink) and os.path.exists(srclink) and os.path.samefile(srcfile, srclink): | ||
882 | correct_symlink = True | ||
883 | self.assertTrue(correct_symlink, 'Source symlink to oe-local-files is broken') | ||
884 | |||
885 | matches = glob.glob(os.path.join(self.workspacedir, 'appends', '%s_*.bbappend' % testrecipe)) | 884 | matches = glob.glob(os.path.join(self.workspacedir, 'appends', '%s_*.bbappend' % testrecipe)) |
886 | self.assertTrue(matches, 'bbappend not created') | 885 | self.assertTrue(matches, 'bbappend not created') |
887 | # Test devtool status | 886 | # Test devtool status |
@@ -952,9 +951,9 @@ class DevtoolModifyTests(DevtoolBase): | |||
952 | # others git:// in SRC_URI | 951 | # others git:// in SRC_URI |
953 | # cointains a patch | 952 | # cointains a patch |
954 | testrecipe = 'hello-rs' | 953 | testrecipe = 'hello-rs' |
955 | bb_vars = get_bb_vars(['SRC_URI', 'FILE', 'WORKDIR', 'CARGO_HOME'], testrecipe) | 954 | bb_vars = get_bb_vars(['SRC_URI', 'FILE', 'UNPACKDIR', 'CARGO_HOME'], testrecipe) |
956 | recipefile = bb_vars['FILE'] | 955 | recipefile = bb_vars['FILE'] |
957 | workdir = bb_vars['WORKDIR'] | 956 | unpackdir = bb_vars['UNPACKDIR'] |
958 | cargo_home = bb_vars['CARGO_HOME'] | 957 | cargo_home = bb_vars['CARGO_HOME'] |
959 | src_uri = bb_vars['SRC_URI'].split() | 958 | src_uri = bb_vars['SRC_URI'].split() |
960 | self.assertTrue(src_uri[0].startswith('git://'), | 959 | self.assertTrue(src_uri[0].startswith('git://'), |
@@ -1025,7 +1024,7 @@ class DevtoolModifyTests(DevtoolBase): | |||
1025 | self.assertEqual(parms['type'], 'git-dependency', 'git dependencies uri should have "type=git-dependency"') | 1024 | self.assertEqual(parms['type'], 'git-dependency', 'git dependencies uri should have "type=git-dependency"') |
1026 | raw_url = raw_url.replace("git://", '%s://' % parms['protocol']) | 1025 | raw_url = raw_url.replace("git://", '%s://' % parms['protocol']) |
1027 | patch_line = '[patch."%s"]' % raw_url | 1026 | patch_line = '[patch."%s"]' % raw_url |
1028 | path_patched = os.path.join(workdir, parms['destsuffix']) | 1027 | path_patched = os.path.join(unpackdir, parms['destsuffix']) |
1029 | path_override_line = '%s = { path = "%s" }' % (parms['name'], path_patched) | 1028 | path_override_line = '%s = { path = "%s" }' % (parms['name'], path_patched) |
1030 | # Would have been better to use tomllib to read this file :/ | 1029 | # Would have been better to use tomllib to read this file :/ |
1031 | self.assertIn(patch_line, cargo_config_contents) | 1030 | self.assertIn(patch_line, cargo_config_contents) |
@@ -1274,7 +1273,7 @@ class DevtoolUpdateTests(DevtoolBase): | |||
1274 | with open(bbappendfile, 'r') as f: | 1273 | with open(bbappendfile, 'r') as f: |
1275 | self.assertEqual(expectedlines, f.readlines()) | 1274 | self.assertEqual(expectedlines, f.readlines()) |
1276 | # Drop new commit and check patch gets deleted | 1275 | # Drop new commit and check patch gets deleted |
1277 | result = runCmd('git reset HEAD^', cwd=tempsrcdir) | 1276 | result = runCmd('git reset HEAD^ --hard', cwd=tempsrcdir) |
1278 | result = runCmd('devtool update-recipe %s -a %s' % (testrecipe, templayerdir)) | 1277 | result = runCmd('devtool update-recipe %s -a %s' % (testrecipe, templayerdir)) |
1279 | self.assertNotExists(patchfile, 'Patch file not deleted') | 1278 | self.assertNotExists(patchfile, 'Patch file not deleted') |
1280 | expectedlines2 = ['FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}:"\n', | 1279 | expectedlines2 = ['FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}:"\n', |
@@ -1283,6 +1282,7 @@ class DevtoolUpdateTests(DevtoolBase): | |||
1283 | self.assertEqual(expectedlines2, f.readlines()) | 1282 | self.assertEqual(expectedlines2, f.readlines()) |
1284 | # Put commit back and check we can run it if layer isn't in bblayers.conf | 1283 | # Put commit back and check we can run it if layer isn't in bblayers.conf |
1285 | os.remove(bbappendfile) | 1284 | os.remove(bbappendfile) |
1285 | result = runCmd("sed 's!\\(#define VERSION\\W*\"[^\"]*\\)\"!\\1-custom\"!' -i ReadMe.c", cwd=tempsrcdir) | ||
1286 | result = runCmd('git commit -a -m "Add our custom version"', cwd=tempsrcdir) | 1286 | result = runCmd('git commit -a -m "Add our custom version"', cwd=tempsrcdir) |
1287 | result = runCmd('bitbake-layers remove-layer %s' % templayerdir, cwd=self.builddir) | 1287 | result = runCmd('bitbake-layers remove-layer %s' % templayerdir, cwd=self.builddir) |
1288 | result = runCmd('devtool update-recipe %s -a %s' % (testrecipe, templayerdir)) | 1288 | result = runCmd('devtool update-recipe %s -a %s' % (testrecipe, templayerdir)) |
@@ -1357,7 +1357,7 @@ class DevtoolUpdateTests(DevtoolBase): | |||
1357 | with open(bbappendfile, 'r') as f: | 1357 | with open(bbappendfile, 'r') as f: |
1358 | self.assertEqual(expectedlines, set(f.readlines())) | 1358 | self.assertEqual(expectedlines, set(f.readlines())) |
1359 | # Drop new commit and check SRCREV changes | 1359 | # Drop new commit and check SRCREV changes |
1360 | result = runCmd('git reset HEAD^', cwd=tempsrcdir) | 1360 | result = runCmd('git reset HEAD^ --hard', cwd=tempsrcdir) |
1361 | result = runCmd('devtool update-recipe -m srcrev %s -a %s' % (testrecipe, templayerdir)) | 1361 | result = runCmd('devtool update-recipe -m srcrev %s -a %s' % (testrecipe, templayerdir)) |
1362 | self.assertNotExists(os.path.join(appenddir, testrecipe), 'Patch directory should not be created') | 1362 | self.assertNotExists(os.path.join(appenddir, testrecipe), 'Patch directory should not be created') |
1363 | result = runCmd('git rev-parse HEAD', cwd=tempsrcdir) | 1363 | result = runCmd('git rev-parse HEAD', cwd=tempsrcdir) |
@@ -1369,6 +1369,7 @@ class DevtoolUpdateTests(DevtoolBase): | |||
1369 | self.assertEqual(expectedlines, set(f.readlines())) | 1369 | self.assertEqual(expectedlines, set(f.readlines())) |
1370 | # Put commit back and check we can run it if layer isn't in bblayers.conf | 1370 | # Put commit back and check we can run it if layer isn't in bblayers.conf |
1371 | os.remove(bbappendfile) | 1371 | os.remove(bbappendfile) |
1372 | result = runCmd('echo "# Additional line" >> Makefile.am', cwd=tempsrcdir) | ||
1372 | result = runCmd('git commit -a -m "Change the Makefile"', cwd=tempsrcdir) | 1373 | result = runCmd('git commit -a -m "Change the Makefile"', cwd=tempsrcdir) |
1373 | result = runCmd('bitbake-layers remove-layer %s' % templayerdir, cwd=self.builddir) | 1374 | result = runCmd('bitbake-layers remove-layer %s' % templayerdir, cwd=self.builddir) |
1374 | result = runCmd('devtool update-recipe -m srcrev %s -a %s' % (testrecipe, templayerdir)) | 1375 | result = runCmd('devtool update-recipe -m srcrev %s -a %s' % (testrecipe, templayerdir)) |
@@ -1400,22 +1401,39 @@ class DevtoolUpdateTests(DevtoolBase): | |||
1400 | # Try building just to ensure we haven't broken that | 1401 | # Try building just to ensure we haven't broken that |
1401 | bitbake("%s" % testrecipe) | 1402 | bitbake("%s" % testrecipe) |
1402 | # Edit / commit local source | 1403 | # Edit / commit local source |
1403 | runCmd('echo "/* Foobar */" >> oe-local-files/makedevs.c', cwd=tempdir) | 1404 | runCmd('echo "/* Foobar */" >> makedevs.c', cwd=tempdir) |
1404 | runCmd('echo "Foo" > oe-local-files/new-local', cwd=tempdir) | 1405 | runCmd('echo "Foo" > new-local', cwd=tempdir) |
1405 | runCmd('echo "Bar" > new-file', cwd=tempdir) | 1406 | runCmd('echo "Bar" > new-file', cwd=tempdir) |
1406 | runCmd('git add new-file', cwd=tempdir) | 1407 | runCmd('git add new-file', cwd=tempdir) |
1407 | runCmd('git commit -m "Add new file"', cwd=tempdir) | 1408 | runCmd('git commit -m "Add new file"', cwd=tempdir) |
1408 | self.add_command_to_tearDown('cd %s; git clean -fd .; git checkout .' % | 1409 | runCmd('git add new-local', cwd=tempdir) |
1409 | os.path.dirname(recipefile)) | ||
1410 | runCmd('devtool update-recipe %s' % testrecipe) | 1410 | runCmd('devtool update-recipe %s' % testrecipe) |
1411 | expected_status = [(' M', '.*/%s$' % os.path.basename(recipefile)), | 1411 | expected_status = [(' M', '.*/%s$' % os.path.basename(recipefile)), |
1412 | (' M', '.*/makedevs/makedevs.c$'), | 1412 | (' M', '.*/makedevs/makedevs.c$'), |
1413 | ('??', '.*/makedevs/new-local$'), | 1413 | ('??', '.*/makedevs/new-local$'), |
1414 | ('??', '.*/makedevs/0001-Add-new-file.patch$')] | 1414 | ('??', '.*/makedevs/0001-Add-new-file.patch$')] |
1415 | self._check_repo_status(os.path.dirname(recipefile), expected_status) | 1415 | self._check_repo_status(os.path.dirname(recipefile), expected_status) |
1416 | 1416 | # Now try to update recipe in another layer, so first, clean it | |
1417 | def test_devtool_update_recipe_local_files_2(self): | 1417 | runCmd('cd %s; git clean -fd .; git checkout .' % os.path.dirname(recipefile)) |
1418 | """Check local source files support when oe-local-files is in Git""" | 1418 | # Create a temporary layer and add it to bblayers.conf |
1419 | self._create_temp_layer(templayerdir, True, 'templayer') | ||
1420 | # Update recipe in templayer | ||
1421 | result = runCmd('devtool update-recipe %s -a %s' % (testrecipe, templayerdir)) | ||
1422 | self.assertNotIn('WARNING:', result.output) | ||
1423 | # Check recipe is still clean | ||
1424 | self._check_repo_status(os.path.dirname(recipefile), []) | ||
1425 | splitpath = os.path.dirname(recipefile).split(os.sep) | ||
1426 | appenddir = os.path.join(templayerdir, splitpath[-2], splitpath[-1]) | ||
1427 | bbappendfile = self._check_bbappend(testrecipe, recipefile, appenddir) | ||
1428 | patchfile = os.path.join(appenddir, testrecipe, '0001-Add-new-file.patch') | ||
1429 | new_local_file = os.path.join(appenddir, testrecipe, 'new_local') | ||
1430 | local_file = os.path.join(appenddir, testrecipe, 'makedevs.c') | ||
1431 | self.assertExists(patchfile, 'Patch file 0001-Add-new-file.patch not created') | ||
1432 | self.assertExists(local_file, 'File makedevs.c not created') | ||
1433 | self.assertExists(patchfile, 'File new_local not created') | ||
1434 | |||
1435 | def _test_devtool_update_recipe_local_files_2(self): | ||
1436 | """Check local source files support when editing local files in Git""" | ||
1419 | testrecipe = 'devtool-test-local' | 1437 | testrecipe = 'devtool-test-local' |
1420 | recipefile = get_bb_var('FILE', testrecipe) | 1438 | recipefile = get_bb_var('FILE', testrecipe) |
1421 | recipedir = os.path.dirname(recipefile) | 1439 | recipedir = os.path.dirname(recipefile) |
@@ -1430,17 +1448,13 @@ class DevtoolUpdateTests(DevtoolBase): | |||
1430 | result = runCmd('devtool modify %s -x %s' % (testrecipe, tempdir)) | 1448 | result = runCmd('devtool modify %s -x %s' % (testrecipe, tempdir)) |
1431 | # Check git repo | 1449 | # Check git repo |
1432 | self._check_src_repo(tempdir) | 1450 | self._check_src_repo(tempdir) |
1433 | # Add oe-local-files to Git | ||
1434 | runCmd('rm oe-local-files/.gitignore', cwd=tempdir) | ||
1435 | runCmd('git add oe-local-files', cwd=tempdir) | ||
1436 | runCmd('git commit -m "Add local sources"', cwd=tempdir) | ||
1437 | # Edit / commit local sources | 1451 | # Edit / commit local sources |
1438 | runCmd('echo "# Foobar" >> oe-local-files/file1', cwd=tempdir) | 1452 | runCmd('echo "# Foobar" >> file1', cwd=tempdir) |
1439 | runCmd('git commit -am "Edit existing file"', cwd=tempdir) | 1453 | runCmd('git commit -am "Edit existing file"', cwd=tempdir) |
1440 | runCmd('git rm oe-local-files/file2', cwd=tempdir) | 1454 | runCmd('git rm file2', cwd=tempdir) |
1441 | runCmd('git commit -m"Remove file"', cwd=tempdir) | 1455 | runCmd('git commit -m"Remove file"', cwd=tempdir) |
1442 | runCmd('echo "Foo" > oe-local-files/new-local', cwd=tempdir) | 1456 | runCmd('echo "Foo" > new-local', cwd=tempdir) |
1443 | runCmd('git add oe-local-files/new-local', cwd=tempdir) | 1457 | runCmd('git add new-local', cwd=tempdir) |
1444 | runCmd('git commit -m "Add new local file"', cwd=tempdir) | 1458 | runCmd('git commit -m "Add new local file"', cwd=tempdir) |
1445 | runCmd('echo "Gar" > new-file', cwd=tempdir) | 1459 | runCmd('echo "Gar" > new-file', cwd=tempdir) |
1446 | runCmd('git add new-file', cwd=tempdir) | 1460 | runCmd('git add new-file', cwd=tempdir) |
@@ -1449,7 +1463,7 @@ class DevtoolUpdateTests(DevtoolBase): | |||
1449 | os.path.dirname(recipefile)) | 1463 | os.path.dirname(recipefile)) |
1450 | # Checkout unmodified file to working copy -> devtool should still pick | 1464 | # Checkout unmodified file to working copy -> devtool should still pick |
1451 | # the modified version from HEAD | 1465 | # the modified version from HEAD |
1452 | runCmd('git checkout HEAD^ -- oe-local-files/file1', cwd=tempdir) | 1466 | runCmd('git checkout HEAD^ -- file1', cwd=tempdir) |
1453 | runCmd('devtool update-recipe %s' % testrecipe) | 1467 | runCmd('devtool update-recipe %s' % testrecipe) |
1454 | expected_status = [(' M', '.*/%s$' % os.path.basename(recipefile)), | 1468 | expected_status = [(' M', '.*/%s$' % os.path.basename(recipefile)), |
1455 | (' M', '.*/file1$'), | 1469 | (' M', '.*/file1$'), |
@@ -1524,7 +1538,7 @@ class DevtoolUpdateTests(DevtoolBase): | |||
1524 | # (don't bother with cleaning the recipe on teardown, we won't be building it) | 1538 | # (don't bother with cleaning the recipe on teardown, we won't be building it) |
1525 | result = runCmd('devtool modify %s' % testrecipe) | 1539 | result = runCmd('devtool modify %s' % testrecipe) |
1526 | # Modify one file | 1540 | # Modify one file |
1527 | runCmd('echo "Another line" >> file2', cwd=os.path.join(self.workspacedir, 'sources', testrecipe, 'oe-local-files')) | 1541 | runCmd('echo "Another line" >> file2', cwd=os.path.join(self.workspacedir, 'sources', testrecipe)) |
1528 | self.add_command_to_tearDown('cd %s; rm %s/*; git checkout %s %s' % (os.path.dirname(recipefile), testrecipe, testrecipe, os.path.basename(recipefile))) | 1542 | self.add_command_to_tearDown('cd %s; rm %s/*; git checkout %s %s' % (os.path.dirname(recipefile), testrecipe, testrecipe, os.path.basename(recipefile))) |
1529 | result = runCmd('devtool update-recipe %s' % testrecipe) | 1543 | result = runCmd('devtool update-recipe %s' % testrecipe) |
1530 | expected_status = [(' M', '.*/%s/file2$' % testrecipe)] | 1544 | expected_status = [(' M', '.*/%s/file2$' % testrecipe)] |
@@ -1753,6 +1767,8 @@ class DevtoolExtractTests(DevtoolBase): | |||
1753 | # Definitions | 1767 | # Definitions |
1754 | testrecipe = 'mdadm' | 1768 | testrecipe = 'mdadm' |
1755 | testfile = '/sbin/mdadm' | 1769 | testfile = '/sbin/mdadm' |
1770 | if "usrmerge" in get_bb_var('DISTRO_FEATURES'): | ||
1771 | testfile = '/usr/sbin/mdadm' | ||
1756 | testimage = 'oe-selftest-image' | 1772 | testimage = 'oe-selftest-image' |
1757 | testcommand = '/sbin/mdadm --help' | 1773 | testcommand = '/sbin/mdadm --help' |
1758 | # Build an image to run | 1774 | # Build an image to run |
diff --git a/meta/lib/oeqa/selftest/cases/layerappend.py b/meta/lib/oeqa/selftest/cases/layerappend.py index 379ed589ad..64b17117cc 100644 --- a/meta/lib/oeqa/selftest/cases/layerappend.py +++ b/meta/lib/oeqa/selftest/cases/layerappend.py | |||
@@ -37,7 +37,7 @@ FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}:" | |||
37 | SRC_URI:append = " file://appendtest.txt" | 37 | SRC_URI:append = " file://appendtest.txt" |
38 | 38 | ||
39 | sysroot_stage_all:append() { | 39 | sysroot_stage_all:append() { |
40 | install -m 644 ${WORKDIR}/appendtest.txt ${SYSROOT_DESTDIR}/ | 40 | install -m 644 ${UNPACKDIR}/appendtest.txt ${SYSROOT_DESTDIR}/ |
41 | } | 41 | } |
42 | 42 | ||
43 | """ | 43 | """ |
diff --git a/meta/lib/oeqa/selftest/cases/recipetool.py b/meta/lib/oeqa/selftest/cases/recipetool.py index aebea42502..42202b7831 100644 --- a/meta/lib/oeqa/selftest/cases/recipetool.py +++ b/meta/lib/oeqa/selftest/cases/recipetool.py | |||
@@ -120,9 +120,15 @@ class RecipetoolAppendTests(RecipetoolBase): | |||
120 | self._try_recipetool_appendfile_fail('/dev/console', self.testfile, ['ERROR: /dev/console cannot be handled by this tool']) | 120 | self._try_recipetool_appendfile_fail('/dev/console', self.testfile, ['ERROR: /dev/console cannot be handled by this tool']) |
121 | 121 | ||
122 | def test_recipetool_appendfile_alternatives(self): | 122 | def test_recipetool_appendfile_alternatives(self): |
123 | lspath = '/bin/ls' | ||
124 | dirname = "base_bindir" | ||
125 | if "usrmerge" in get_bb_var('DISTRO_FEATURES'): | ||
126 | lspath = '/usr/bin/ls' | ||
127 | dirname = "bindir" | ||
128 | |||
123 | # Now try with a file we know should be an alternative | 129 | # Now try with a file we know should be an alternative |
124 | # (this is very much a fake example, but one we know is reliably an alternative) | 130 | # (this is very much a fake example, but one we know is reliably an alternative) |
125 | self._try_recipetool_appendfile_fail('/bin/ls', self.testfile, ['ERROR: File /bin/ls is an alternative possibly provided by the following recipes:', 'coreutils', 'busybox']) | 131 | self._try_recipetool_appendfile_fail(lspath, self.testfile, ['ERROR: File %s is an alternative possibly provided by the following recipes:' % lspath, 'coreutils', 'busybox']) |
126 | # Need a test file - should be executable | 132 | # Need a test file - should be executable |
127 | testfile2 = os.path.join(self.corebase, 'oe-init-build-env') | 133 | testfile2 = os.path.join(self.corebase, 'oe-init-build-env') |
128 | testfile2name = os.path.basename(testfile2) | 134 | testfile2name = os.path.basename(testfile2) |
@@ -131,12 +137,12 @@ class RecipetoolAppendTests(RecipetoolBase): | |||
131 | 'SRC_URI += "file://%s"\n' % testfile2name, | 137 | 'SRC_URI += "file://%s"\n' % testfile2name, |
132 | '\n', | 138 | '\n', |
133 | 'do_install:append() {\n', | 139 | 'do_install:append() {\n', |
134 | ' install -d ${D}${base_bindir}\n', | 140 | ' install -d ${D}${%s}\n' % dirname, |
135 | ' install -m 0755 ${WORKDIR}/%s ${D}${base_bindir}/ls\n' % testfile2name, | 141 | ' install -m 0755 ${UNPACKDIR}/%s ${D}${%s}/ls\n' % (testfile2name, dirname), |
136 | '}\n'] | 142 | '}\n'] |
137 | self._try_recipetool_appendfile('coreutils', '/bin/ls', testfile2, '-r coreutils', expectedlines, [testfile2name]) | 143 | self._try_recipetool_appendfile('coreutils', lspath, testfile2, '-r coreutils', expectedlines, [testfile2name]) |
138 | # Now try bbappending the same file again, contents should not change | 144 | # Now try bbappending the same file again, contents should not change |
139 | bbappendfile, _ = self._try_recipetool_appendfile('coreutils', '/bin/ls', self.testfile, '-r coreutils', expectedlines, [testfile2name]) | 145 | bbappendfile, _ = self._try_recipetool_appendfile('coreutils', lspath, self.testfile, '-r coreutils', expectedlines, [testfile2name]) |
140 | # But file should have | 146 | # But file should have |
141 | copiedfile = os.path.join(os.path.dirname(bbappendfile), 'coreutils', testfile2name) | 147 | copiedfile = os.path.join(os.path.dirname(bbappendfile), 'coreutils', testfile2name) |
142 | result = runCmd('diff -q %s %s' % (testfile2, copiedfile), ignore_status=True) | 148 | result = runCmd('diff -q %s %s' % (testfile2, copiedfile), ignore_status=True) |
@@ -158,7 +164,7 @@ class RecipetoolAppendTests(RecipetoolBase): | |||
158 | '\n', | 164 | '\n', |
159 | 'do_install:append() {\n', | 165 | 'do_install:append() {\n', |
160 | ' install -d ${D}${datadir}\n', | 166 | ' install -d ${D}${datadir}\n', |
161 | ' install -m 0644 ${WORKDIR}/testfile ${D}${datadir}/something\n', | 167 | ' install -m 0644 ${UNPACKDIR}/testfile ${D}${datadir}/something\n', |
162 | '}\n'] | 168 | '}\n'] |
163 | self._try_recipetool_appendfile('netbase', '/usr/share/something', self.testfile, '-r netbase', expectedlines, ['testfile']) | 169 | self._try_recipetool_appendfile('netbase', '/usr/share/something', self.testfile, '-r netbase', expectedlines, ['testfile']) |
164 | # Try adding another file, this time where the source file is executable | 170 | # Try adding another file, this time where the source file is executable |
@@ -173,8 +179,8 @@ class RecipetoolAppendTests(RecipetoolBase): | |||
173 | '\n', | 179 | '\n', |
174 | 'do_install:append() {\n', | 180 | 'do_install:append() {\n', |
175 | ' install -d ${D}${datadir}\n', | 181 | ' install -d ${D}${datadir}\n', |
176 | ' install -m 0644 ${WORKDIR}/testfile ${D}${datadir}/something\n', | 182 | ' install -m 0644 ${UNPACKDIR}/testfile ${D}${datadir}/something\n', |
177 | ' install -m 0755 ${WORKDIR}/%s ${D}${datadir}/scriptname\n' % testfile2name, | 183 | ' install -m 0755 ${UNPACKDIR}/%s ${D}${datadir}/scriptname\n' % testfile2name, |
178 | '}\n'] | 184 | '}\n'] |
179 | self._try_recipetool_appendfile('netbase', '/usr/share/scriptname', testfile2, '-r netbase', expectedlines, ['testfile', testfile2name]) | 185 | self._try_recipetool_appendfile('netbase', '/usr/share/scriptname', testfile2, '-r netbase', expectedlines, ['testfile', testfile2name]) |
180 | 186 | ||
@@ -186,7 +192,7 @@ class RecipetoolAppendTests(RecipetoolBase): | |||
186 | '\n', | 192 | '\n', |
187 | 'do_install:append() {\n', | 193 | 'do_install:append() {\n', |
188 | ' install -d ${D}${bindir}\n', | 194 | ' install -d ${D}${bindir}\n', |
189 | ' install -m 0755 ${WORKDIR}/testfile ${D}${bindir}/selftest-recipetool-testbin\n', | 195 | ' install -m 0755 ${UNPACKDIR}/testfile ${D}${bindir}/selftest-recipetool-testbin\n', |
190 | '}\n'] | 196 | '}\n'] |
191 | _, output = self._try_recipetool_appendfile('netbase', '/usr/bin/selftest-recipetool-testbin', self.testfile, '-r netbase', expectedlines, ['testfile']) | 197 | _, output = self._try_recipetool_appendfile('netbase', '/usr/bin/selftest-recipetool-testbin', self.testfile, '-r netbase', expectedlines, ['testfile']) |
192 | self.assertNotIn('WARNING: ', output) | 198 | self.assertNotIn('WARNING: ', output) |
@@ -201,7 +207,7 @@ class RecipetoolAppendTests(RecipetoolBase): | |||
201 | '\n', | 207 | '\n', |
202 | 'do_install:append:mymachine() {\n', | 208 | 'do_install:append:mymachine() {\n', |
203 | ' install -d ${D}${datadir}\n', | 209 | ' install -d ${D}${datadir}\n', |
204 | ' install -m 0644 ${WORKDIR}/testfile ${D}${datadir}/something\n', | 210 | ' install -m 0644 ${UNPACKDIR}/testfile ${D}${datadir}/something\n', |
205 | '}\n'] | 211 | '}\n'] |
206 | _, output = self._try_recipetool_appendfile('netbase', '/usr/share/something', self.testfile, '-r netbase -m mymachine', expectedlines, ['mymachine/testfile']) | 212 | _, output = self._try_recipetool_appendfile('netbase', '/usr/share/something', self.testfile, '-r netbase -m mymachine', expectedlines, ['mymachine/testfile']) |
207 | self.assertNotIn('WARNING: ', output) | 213 | self.assertNotIn('WARNING: ', output) |
@@ -235,7 +241,7 @@ class RecipetoolAppendTests(RecipetoolBase): | |||
235 | '\n', | 241 | '\n', |
236 | 'do_install:append() {\n', | 242 | 'do_install:append() {\n', |
237 | ' install -d ${D}${datadir}\n', | 243 | ' install -d ${D}${datadir}\n', |
238 | ' install -m 0644 ${WORKDIR}/testfile ${D}${datadir}/selftest-replaceme-subdir\n', | 244 | ' install -m 0644 ${UNPACKDIR}/testfile ${D}${datadir}/selftest-replaceme-subdir\n', |
239 | '}\n'] | 245 | '}\n'] |
240 | _, output = self._try_recipetool_appendfile('selftest-recipetool-appendfile', '/usr/share/selftest-replaceme-subdir', self.testfile, '', expectedlines, ['testfile']) | 246 | _, output = self._try_recipetool_appendfile('selftest-recipetool-appendfile', '/usr/share/selftest-replaceme-subdir', self.testfile, '', expectedlines, ['testfile']) |
241 | self.assertNotIn('WARNING: ', output) | 247 | self.assertNotIn('WARNING: ', output) |
@@ -262,7 +268,7 @@ class RecipetoolAppendTests(RecipetoolBase): | |||
262 | '\n', | 268 | '\n', |
263 | 'do_install:append() {\n', | 269 | 'do_install:append() {\n', |
264 | ' install -d ${D}${sysconfdir}\n', | 270 | ' install -d ${D}${sysconfdir}\n', |
265 | ' install -m 0644 ${WORKDIR}/testfile ${D}${sysconfdir}/selftest-replaceme-patched\n', | 271 | ' install -m 0644 ${UNPACKDIR}/testfile ${D}${sysconfdir}/selftest-replaceme-patched\n', |
266 | '}\n'] | 272 | '}\n'] |
267 | _, output = self._try_recipetool_appendfile('selftest-recipetool-appendfile', '/etc/selftest-replaceme-patched', self.testfile, '', expectedlines, ['testfile']) | 273 | _, output = self._try_recipetool_appendfile('selftest-recipetool-appendfile', '/etc/selftest-replaceme-patched', self.testfile, '', expectedlines, ['testfile']) |
268 | for line in output.splitlines(): | 274 | for line in output.splitlines(): |
@@ -280,7 +286,7 @@ class RecipetoolAppendTests(RecipetoolBase): | |||
280 | '\n', | 286 | '\n', |
281 | 'do_install:append() {\n', | 287 | 'do_install:append() {\n', |
282 | ' install -d ${D}${datadir}\n', | 288 | ' install -d ${D}${datadir}\n', |
283 | ' install -m 0644 ${WORKDIR}/testfile ${D}${datadir}/selftest-replaceme-scripted\n', | 289 | ' install -m 0644 ${UNPACKDIR}/testfile ${D}${datadir}/selftest-replaceme-scripted\n', |
284 | '}\n'] | 290 | '}\n'] |
285 | _, output = self._try_recipetool_appendfile('selftest-recipetool-appendfile', '/usr/share/selftest-replaceme-scripted', self.testfile, '', expectedlines, ['testfile']) | 291 | _, output = self._try_recipetool_appendfile('selftest-recipetool-appendfile', '/usr/share/selftest-replaceme-scripted', self.testfile, '', expectedlines, ['testfile']) |
286 | self.assertNotIn('WARNING: ', output) | 292 | self.assertNotIn('WARNING: ', output) |
@@ -303,7 +309,7 @@ class RecipetoolAppendTests(RecipetoolBase): | |||
303 | '\n', | 309 | '\n', |
304 | 'do_install:append() {\n', | 310 | 'do_install:append() {\n', |
305 | ' install -d ${D}${datadir}\n', | 311 | ' install -d ${D}${datadir}\n', |
306 | ' install -m 0644 ${WORKDIR}/testfile ${D}${datadir}/selftest-replaceme-postinst\n', | 312 | ' install -m 0644 ${UNPACKDIR}/testfile ${D}${datadir}/selftest-replaceme-postinst\n', |
307 | '}\n'] | 313 | '}\n'] |
308 | _, output = self._try_recipetool_appendfile('selftest-recipetool-appendfile', '/usr/share/selftest-replaceme-postinst', self.testfile, '-r selftest-recipetool-appendfile', expectedlines, ['testfile']) | 314 | _, output = self._try_recipetool_appendfile('selftest-recipetool-appendfile', '/usr/share/selftest-replaceme-postinst', self.testfile, '-r selftest-recipetool-appendfile', expectedlines, ['testfile']) |
309 | 315 | ||
diff --git a/meta/lib/oeqa/selftest/cases/recipeutils.py b/meta/lib/oeqa/selftest/cases/recipeutils.py index 2cb4445f81..9949737172 100644 --- a/meta/lib/oeqa/selftest/cases/recipeutils.py +++ b/meta/lib/oeqa/selftest/cases/recipeutils.py | |||
@@ -72,7 +72,7 @@ class RecipeUtilsTests(OESelftestTestCase): | |||
72 | expected_patch = """ | 72 | expected_patch = """ |
73 | --- a/recipes-test/recipeutils/recipeutils-test_1.2.bb | 73 | --- a/recipes-test/recipeutils/recipeutils-test_1.2.bb |
74 | +++ b/recipes-test/recipeutils/recipeutils-test_1.2.bb | 74 | +++ b/recipes-test/recipeutils/recipeutils-test_1.2.bb |
75 | @@ -8,6 +8,4 @@ | 75 | @@ -11,6 +11,4 @@ |
76 | 76 | ||
77 | BBCLASSEXTEND = "native nativesdk" | 77 | BBCLASSEXTEND = "native nativesdk" |
78 | 78 | ||
@@ -97,7 +97,7 @@ class RecipeUtilsTests(OESelftestTestCase): | |||
97 | expected_patch = """ | 97 | expected_patch = """ |
98 | --- a/recipes-test/recipeutils/recipeutils-test_1.2.bb | 98 | --- a/recipes-test/recipeutils/recipeutils-test_1.2.bb |
99 | +++ b/recipes-test/recipeutils/recipeutils-test_1.2.bb | 99 | +++ b/recipes-test/recipeutils/recipeutils-test_1.2.bb |
100 | @@ -8,6 +8,3 @@ | 100 | @@ -11,6 +11,3 @@ |
101 | 101 | ||
102 | BBCLASSEXTEND = "native nativesdk" | 102 | BBCLASSEXTEND = "native nativesdk" |
103 | 103 | ||
diff --git a/meta/lib/oeqa/selftest/cases/runtime_test.py b/meta/lib/oeqa/selftest/cases/runtime_test.py index 12000aac16..13aa5f16c9 100644 --- a/meta/lib/oeqa/selftest/cases/runtime_test.py +++ b/meta/lib/oeqa/selftest/cases/runtime_test.py | |||
@@ -273,7 +273,7 @@ TEST_RUNQEMUPARAMS += " slirp" | |||
273 | import subprocess, os | 273 | import subprocess, os |
274 | 274 | ||
275 | distro = oe.lsb.distro_identifier() | 275 | distro = oe.lsb.distro_identifier() |
276 | if distro and (distro in ['debian-9', 'debian-10', 'centos-7', 'centos-8', 'ubuntu-16.04', 'ubuntu-18.04'] or | 276 | if distro and (distro in ['debian-9', 'debian-10', 'centos-7', 'centos-8', 'centos-9', 'ubuntu-16.04', 'ubuntu-18.04'] or |
277 | distro.startswith('almalinux') or distro.startswith('rocky')): | 277 | distro.startswith('almalinux') or distro.startswith('rocky')): |
278 | self.skipTest('virgl headless cannot be tested with %s' %(distro)) | 278 | self.skipTest('virgl headless cannot be tested with %s' %(distro)) |
279 | 279 | ||
diff --git a/meta/lib/oeqa/selftest/context.py b/meta/lib/oeqa/selftest/context.py index 57844b289a..99186175e5 100644 --- a/meta/lib/oeqa/selftest/context.py +++ b/meta/lib/oeqa/selftest/context.py | |||
@@ -194,8 +194,23 @@ class OESelftestTestContextExecutor(OETestContextExecutor): | |||
194 | parser.add_argument('-R', '--skip-tests', required=False, action='store', | 194 | parser.add_argument('-R', '--skip-tests', required=False, action='store', |
195 | nargs='+', dest="skips", default=None, | 195 | nargs='+', dest="skips", default=None, |
196 | help='Skip the tests specified. Format should be <module>[.<class>[.<test_method>]]') | 196 | help='Skip the tests specified. Format should be <module>[.<class>[.<test_method>]]') |
197 | |||
198 | def check_parallel_support(parameter): | ||
199 | if not parameter.isdigit(): | ||
200 | import argparse | ||
201 | raise argparse.ArgumentTypeError("argument -j/--num-processes: invalid int value: '%s' " % str(parameter)) | ||
202 | |||
203 | processes = int(parameter) | ||
204 | if processes: | ||
205 | try: | ||
206 | import testtools, subunit | ||
207 | except ImportError: | ||
208 | print("Failed to import testtools or subunit, the testcases will run serially") | ||
209 | processes = None | ||
210 | return processes | ||
211 | |||
197 | parser.add_argument('-j', '--num-processes', dest='processes', action='store', | 212 | parser.add_argument('-j', '--num-processes', dest='processes', action='store', |
198 | type=int, help="number of processes to execute in parallel with") | 213 | type=check_parallel_support, help="number of processes to execute in parallel with") |
199 | 214 | ||
200 | parser.add_argument('-t', '--select-tag', dest="select_tags", | 215 | parser.add_argument('-t', '--select-tag', dest="select_tags", |
201 | action='append', default=None, | 216 | action='append', default=None, |
diff --git a/meta/lib/oeqa/utils/postactions.py b/meta/lib/oeqa/utils/postactions.py index 8104400ac2..ecdddd2d40 100644 --- a/meta/lib/oeqa/utils/postactions.py +++ b/meta/lib/oeqa/utils/postactions.py | |||
@@ -25,7 +25,7 @@ def create_artifacts_directory(d, tc): | |||
25 | def get_target_disk_usage(d, tc): | 25 | def get_target_disk_usage(d, tc): |
26 | output_file = os.path.join(get_json_result_dir(d), "artifacts", "target_disk_usage.txt") | 26 | output_file = os.path.join(get_json_result_dir(d), "artifacts", "target_disk_usage.txt") |
27 | try: | 27 | try: |
28 | (status, output) = tc.target.run('df -hl') | 28 | (status, output) = tc.target.run('df -h') |
29 | with open(output_file, 'w') as f: | 29 | with open(output_file, 'w') as f: |
30 | f.write(output) | 30 | f.write(output) |
31 | f.write("\n") | 31 | f.write("\n") |