blob: 8fb93af8a897cb6d2fb3e35d97cda6dc4adbad92 [file] [log] [blame]
Brad Bishop15ae2502019-06-18 21:44:24 -04001from oeqa.selftest.case import OESelftestTestCase
2from oeqa.utils.commands import bitbake
3
4class 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')