]> granicus.if.org Git - strace/commitdiff
tests: check strace -k symbol names demangling
authorDmitry V. Levin <ldv@altlinux.org>
Fri, 29 Dec 2017 15:20:21 +0000 (15:20 +0000)
committerDmitry V. Levin <ldv@altlinux.org>
Fri, 29 Dec 2017 15:20:21 +0000 (15:20 +0000)
* tests/strace-k-demangle.test: New test.
* tests/stack-fcall-mangled.c: New file.
* tests/stack-fcall-mangled-0.c: Likewise.
* tests/stack-fcall-mangled-1.c: Likewise.
* tests/stack-fcall-mangled-2.c: Likewise.
* tests/stack-fcall-mangled-3.c: Likewise.
* tests/stack-fcall.h [MANGLE] (f0, f1, f2, f3): New macros.
* tests/.gitignore: Add stack-fcall-mangled.
* tests/Makefile.am (check_PROGRAMS): Likewise.
(stack_fcall_mangled_SOURCES): New variable.
(EXTRA_DIST): Add strace-k-demangle.test.
[USE_LIBUNWIND && USE_DEMANGLE] (LIBUNWIND_TESTS): Likewise.

tests/.gitignore
tests/Makefile.am
tests/stack-fcall-mangled-0.c [new file with mode: 0644]
tests/stack-fcall-mangled-1.c [new file with mode: 0644]
tests/stack-fcall-mangled-2.c [new file with mode: 0644]
tests/stack-fcall-mangled-3.c [new file with mode: 0644]
tests/stack-fcall-mangled.c [new file with mode: 0644]
tests/stack-fcall.h
tests/strace-k-demangle.test [new file with mode: 0755]

index 20b0c9f2ebadc72eaaa0ce83e888ae8a1562d5a0..cfd66c685dcfaf7ad220c6447b20642174c0f82e 100644 (file)
@@ -415,6 +415,7 @@ socketcall
 sockopt-sol_netlink
 splice
 stack-fcall
+stack-fcall-mangled
 stat
 stat64
 statfs
index a6703e69fdbbfd4fe8ae6038ca85a4a91fb983d3..ad58e2388da1d0586daf97f967e4a6448120f795 100644 (file)
@@ -144,6 +144,7 @@ check_PROGRAMS = $(PURE_EXECUTABLES) \
        signal_receive \
        sleep \
        stack-fcall \
+       stack-fcall-mangled \
        threads-execve \
        unblock_reset_raise \
        unix-pair-send-recv \
@@ -183,10 +184,17 @@ uio_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64
 stack_fcall_SOURCES = stack-fcall.c \
        stack-fcall-0.c stack-fcall-1.c stack-fcall-2.c stack-fcall-3.c
 
+stack_fcall_mangled_SOURCES = stack-fcall-mangled.c \
+       stack-fcall-mangled-0.c stack-fcall-mangled-1.c \
+       stack-fcall-mangled-2.c stack-fcall-mangled-3.c
+
 include gen_tests.am
 
 if USE_LIBUNWIND
 LIBUNWIND_TESTS = strace-k.test
+if USE_DEMANGLE
+LIBUNWIND_TESTS += strace-k-demangle.test
+endif
 else
 LIBUNWIND_TESTS =
 endif
@@ -368,6 +376,7 @@ EXTRA_DIST = \
        strace-E.expected \
        strace-T.expected \
        strace-ff.expected \
+       strace-k-demangle.test \
        strace-k.test \
        strace-r.expected \
        strace.supp \
diff --git a/tests/stack-fcall-mangled-0.c b/tests/stack-fcall-mangled-0.c
new file mode 100644 (file)
index 0000000..4754940
--- /dev/null
@@ -0,0 +1,2 @@
+#define MANGLE
+#include "stack-fcall-0.c"
diff --git a/tests/stack-fcall-mangled-1.c b/tests/stack-fcall-mangled-1.c
new file mode 100644 (file)
index 0000000..492c562
--- /dev/null
@@ -0,0 +1,2 @@
+#define MANGLE
+#include "stack-fcall-1.c"
diff --git a/tests/stack-fcall-mangled-2.c b/tests/stack-fcall-mangled-2.c
new file mode 100644 (file)
index 0000000..eb7c362
--- /dev/null
@@ -0,0 +1,2 @@
+#define MANGLE
+#include "stack-fcall-2.c"
diff --git a/tests/stack-fcall-mangled-3.c b/tests/stack-fcall-mangled-3.c
new file mode 100644 (file)
index 0000000..98f738b
--- /dev/null
@@ -0,0 +1,2 @@
+#define MANGLE
+#include "stack-fcall-3.c"
diff --git a/tests/stack-fcall-mangled.c b/tests/stack-fcall-mangled.c
new file mode 100644 (file)
index 0000000..6786205
--- /dev/null
@@ -0,0 +1,2 @@
+#define MANGLE
+#include "stack-fcall.c"
index afe0bfa85cb1edcd62ecf65a4c9ddcf4e0be0775..1a83bad417f808e47b543502802c19624f29ed32 100644 (file)
@@ -1,3 +1,12 @@
+#ifdef MANGLE
+
+#define f0 _ZN2ns2f0Ei
+#define f1 _ZN2ns2f1Ei
+#define f2 _ZN2ns2f2Ei
+#define f3 _ZN2ns2f3Ei
+
+#endif
+
 int f0(int i);
 int f1(int i);
 int f2(int i);
diff --git a/tests/strace-k-demangle.test b/tests/strace-k-demangle.test
new file mode 100755 (executable)
index 0000000..d68b1a0
--- /dev/null
@@ -0,0 +1,7 @@
+#!/bin/sh
+# Check strace -k symbol names demangling.
+
+test_prog=../stack-fcall-mangled
+expected='getpid ns::f3 ns::f2 ns::f1 ns::f0 main '
+
+. "${srcdir=.}"/strace-k.test