diff options
author | Hongxu Jia <hongxu.jia@windriver.com> | 2018-08-26 13:05:28 +0800 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2018-08-28 10:30:28 +0100 |
commit | 1c048479af7cc98e30f9a33d1f3bef03711544aa (patch) | |
tree | 8b97ccb16a3b548ef7b87eac0365d9fc9b36016d /meta-selftest/recipes-test | |
parent | ec71111c9c5b438d3f2455968e32b47551ddc62d (diff) | |
download | poky-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/recipes-test')
-rw-r--r-- | meta-selftest/recipes-test/selftest-hardlink/selftest-hardlink.bb | 22 | ||||
-rwxr-xr-x | meta-selftest/recipes-test/selftest-hardlink/selftest-hardlink/gdb.sh | 8 |
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 | ||
3 | LICENSE = "MIT" | 3 | LICENSE = "MIT" |
4 | 4 | ||
5 | SRC_URI = "file://hello.c" | 5 | SRC_URI = "file://hello.c \ |
6 | file://gdb.sh \ | ||
7 | " | ||
6 | 8 | ||
7 | S = "${WORKDIR}" | 9 | S = "${WORKDIR}" |
8 | 10 | ||
9 | do_compile () { | 11 | do_compile () { |
10 | ${CC} hello.c -o hello ${CFLAGS} ${LDFLAGS} | 12 | ${CC} hello.c -o hello1 ${CFLAGS} ${LDFLAGS} |
11 | } | 13 | } |
12 | 14 | ||
13 | do_install () { | 15 | do_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 | |||
28 | RDEPENDS_${PN}-gdb += "gdb" | ||
29 | PACKAGES =+ "${PN}-gdb" | ||
30 | FILES_${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 | ||
2 | gdb -q $1 <<'EOF' | ||
3 | b main | ||
4 | r | ||
5 | c | ||
6 | q | ||
7 | EOF | ||
8 | echo "" | ||