summaryrefslogtreecommitdiffstats
path: root/meta-selftest
diff options
context:
space:
mode:
authorHongxu Jia <hongxu.jia@windriver.com>2018-08-26 13:05:28 +0800
committerRichard Purdie <richard.purdie@linuxfoundation.org>2018-08-28 10:30:28 +0100
commit1c048479af7cc98e30f9a33d1f3bef03711544aa (patch)
tree8b97ccb16a3b548ef7b87eac0365d9fc9b36016d /meta-selftest
parentec71111c9c5b438d3f2455968e32b47551ddc62d (diff)
downloadpoky-1c048479af7cc98e30f9a33d1f3bef03711544aa.tar.gz
selftest/package: Add package separated debug symbols hardlink test
Tweak recipe selftest-hardlink - addition of libexecdir to simulate multiple directories - add gdb.sh to run gdb from script which is invoked at test time. - rename `hello' -> `hello1' to workaround name confliction with the one in lmbench Add test_gdb_hardlink_debug to selftest/package - run a qemu and invoke gdb.sh to gdb binaries of selftest-hardlink - check gdb to read symbols from separated debug hardlink file - check debug symbols works correctly [Test without commit `package.bbclass: only one hardlink of separated debug info file in each directory'] 2018-08-26 01:27:30,195 - oe-selftest - INFO - test_gdb_hardlink_debug (package.PackageTests) 2018-08-26 01:30:29,005 - oe-selftest - INFO - gdbtest /usr/bin/hello1 2018-08-26 01:30:36,539 - oe-selftest - INFO - gdbtest /usr/bin/hello2 2018-08-26 01:30:43,568 - oe-selftest - INFO - gdbtest /usr/libexec/hello3 2018-08-26 01:30:50,157 - oe-selftest - ERROR - No debugging symbols found. GDB result: Reading symbols from /usr/libexec/hello3...(no debugging symbols found)...done.^M (gdb) Function "main" not defined.^M Make breakpoint pending on future shared library load? (y or [n]) [answered N; input not from terminal]^M (gdb) Starting program: /usr/libexec/hello3 ^M Hello World!^M [Inferior 1 (process 320) exited normally]^M (gdb) The program is not being run.^M (gdb) 2018-08-26 01:30:51,180 - oe-selftest - INFO - ... FAIL 2018-08-26 01:30:51,181 - oe-selftest - INFO - Traceback (most recent call last): File "oe-core/meta/lib/oeqa/selftest/cases/package.py", line 148, in test_gdb_hardlink_debug self.fail('GDB %s failed' % binary) AssertionError: GDB /usr/libexec/hello3 failed [Test without commit `package.bbclass: only one hardlink of separated debug info file in each directory'] [Test with commit `package.bbclass: only one hardlink of separated debug info file in each directory'] 2018-08-26 12:40:30,976 - oe-selftest - INFO - test_gdb_hardlink_debug (package.PackageTests) 2018-08-26 12:42:15,149 - oe-selftest - INFO - gdbtest /usr/bin/hello1 2018-08-26 12:42:24,064 - oe-selftest - INFO - gdbtest /usr/bin/hello2 2018-08-26 12:42:31,078 - oe-selftest - INFO - gdbtest /usr/libexec/hello3 2018-08-26 12:42:38,646 - oe-selftest - INFO - gdbtest /usr/libexec/hello4 2018-08-26 12:42:46,824 - oe-selftest - INFO - ... ok [Test with commit `package.bbclass: only one hardlink of separated debug info file in each directory'] (From OE-Core rev: 104d07e57488f4a414fb5e1f60d0c8b0c02d6b4d) Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta-selftest')
-rw-r--r--meta-selftest/recipes-test/selftest-hardlink/selftest-hardlink.bb22
-rwxr-xr-xmeta-selftest/recipes-test/selftest-hardlink/selftest-hardlink/gdb.sh8
2 files changed, 24 insertions, 6 deletions
diff --git a/meta-selftest/recipes-test/selftest-hardlink/selftest-hardlink.bb b/meta-selftest/recipes-test/selftest-hardlink/selftest-hardlink.bb
index ec330fa9ff..842a9772cb 100644
--- a/meta-selftest/recipes-test/selftest-hardlink/selftest-hardlink.bb
+++ b/meta-selftest/recipes-test/selftest-hardlink/selftest-hardlink.bb
@@ -2,19 +2,29 @@ LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda
2 2
3LICENSE = "MIT" 3LICENSE = "MIT"
4 4
5SRC_URI = "file://hello.c" 5SRC_URI = "file://hello.c \
6 file://gdb.sh \
7"
6 8
7S = "${WORKDIR}" 9S = "${WORKDIR}"
8 10
9do_compile () { 11do_compile () {
10 ${CC} hello.c -o hello ${CFLAGS} ${LDFLAGS} 12 ${CC} hello.c -o hello1 ${CFLAGS} ${LDFLAGS}
11} 13}
12 14
13do_install () { 15do_install () {
14 install -d ${D}${bindir} 16 install -d ${D}${bindir}
15 install -m 755 hello ${D}${bindir}/hello 17 install -m 755 ${WORKDIR}/gdb.sh ${D}${bindir}/
16 ln ${D}${bindir}/hello ${D}${bindir}/hello2 18 install -m 755 hello1 ${D}${bindir}/hello1
17 ln ${D}${bindir}/hello ${D}${bindir}/hello3 19 ln ${D}${bindir}/hello1 ${D}${bindir}/hello2
18 ln ${D}${bindir}/hello ${D}${bindir}/hello4 20
21 install -d ${D}${libexecdir}
22 ln ${D}${bindir}/hello1 ${D}${libexecdir}/hello3
23 ln ${D}${bindir}/hello1 ${D}${libexecdir}/hello4
24
19 dd if=/dev/zero of=${D}${bindir}/sparsetest bs=1 count=0 seek=1M 25 dd if=/dev/zero of=${D}${bindir}/sparsetest bs=1 count=0 seek=1M
20} 26}
27
28RDEPENDS_${PN}-gdb += "gdb"
29PACKAGES =+ "${PN}-gdb"
30FILES_${PN}-gdb = "${bindir}/gdb.sh"
diff --git a/meta-selftest/recipes-test/selftest-hardlink/selftest-hardlink/gdb.sh b/meta-selftest/recipes-test/selftest-hardlink/selftest-hardlink/gdb.sh
new file mode 100755
index 0000000000..f6417d5458
--- /dev/null
+++ b/meta-selftest/recipes-test/selftest-hardlink/selftest-hardlink/gdb.sh
@@ -0,0 +1,8 @@
1#!/bin/sh
2gdb -q $1 <<'EOF'
3b main
4r
5c
6q
7EOF
8echo ""