[OE-core] [PATCH V2 2/2] selftest/package: improve case to test debug package splitting
Hongxu Jia
hongxu.jia at windriver.com
Fri Sep 14 12:06:59 UTC 2018
Tweak recipe selftest-hardlink
- Add ${PN}-bin, ${PN}-bin-dbg
Tweak test_preserve_sparse_hardlinks
- s/selftest-hardlink/selftest-hardlink-bin/
Tweak case test_gdb_hardlink_debug
- Test gdb debug package separately, verify the debug
package splitting works correctly.
[Test without commit `package.bbclass: improve auto debug package splitting order']
2018-09-14 15:58:06,233 - oe-selftest - INFO - ======================================================================
2018-09-14 15:58:06,233 - oe-selftest - INFO - FAIL: test_gdb_hardlink_debug (package.PackageTests)
2018-09-14 15:58:06,233 - oe-selftest - INFO - ----------------------------------------------------------------------
2018-09-14 15:58:06,233 - oe-selftest - INFO - Traceback (most recent call last):
File "oe-core/meta/lib/oeqa/selftest/cases/package.py", line 123, in test_gdb_hardlink_debug
self._test_gdb_debug(packages, binaries)
File "oe-core/meta/lib/oeqa/selftest/cases/package.py", line 162, in _test_gdb_debug
self.fail('GDB %s failed' % binary)
AssertionError: GDB /usr/libexec/hello3 failed
[Test without commit `package.bbclass: improve auto debug package splitting order']
Signed-off-by: Hongxu Jia <hongxu.jia at windriver.com>
---
.../selftest-hardlink/selftest-hardlink.bb | 4 ++-
meta/lib/oeqa/selftest/cases/package.py | 31 +++++++++++++++-------
2 files changed, 25 insertions(+), 10 deletions(-)
diff --git a/meta-selftest/recipes-test/selftest-hardlink/selftest-hardlink.bb b/meta-selftest/recipes-test/selftest-hardlink/selftest-hardlink.bb
index 842a977..7d544b4 100644
--- a/meta-selftest/recipes-test/selftest-hardlink/selftest-hardlink.bb
+++ b/meta-selftest/recipes-test/selftest-hardlink/selftest-hardlink.bb
@@ -26,5 +26,7 @@ do_install () {
}
RDEPENDS_${PN}-gdb += "gdb"
-PACKAGES =+ "${PN}-gdb"
+PACKAGES =+ "${PN}-gdb ${PN}-bin ${PN}-bin-dbg"
FILES_${PN}-gdb = "${bindir}/gdb.sh"
+FILES_${PN}-bin-dbg = "${bindir}/.debug/*"
+
diff --git a/meta/lib/oeqa/selftest/cases/package.py b/meta/lib/oeqa/selftest/cases/package.py
index 0a88dc2..d90297a 100644
--- a/meta/lib/oeqa/selftest/cases/package.py
+++ b/meta/lib/oeqa/selftest/cases/package.py
@@ -98,10 +98,10 @@ class PackageTests(OESelftestTestCase):
def checkfiles():
# 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 + "/hello1").st_nlink, 8)
+ self.assertEqual(os.stat(dest + "/selftest-hardlink-bin" + bindir + "/hello1").st_nlink, 8)
# Test a sparse file remains sparse
- sparsestat = os.stat(dest + "/selftest-hardlink" + bindir + "/sparsetest")
+ sparsestat = os.stat(dest + "/selftest-hardlink-bin" + bindir + "/sparsetest")
self.assertEqual(sparsestat.st_blocks, 0)
self.assertEqual(sparsestat.st_size, 1048576)
@@ -115,9 +115,25 @@ class PackageTests(OESelftestTestCase):
# Verify gdb to read symbols from separated debug hardlink file correctly
def test_gdb_hardlink_debug(self):
- features = 'IMAGE_INSTALL_append = " selftest-hardlink"\n'
- features += 'IMAGE_INSTALL_append = " selftest-hardlink-dbg"\n'
- features += 'IMAGE_INSTALL_append = " selftest-hardlink-gdb"\n'
+ packages = ['selftest-hardlink',
+ 'selftest-hardlink-dbg',
+ 'selftest-hardlink-gdb']
+ binaries = ['/usr/libexec/hello3',
+ '/usr/libexec/hello4']
+ self._test_gdb_debug(packages, binaries)
+
+ packages = ['selftest-hardlink-bin',
+ 'selftest-hardlink-bin-dbg',
+ 'selftest-hardlink-gdb']
+ binaries = ['/usr/bin/hello1',
+ '/usr/bin/hello2']
+ self._test_gdb_debug(packages, binaries)
+
+ def _test_gdb_debug(self, packages, binaries):
+ features = ""
+ for pkg in packages:
+ features += 'IMAGE_INSTALL_append = " %s"\n' % pkg
+
self.write_config(features)
bitbake("core-image-minimal")
@@ -141,9 +157,6 @@ class PackageTests(OESelftestTestCase):
return False
with runqemu('core-image-minimal') as qemu:
- for binary in ['/usr/bin/hello1',
- '/usr/bin/hello2',
- '/usr/libexec/hello3',
- '/usr/libexec/hello4']:
+ for binary in binaries:
if not gdbtest(qemu, binary):
self.fail('GDB %s failed' % binary)
--
2.7.4
More information about the Openembedded-core
mailing list