From: Richard Purdie Date: Sun, 12 Aug 2018 22:29:18 +0000 (+0000) Subject: selftest/package: Add test to ensure sparse files are preserved X-Git-Tag: lucaceresoli/bug-15201-perf-libtraceevent-missing~17046 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=0a4e6974b49bf68c4a4098d339b5d655e202a3fd;p=thirdparty%2Fopenembedded%2Fopenembedded-core-contrib.git selftest/package: Add test to ensure sparse files are preserved Add a new element to the hardlink test to check we also preseve file sparseness during the packing process. This should ensure we don't regress this issue again. Signed-off-by: Richard Purdie --- diff --git a/meta-selftest/recipes-test/selftest-hardlink/selftest-hardlink.bb b/meta-selftest/recipes-test/selftest-hardlink/selftest-hardlink.bb index 8a0e6336aa8..ec330fa9fff 100644 --- a/meta-selftest/recipes-test/selftest-hardlink/selftest-hardlink.bb +++ b/meta-selftest/recipes-test/selftest-hardlink/selftest-hardlink.bb @@ -16,4 +16,5 @@ do_install () { ln ${D}${bindir}/hello ${D}${bindir}/hello2 ln ${D}${bindir}/hello ${D}${bindir}/hello3 ln ${D}${bindir}/hello ${D}${bindir}/hello4 + dd if=/dev/zero of=${D}${bindir}/sparsetest bs=1 count=0 seek=1M } diff --git a/meta/lib/oeqa/selftest/cases/package.py b/meta/lib/oeqa/selftest/cases/package.py index f288fcafdb4..4ff9b08c96a 100644 --- a/meta/lib/oeqa/selftest/cases/package.py +++ b/meta/lib/oeqa/selftest/cases/package.py @@ -88,6 +88,7 @@ class VersionOrdering(OESelftestTestCase): class PackageTests(OESelftestTestCase): # Verify that a recipe which sets up hardlink files has those preserved into split packages + # Also test file sparseness is preserved def test_preserve_hardlinks(self): result = bitbake("selftest-hardlink -c package") @@ -97,3 +98,8 @@ class PackageTests(OESelftestTestCase): # Recipe creates 4 hardlinked files, there is a copy in package/ and a copy in packages-split/ # so expect 8 in total. self.assertEqual(os.stat(dest + "/selftest-hardlink" + bindir + "/hello").st_nlink, 8) + + # Test a sparse file remains sparse + sparsestat = os.stat(dest + "/selftest-hardlink" + bindir + "/sparsetest") + self.assertEqual(sparsestat.st_blocks, 0) + self.assertEqual(sparsestat.st_size, 1048576)