diff options
4 files changed, 50 insertions, 0 deletions
diff --git a/meta-selftest/recipes-test/license/incompatible-license-alias.bb b/meta-selftest/recipes-test/license/incompatible-license-alias.bb new file mode 100644 index 0000000000..e0b4e13c26 --- /dev/null +++ b/meta-selftest/recipes-test/license/incompatible-license-alias.bb | |||
@@ -0,0 +1,3 @@ | |||
1 | SUMMARY = "Recipe with an alias of an SPDX license" | ||
2 | DESCRIPTION = "Is licensed with an alias of an SPDX license to be used for testing" | ||
3 | LICENSE = "GPLv3" | ||
diff --git a/meta-selftest/recipes-test/license/incompatible-license.bb b/meta-selftest/recipes-test/license/incompatible-license.bb new file mode 100644 index 0000000000..1728ad76b7 --- /dev/null +++ b/meta-selftest/recipes-test/license/incompatible-license.bb | |||
@@ -0,0 +1,3 @@ | |||
1 | SUMMARY = "Recipe with an SPDX license" | ||
2 | DESCRIPTION = "Is licensed with an SPDX license to be used for testing" | ||
3 | LICENSE = "GPL-3.0" | ||
diff --git a/meta-selftest/recipes-test/license/incompatible-nonspdx-license.bb b/meta-selftest/recipes-test/license/incompatible-nonspdx-license.bb new file mode 100644 index 0000000000..35af0966ef --- /dev/null +++ b/meta-selftest/recipes-test/license/incompatible-nonspdx-license.bb | |||
@@ -0,0 +1,3 @@ | |||
1 | SUMMARY = "Recipe with a non-SPDX license" | ||
2 | DESCRIPTION = "Is licensed with a non-SPDX license to be used for testing" | ||
3 | LICENSE = "FooLicense" | ||
diff --git a/meta/lib/oeqa/selftest/cases/incompatible_lic.py b/meta/lib/oeqa/selftest/cases/incompatible_lic.py new file mode 100644 index 0000000000..8fb93af8a8 --- /dev/null +++ b/meta/lib/oeqa/selftest/cases/incompatible_lic.py | |||
@@ -0,0 +1,41 @@ | |||
1 | from oeqa.selftest.case import OESelftestTestCase | ||
2 | from oeqa.utils.commands import bitbake | ||
3 | |||
4 | class IncompatibleLicenseTests(OESelftestTestCase): | ||
5 | |||
6 | def lic_test(self, pn, pn_lic, lic): | ||
7 | error_msg = 'ERROR: Nothing PROVIDES \'%s\'\n%s was skipped: it has an incompatible license: %s' % (pn, pn, pn_lic) | ||
8 | |||
9 | self.write_config("INCOMPATIBLE_LICENSE += \"%s\"" % (lic)) | ||
10 | |||
11 | result = bitbake('%s --dry-run' % (pn), ignore_status=True) | ||
12 | if error_msg not in result.output: | ||
13 | raise AssertionError(result.output) | ||
14 | |||
15 | # Verify that a package with an SPDX license (from SRC_DISTRIBUTE_LICENSES) | ||
16 | # cannot be built when INCOMPATIBLE_LICENSE contains this SPDX license | ||
17 | def test_incompatible_spdx_license(self): | ||
18 | self.lic_test('incompatible-license', 'GPL-3.0', 'GPL-3.0') | ||
19 | |||
20 | # Verify that a package with an SPDX license (from SRC_DISTRIBUTE_LICENSES) | ||
21 | # cannot be built when INCOMPATIBLE_LICENSE contains an alias (in | ||
22 | # SPDXLICENSEMAP) of this SPDX license | ||
23 | def test_incompatible_alias_spdx_license(self): | ||
24 | self.lic_test('incompatible-license', 'GPL-3.0', 'GPLv3') | ||
25 | |||
26 | # Verify that a package with an alias (from SPDXLICENSEMAP) to an SPDX | ||
27 | # license cannot be built when INCOMPATIBLE_LICENSE contains this SPDX | ||
28 | # license | ||
29 | def test_incompatible_spdx_license_alias(self): | ||
30 | self.lic_test('incompatible-license-alias', 'GPLv3', 'GPL-3.0') | ||
31 | |||
32 | # Verify that a package with an alias (from SPDXLICENSEMAP) to an SPDX | ||
33 | # license cannot be built when INCOMPATIBLE_LICENSE contains this alias | ||
34 | def test_incompatible_alias_spdx_license_alias(self): | ||
35 | self.lic_test('incompatible-license-alias', 'GPLv3', 'GPLv3') | ||
36 | |||
37 | # Verify that a package with a non-SPDX license (neither in | ||
38 | # SRC_DISTRIBUTE_LICENSES nor in SPDXLICENSEMAP) cannot be built when | ||
39 | # INCOMPATIBLE_LICENSE contains this license | ||
40 | def test_incompatible_nonspdx_license(self): | ||
41 | self.lic_test('incompatible-nonspdx-license', 'FooLicense', 'FooLicense') | ||