diff options
| author | Alexander Kanavin <alex.kanavin@gmail.com> | 2019-11-18 19:59:03 +0100 |
|---|---|---|
| committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2019-11-21 23:08:20 +0000 |
| commit | 7081beeb18cf332cb4297ae73a2c432bc40f8b5d (patch) | |
| tree | 4adc6e9fcafd8a766a4ba69501bea1b67d18c1ee | |
| parent | 505f7f05a7a66815790182cae48c52d5f72dc100 (diff) | |
| download | poky-7081beeb18cf332cb4297ae73a2c432bc40f8b5d.tar.gz | |
selftest: check that 'devtool upgrade' correctly drops backported patches
There was a regression in this functionality that went unnoticed
due to lack of tests.
(From OE-Core rev: a75e4eceb703b2b13ddd4ba3dea3a86af0b0a9eb)
Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
4 files changed, 65 insertions, 5 deletions
diff --git a/meta-selftest/recipes-test/devtool/devtool-upgrade-test1-1.5.3/backported.patch b/meta-selftest/recipes-test/devtool/devtool-upgrade-test1-1.5.3/backported.patch new file mode 100644 index 0000000000..c4f3f12666 --- /dev/null +++ b/meta-selftest/recipes-test/devtool/devtool-upgrade-test1-1.5.3/backported.patch | |||
| @@ -0,0 +1,37 @@ | |||
| 1 | commit ced2ec32b657a7f52604b2e16e5d5881041c517a | ||
| 2 | Author: OpenEmbedded <oe.patch@oe> | ||
| 3 | Date: Mon Nov 18 18:43:15 2019 +0100 | ||
| 4 | |||
| 5 | Backport of the NEWS file from version 1.6.0 | ||
| 6 | |||
| 7 | diff --git a/doc/NEWS b/doc/NEWS | ||
| 8 | index 69793fc..fd49b1c 100644 | ||
| 9 | --- a/doc/NEWS | ||
| 10 | +++ b/doc/NEWS | ||
| 11 | @@ -1,3 +1,26 @@ | ||
| 12 | +1.6.0 - 15 March 2015 | ||
| 13 | + - fix lstat64 support when unavailable - separate patches supplied by | ||
| 14 | + Ganael Laplanche and Peter Korsgaard | ||
| 15 | + - (#1506) new option "-D" / "--delay-start" to only show bar after N | ||
| 16 | + seconds (Damon Harper) | ||
| 17 | + - new option "--fineta" / "-I" to show ETA as time of day rather than time | ||
| 18 | + remaining - patch supplied by Erkki Seppälä (r147) | ||
| 19 | + - (#1509) change ETA (--eta / -e) so that days are given if the hours | ||
| 20 | + remaining are 24 or more (Jacek Wielemborek) | ||
| 21 | + - (#1499) repeat read and write attempts on partial buffer fill/empty to | ||
| 22 | + work around post-signal transfer rate drop reported by Ralf Ramsauer | ||
| 23 | + - (#1507) do not try to calculate total size in line mode, due to bug | ||
| 24 | + reported by Jacek Wielemborek and Michiel Van Herwegen | ||
| 25 | + - cleanup: removed defunct RATS comments and unnecessary copyright notices | ||
| 26 | + - clean up displayed lines when using --watchfd PID, when PID exits | ||
| 27 | + - output errors on a new line to avoid overwriting transfer bar | ||
| 28 | + | ||
| 29 | +1.5.7 - 26 August 2014 | ||
| 30 | + - show KiB instead of incorrect kiB (Debian bug #706175) | ||
| 31 | + - (#1284) do not gzip man page, for non-Linux OSes (Bob Friesenhahn) | ||
| 32 | + - work around "awk" bug in tests/016-numeric-timer in decimal "," locales | ||
| 33 | + - fix "make rpm" and "make srpm", extend "make release" to sign releases | ||
| 34 | + | ||
| 35 | 1.5.3 - 4 May 2014 | ||
| 36 | - remove SPLICE_F_NONBLOCK to fix problem with slow splice() (Jan Seda) | ||
| 37 | |||
diff --git a/meta-selftest/recipes-test/devtool/devtool-upgrade-test1_1.5.3.bb b/meta-selftest/recipes-test/devtool/devtool-upgrade-test1_1.5.3.bb index 333ecac7ed..fee5bee739 100644 --- a/meta-selftest/recipes-test/devtool/devtool-upgrade-test1_1.5.3.bb +++ b/meta-selftest/recipes-test/devtool/devtool-upgrade-test1_1.5.3.bb | |||
| @@ -3,7 +3,9 @@ LICENSE = "Artistic-2.0" | |||
| 3 | LIC_FILES_CHKSUM = "file://doc/COPYING;md5=9c50db2589ee3ef10a9b7b2e50ce1d02" | 3 | LIC_FILES_CHKSUM = "file://doc/COPYING;md5=9c50db2589ee3ef10a9b7b2e50ce1d02" |
| 4 | 4 | ||
| 5 | SRC_URI = "http://www.ivarch.com/programs/sources/pv-${PV}.tar.gz \ | 5 | SRC_URI = "http://www.ivarch.com/programs/sources/pv-${PV}.tar.gz \ |
| 6 | file://0001-Add-a-note-line-to-the-quick-reference.patch" | 6 | file://0001-Add-a-note-line-to-the-quick-reference.patch \ |
| 7 | file://backported.patch \ | ||
| 8 | " | ||
| 7 | UPSTREAM_CHECK_URI = "http://www.ivarch.com/programs/pv.shtml" | 9 | UPSTREAM_CHECK_URI = "http://www.ivarch.com/programs/pv.shtml" |
| 8 | RECIPE_NO_UPDATE_REASON = "This recipe is used to test devtool upgrade feature" | 10 | RECIPE_NO_UPDATE_REASON = "This recipe is used to test devtool upgrade feature" |
| 9 | 11 | ||
diff --git a/meta-selftest/recipes-test/devtool/devtool-upgrade-test1_1.5.3.bb.upgraded b/meta-selftest/recipes-test/devtool/devtool-upgrade-test1_1.5.3.bb.upgraded index 9d94f671db..66e45c7e84 100644 --- a/meta-selftest/recipes-test/devtool/devtool-upgrade-test1_1.5.3.bb.upgraded +++ b/meta-selftest/recipes-test/devtool/devtool-upgrade-test1_1.5.3.bb.upgraded | |||
| @@ -3,7 +3,9 @@ LICENSE = "Artistic-2.0" | |||
| 3 | LIC_FILES_CHKSUM = "file://doc/COPYING;md5=9c50db2589ee3ef10a9b7b2e50ce1d02" | 3 | LIC_FILES_CHKSUM = "file://doc/COPYING;md5=9c50db2589ee3ef10a9b7b2e50ce1d02" |
| 4 | 4 | ||
| 5 | SRC_URI = "http://www.ivarch.com/programs/sources/pv-${PV}.tar.gz \ | 5 | SRC_URI = "http://www.ivarch.com/programs/sources/pv-${PV}.tar.gz \ |
| 6 | file://0001-Add-a-note-line-to-the-quick-reference.patch" | 6 | file://0001-Add-a-note-line-to-the-quick-reference.patch \ |
| 7 | file://backported.patch \ | ||
| 8 | " | ||
| 7 | UPSTREAM_CHECK_URI = "http://www.ivarch.com/programs/pv.shtml" | 9 | UPSTREAM_CHECK_URI = "http://www.ivarch.com/programs/pv.shtml" |
| 8 | RECIPE_NO_UPDATE_REASON = "This recipe is used to test devtool upgrade feature" | 10 | RECIPE_NO_UPDATE_REASON = "This recipe is used to test devtool upgrade feature" |
| 9 | 11 | ||
diff --git a/meta/lib/oeqa/selftest/cases/devtool.py b/meta/lib/oeqa/selftest/cases/devtool.py index f4b303bd1c..57e6662e4a 100644 --- a/meta/lib/oeqa/selftest/cases/devtool.py +++ b/meta/lib/oeqa/selftest/cases/devtool.py | |||
| @@ -1497,11 +1497,13 @@ class DevtoolUpgradeTests(DevtoolBase): | |||
| 1497 | recipedir = os.path.dirname(oldrecipefile) | 1497 | recipedir = os.path.dirname(oldrecipefile) |
| 1498 | olddir = os.path.join(recipedir, recipe + '-' + oldversion) | 1498 | olddir = os.path.join(recipedir, recipe + '-' + oldversion) |
| 1499 | patchfn = '0001-Add-a-note-line-to-the-quick-reference.patch' | 1499 | patchfn = '0001-Add-a-note-line-to-the-quick-reference.patch' |
| 1500 | backportedpatchfn = 'backported.patch' | ||
| 1500 | self.assertExists(os.path.join(olddir, patchfn), 'Original patch file does not exist') | 1501 | self.assertExists(os.path.join(olddir, patchfn), 'Original patch file does not exist') |
| 1501 | return recipe, oldrecipefile, recipedir, olddir, newversion, patchfn | 1502 | self.assertExists(os.path.join(olddir, backportedpatchfn), 'Backported patch file does not exist') |
| 1503 | return recipe, oldrecipefile, recipedir, olddir, newversion, patchfn, backportedpatchfn | ||
| 1502 | 1504 | ||
| 1503 | def test_devtool_finish_upgrade_origlayer(self): | 1505 | def test_devtool_finish_upgrade_origlayer(self): |
| 1504 | recipe, oldrecipefile, recipedir, olddir, newversion, patchfn = self._setup_test_devtool_finish_upgrade() | 1506 | recipe, oldrecipefile, recipedir, olddir, newversion, patchfn, backportedpatchfn = self._setup_test_devtool_finish_upgrade() |
| 1505 | # Ensure the recipe is where we think it should be (so that cleanup doesn't trash things) | 1507 | # Ensure the recipe is where we think it should be (so that cleanup doesn't trash things) |
| 1506 | self.assertIn('/meta-selftest/', recipedir) | 1508 | self.assertIn('/meta-selftest/', recipedir) |
| 1507 | # Try finish to the original layer | 1509 | # Try finish to the original layer |
| @@ -1512,14 +1514,23 @@ class DevtoolUpgradeTests(DevtoolBase): | |||
| 1512 | self.assertNotExists(os.path.join(self.workspacedir, 'recipes', recipe), 'Recipe directory should not exist after finish') | 1514 | self.assertNotExists(os.path.join(self.workspacedir, 'recipes', recipe), 'Recipe directory should not exist after finish') |
| 1513 | self.assertNotExists(oldrecipefile, 'Old recipe file should have been deleted but wasn\'t') | 1515 | self.assertNotExists(oldrecipefile, 'Old recipe file should have been deleted but wasn\'t') |
| 1514 | self.assertNotExists(os.path.join(olddir, patchfn), 'Old patch file should have been deleted but wasn\'t') | 1516 | self.assertNotExists(os.path.join(olddir, patchfn), 'Old patch file should have been deleted but wasn\'t') |
| 1517 | self.assertNotExists(os.path.join(olddir, backportedpatchfn), 'Old backported patch file should have been deleted but wasn\'t') | ||
| 1515 | newrecipefile = os.path.join(recipedir, '%s_%s.bb' % (recipe, newversion)) | 1518 | newrecipefile = os.path.join(recipedir, '%s_%s.bb' % (recipe, newversion)) |
| 1516 | newdir = os.path.join(recipedir, recipe + '-' + newversion) | 1519 | newdir = os.path.join(recipedir, recipe + '-' + newversion) |
| 1517 | self.assertExists(newrecipefile, 'New recipe file should have been copied into existing layer but wasn\'t') | 1520 | self.assertExists(newrecipefile, 'New recipe file should have been copied into existing layer but wasn\'t') |
| 1518 | self.assertExists(os.path.join(newdir, patchfn), 'Patch file should have been copied into new directory but wasn\'t') | 1521 | self.assertExists(os.path.join(newdir, patchfn), 'Patch file should have been copied into new directory but wasn\'t') |
| 1522 | self.assertNotExists(os.path.join(newdir, backportedpatchfn), 'Backported patch file should not have been copied into new directory but was') | ||
| 1519 | self.assertExists(os.path.join(newdir, '0002-Add-a-comment-to-the-code.patch'), 'New patch file should have been created but wasn\'t') | 1523 | self.assertExists(os.path.join(newdir, '0002-Add-a-comment-to-the-code.patch'), 'New patch file should have been created but wasn\'t') |
| 1524 | with open(newrecipefile, 'r') as f: | ||
| 1525 | newcontent = f.read() | ||
| 1526 | self.assertNotIn(backportedpatchfn, newcontent, "Backported patch should have been removed from the recipe but wasn't") | ||
| 1527 | self.assertIn(patchfn, newcontent, "Old patch should have not been removed from the recipe but was") | ||
| 1528 | self.assertIn("0002-Add-a-comment-to-the-code.patch", newcontent, "New patch should have been added to the recipe but wasn't") | ||
| 1529 | self.assertIn("http://www.ivarch.com/programs/sources/pv-${PV}.tar.gz", newcontent, "New recipe no longer has upstream source in SRC_URI") | ||
| 1530 | |||
| 1520 | 1531 | ||
| 1521 | def test_devtool_finish_upgrade_otherlayer(self): | 1532 | def test_devtool_finish_upgrade_otherlayer(self): |
| 1522 | recipe, oldrecipefile, recipedir, olddir, newversion, patchfn = self._setup_test_devtool_finish_upgrade() | 1533 | recipe, oldrecipefile, recipedir, olddir, newversion, patchfn, backportedpatchfn = self._setup_test_devtool_finish_upgrade() |
| 1523 | # Ensure the recipe is where we think it should be (so that cleanup doesn't trash things) | 1534 | # Ensure the recipe is where we think it should be (so that cleanup doesn't trash things) |
| 1524 | self.assertIn('/meta-selftest/', recipedir) | 1535 | self.assertIn('/meta-selftest/', recipedir) |
| 1525 | # Try finish to a different layer - should create a bbappend | 1536 | # Try finish to a different layer - should create a bbappend |
| @@ -1535,10 +1546,18 @@ class DevtoolUpgradeTests(DevtoolBase): | |||
| 1535 | self.assertNotExists(os.path.join(self.workspacedir, 'recipes', recipe), 'Recipe directory should not exist after finish') | 1546 | self.assertNotExists(os.path.join(self.workspacedir, 'recipes', recipe), 'Recipe directory should not exist after finish') |
| 1536 | self.assertExists(oldrecipefile, 'Old recipe file should not have been deleted') | 1547 | self.assertExists(oldrecipefile, 'Old recipe file should not have been deleted') |
| 1537 | self.assertExists(os.path.join(olddir, patchfn), 'Old patch file should not have been deleted') | 1548 | self.assertExists(os.path.join(olddir, patchfn), 'Old patch file should not have been deleted') |
| 1549 | self.assertExists(os.path.join(olddir, backportedpatchfn), 'Old backported patch file should not have been deleted') | ||
| 1538 | newdir = os.path.join(newrecipedir, recipe + '-' + newversion) | 1550 | newdir = os.path.join(newrecipedir, recipe + '-' + newversion) |
| 1539 | self.assertExists(newrecipefile, 'New recipe file should have been copied into existing layer but wasn\'t') | 1551 | self.assertExists(newrecipefile, 'New recipe file should have been copied into existing layer but wasn\'t') |
| 1540 | self.assertExists(os.path.join(newdir, patchfn), 'Patch file should have been copied into new directory but wasn\'t') | 1552 | self.assertExists(os.path.join(newdir, patchfn), 'Patch file should have been copied into new directory but wasn\'t') |
| 1553 | self.assertNotExists(os.path.join(newdir, backportedpatchfn), 'Backported patch file should not have been copied into new directory but was') | ||
| 1541 | self.assertExists(os.path.join(newdir, '0002-Add-a-comment-to-the-code.patch'), 'New patch file should have been created but wasn\'t') | 1554 | self.assertExists(os.path.join(newdir, '0002-Add-a-comment-to-the-code.patch'), 'New patch file should have been created but wasn\'t') |
| 1555 | with open(newrecipefile, 'r') as f: | ||
| 1556 | newcontent = f.read() | ||
| 1557 | self.assertNotIn(backportedpatchfn, newcontent, "Backported patch should have been removed from the recipe but wasn't") | ||
| 1558 | self.assertIn(patchfn, newcontent, "Old patch should have not been removed from the recipe but was") | ||
| 1559 | self.assertIn("0002-Add-a-comment-to-the-code.patch", newcontent, "New patch should have been added to the recipe but wasn't") | ||
| 1560 | self.assertIn("http://www.ivarch.com/programs/sources/pv-${PV}.tar.gz", newcontent, "New recipe no longer has upstream source in SRC_URI") | ||
| 1542 | 1561 | ||
| 1543 | def _setup_test_devtool_finish_modify(self): | 1562 | def _setup_test_devtool_finish_modify(self): |
| 1544 | # Check preconditions | 1563 | # Check preconditions |
