Rewrite the public symbol check to verify the shared libraries, to check for more things, and to avoid duplication; fixes make check on ARM Taken from Debian: https://salsa.debian.org/multimedia-team/mpeg2dec/blob/master/debian/patches/61_global-symbol-test.patch --- mpeg2dec.orig/test/globals +++ mpeg2dec/test/globals @@ -1,4 +1,8 @@ #!/bin/sh +# TODO +# - fix checking of .a libs; problem is that "nm -g --defined-only" lists +# internal symbols; this can be solved by using objdump, but it's probably +# good enough to just run the tests on the shared lib if test x"$srcdir" != x""; then builddir="." # running from make check, but it does not define that @@ -14,22 +18,30 @@ builddir=`cd $builddir;pwd` error=0 -bad_globals=`nm -g --defined-only $builddir/../libmpeg2/*.o |\ - awk '{if ($3) print $3}' | grep -v '^_\?mpeg2_'` - -if test x"$bad_globals" != x""; then - echo BAD GLOBAL SYMBOLS: - for s in $bad_globals; do echo $s; done +# check_bad_public_symbols [...] +# +# checks public symbols in shared libs: +# - allow prefix_anything +# - reject _prefixanything +# - allow _anything +# - reject anything else +# +# NB: skips missing files +check_bad_public_symbols() { + symbols_prefix="$1" + shift + lib_files=`ls "$@" 2>/dev/null` + [ -z "$lib_files" ] && return + bad_globals=`nm -g --defined-only $lib_files | + awk '{if ($3) print $3}' | + sed -n "/^${symbols_prefix}_/ d; /^_${symbols_prefix}/ { p; d }; /^_/ d; p"` + [ -z "$bad_globals" ] && return error=1 -fi - -bad_globals=`nm -g --defined-only $builddir/../libmpeg2/convert/*.o |\ - awk '{if ($3) print $3}' | grep -v '^_\?mpeg2convert_'` + echo BAD GLOBAL SYMBOLS in $lib_files: + echo "$bad_globals" +} -if test x"$bad_globals" != x""; then - echo BAD GLOBAL SYMBOLS: - for s in $bad_globals; do echo $s; done - error=1 -fi +check_bad_public_symbols mpeg2 $builddir/../libmpeg2/.libs/libmpeg2.so +check_bad_public_symbols mpeg2convert $builddir/../libmpeg2/convert/.libs/libmpeg2convert.so exit $error d0ac15df8d3f9'>root/tests/guix-build-branch.sh
AgeCommit message (Expand)Author
2020-09-28tests: Simplify shell exit status negation;...* tests/guix-archive.sh, tests/guix-build-branch.sh, tests/guix-build.sh, tests/guix-daemon.sh, tests/guix-download.sh, tests/guix-environment.sh, tests/guix-gc.sh, tests/guix-git-authenticate.sh, tests/guix-graph.sh, tests/guix-hash.sh, tests/guix-lint.sh, tests/guix-pack-relocatable.sh, tests/guix-pack.sh, tests/guix-package-aliases.sh, tests/guix-package-net.sh, tests/guix-package.sh: Use the shell '!' keyword to negate command exit status in place of 'if ...; then false; else true; fi' Eric Bavier
2020-04-04tests: Adjust '--with-commit' test for tags....This is a followup to efa578ecaece67366b4b0e2266de7c2faaa4ae54. * tests/guix-build-branch.sh: Adjust '--with-commit=guile-gcrypt=v0.1.0' test to expect the tag ID rather than the commit ID. Ludovic Courtès
2019-09-04tests: Adjust '--with-commit' test....This is a followup to 4d04bc50d2df32be326e0f48f378dc581f873989. * tests/guix-build-branch.sh: Expect "v0.1.0" to lead to "guile-gcrypt-0.1.0". Ludovic Courtès
2019-07-26git: 'switch-to-ref' resolves tag targets....* guix/git.scm (switch-to-ref): In the 'tag' case, resolve the target of the tag. * tests/guix-build-branch.sh: Adjust test accordingly. Ludovic Courtès
2019-07-26git: <git-checkout> allows tags in its 'commit' field....Fixes <https://bugs.gnu.org/36371>. Reported by Tobias Geerinckx-Rice <me@tobias.gr>. * guix/git.scm (git-checkout-compiler): Pass 'tag-or-commit' to 'latest-repository-commit*'. * doc/guix.texi (Package Transformation Options): Update '--with-commit' documentation accordingly. * tests/guix-build-branch.sh: Add test. Ludovic Courtès