From 51a82254077cc4c1ba6e7a06e221baabe4288059 Mon Sep 17 00:00:00 2001 From: "Dmitry V. Levin" Date: Fri, 29 Dec 2017 15:20:21 +0000 Subject: [PATCH] tests: check strace -k symbol names demangling * 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 | 1 + tests/Makefile.am | 9 +++++++++ tests/stack-fcall-mangled-0.c | 2 ++ tests/stack-fcall-mangled-1.c | 2 ++ tests/stack-fcall-mangled-2.c | 2 ++ tests/stack-fcall-mangled-3.c | 2 ++ tests/stack-fcall-mangled.c | 2 ++ tests/stack-fcall.h | 9 +++++++++ tests/strace-k-demangle.test | 7 +++++++ 9 files changed, 36 insertions(+) create mode 100644 tests/stack-fcall-mangled-0.c create mode 100644 tests/stack-fcall-mangled-1.c create mode 100644 tests/stack-fcall-mangled-2.c create mode 100644 tests/stack-fcall-mangled-3.c create mode 100644 tests/stack-fcall-mangled.c create mode 100755 tests/strace-k-demangle.test diff --git a/tests/.gitignore b/tests/.gitignore index 20b0c9f2..cfd66c68 100644 --- a/tests/.gitignore +++ b/tests/.gitignore @@ -415,6 +415,7 @@ socketcall sockopt-sol_netlink splice stack-fcall +stack-fcall-mangled stat stat64 statfs diff --git a/tests/Makefile.am b/tests/Makefile.am index a6703e69..ad58e238 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -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 index 00000000..47549401 --- /dev/null +++ b/tests/stack-fcall-mangled-0.c @@ -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 index 00000000..492c562b --- /dev/null +++ b/tests/stack-fcall-mangled-1.c @@ -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 index 00000000..eb7c3624 --- /dev/null +++ b/tests/stack-fcall-mangled-2.c @@ -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 index 00000000..98f738b4 --- /dev/null +++ b/tests/stack-fcall-mangled-3.c @@ -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 index 00000000..67862059 --- /dev/null +++ b/tests/stack-fcall-mangled.c @@ -0,0 +1,2 @@ +#define MANGLE +#include "stack-fcall.c" diff --git a/tests/stack-fcall.h b/tests/stack-fcall.h index afe0bfa8..1a83bad4 100644 --- a/tests/stack-fcall.h +++ b/tests/stack-fcall.h @@ -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 index 00000000..d68b1a01 --- /dev/null +++ b/tests/strace-k-demangle.test @@ -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 -- 2.40.0