From 78fe6339e83db510bd6f6afc259a23404d99158e Mon Sep 17 00:00:00 2001 From: Fawzi KHABER Date: Wed, 29 Mar 2023 10:57:57 +0200 Subject: oeqa/selftest/cases/package.py: adding unittest for package rename conflicts This Unittest tries to rename a package, using an already used name and fails on do_package. Reviewed-by: Yoann CONGAL (From OE-Core rev: efcb5c2b6009632c1ca1c7b401944ccf9fe2eb44) Signed-off-by: Fawzi KHABER Signed-off-by: Richard Purdie (cherry picked from commit c3fe173d5196506d89aa464ba56aabcf581a60db) Signed-off-by: Steve Sakoman --- .../recipes-test/packagenameconflict/packagenameconflict.bb | 10 ++++++++++ meta/lib/oeqa/selftest/cases/package.py | 7 +++++++ 2 files changed, 17 insertions(+) create mode 100644 meta-selftest/recipes-test/packagenameconflict/packagenameconflict.bb diff --git a/meta-selftest/recipes-test/packagenameconflict/packagenameconflict.bb b/meta-selftest/recipes-test/packagenameconflict/packagenameconflict.bb new file mode 100644 index 0000000000..5d19a4dd25 --- /dev/null +++ b/meta-selftest/recipes-test/packagenameconflict/packagenameconflict.bb @@ -0,0 +1,10 @@ +SUMMARY = "Test case that tries to rename a package to an existing one and fails" +DESCRIPTION = "This generates a packaging error when a package is renamed to a pre-existing name" +LICENSE = "MIT" + +# Add a new package ${PN}-renametest +PACKAGES += "${PN}-renametest" +# ... and try to rename the ${PN}-dev to the new ${PN}-renametest (conflict) +PKG:${PN}-dev = "${PN}-renametest" + +EXCLUDE_FROM_WORLD = "1" diff --git a/meta/lib/oeqa/selftest/cases/package.py b/meta/lib/oeqa/selftest/cases/package.py index 2d1b48a15d..cc09a1442d 100644 --- a/meta/lib/oeqa/selftest/cases/package.py +++ b/meta/lib/oeqa/selftest/cases/package.py @@ -89,6 +89,13 @@ class VersionOrdering(OESelftestTestCase): self.assertEqual(status - 100, sort, "%s %s (%d) failed" % (ver1, ver2, sort)) class PackageTests(OESelftestTestCase): + # Verify that a recipe cannot rename a package into an existing one + def test_package_name_conflict(self): + res = bitbake("packagenameconflict", ignore_status=True) + self.assertNotEqual(res.status, 0) + err = "package name already exists" + self.assertTrue(err in res.output) + # Verify that a recipe which sets up hardlink files has those preserved into split packages # Also test file sparseness is preserved def test_preserve_sparse_hardlinks(self): -- cgit v1.2.3-54-g00ecf