diff --git a/test/Makefile.am b/test/Makefile.am index 4e92375..5f0c008 100644 --- a/test/Makefile.am +++ b/test/Makefile.am @@ -130,28 +130,14 @@ endif # GCOV_ENABLED endif # ENABLE_RUNTIME_TESTS if ENABLE_STATIC_SYMBOL_LEAKS_TEST -# Hack to check for leaking symbols in the static library. -# See https://bugs.freedesktop.org/show_bug.cgi?id=82785 -# Note the spaces in the expressions! After the first grep, each line -# is " T symbol_name" -static-symbol-leaks: test-static-link - $(AM_V_GEN)(\ - $(NM) --extern-only $(builddir)/test-static-link | \ - grep -o -e " T .*" | \ - grep -v -e " main$$" \ - -e " atexit" \ - -e " mangle_path" \ - -e " *gcov.*" \ - -e " _.*" \ - -e " libevdev_*" && \ - echo "Leaking symbols found" && \ - exit 1 || exit 0 \ - ) +static-symbol-leaks: test-static-link test-static-symbols-leak.sh + $(AM_V_GEN) $(srcdir)/test-static-symbols-leak.sh $(builddir) check_local_deps += static-symbol-leaks + endif # HAVE_NM -EXTRA_DIST = valgrind.suppressions generate-gcov-report.sh +EXTRA_DIST = valgrind.suppressions generate-gcov-report.sh test-static-symbols-leak.sh check-local: $(check_local_deps) diff --git a/test/test-static-symbols-leak.sh b/test/test-static-symbols-leak.sh new file mode 100755 index 0000000..74ff3b9 --- /dev/null +++ b/test/test-static-symbols-leak.sh @@ -0,0 +1,19 @@ +#!/bin/bash +# +# Hack to check for leaking symbols in the static library. +# See https://bugs.freedesktop.org/show_bug.cgi?id=82785 +# Note the spaces in the expressions! After the first grep, each line +# is " T symbol_name" + +builddir="$1" + +test -f "$builddir/test-static-link" || (echo "Unable to find test file" && exit 1) +nm --extern-only "$builddir/test-static-link" | + grep -o -e " T .*" | \ + grep -v -e " main\$" \ + -e " atexit" \ + -e " mangle_path" \ + -e " *gcov.*" \ + -e " _.*" \ + -e " libevdev_*" && \ + echo "Leaking symbols found" && exit 1 || exit 0