Signed-off-by: Mark Wielaard <m...@redhat.com> --- tests/ChangeLog | 6 ++++++ tests/Makefile.am | 4 +++- tests/run-readelf-unknown-self.sh | 21 +++++++++++++++++++++ tests/test-subr.sh | 23 +++++++++++++++++++++++ 4 files changed, 53 insertions(+), 1 deletion(-) create mode 100755 tests/run-readelf-unknown-self.sh
diff --git a/tests/ChangeLog b/tests/ChangeLog index 24ba17e..8ca08ea 100644 --- a/tests/ChangeLog +++ b/tests/ChangeLog @@ -1,3 +1,9 @@ +2012-07-19 Mark Wielaard <m...@redhat.com> + + * run-readelf-unknown-self.sh: New test. + * Makefile.am (TESTS): Add run-readelf-unknown-self.sh. + (EXTRA_DIST): Likewise. + 2012-07-27 Mark Wielaard <m...@redhat.com> * allregs.c (dwarf_encoding_string): Removed. diff --git a/tests/Makefile.am b/tests/Makefile.am index df66db6..0570569 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -73,7 +73,8 @@ TESTS = run-arextract.sh run-arsymtest.sh newfile test-nlist \ run-nm-self.sh run-readelf-self.sh \ run-readelf-test1.sh run-readelf-test2.sh run-readelf-test3.sh \ run-readelf-test4.sh run-readelf-twofiles.sh \ - run-readelf-macro.sh run-readelf-dwz-multi.sh \ + run-readelf-unknown-self.sh run-readelf-macro.sh \ + run-readelf-dwz-multi.sh \ run-native-test.sh run-bug1-test.sh \ dwfl-bug-addr-overflow run-addrname-test.sh \ dwfl-bug-fd-leak dwfl-bug-report \ @@ -132,6 +133,7 @@ EXTRA_DIST = run-arextract.sh run-arsymtest.sh \ coverage.sh test-subr.sh test-wrapper.sh \ run-readelf-test1.sh run-readelf-test2.sh run-readelf-test3.sh \ run-readelf-test4.sh run-readelf-twofiles.sh \ + run-readelf-unknown-self.sh \ run-bug1-test.sh testfile28.bz2 testfile28.rdwr.bz2 \ testfile29.bz2 testfile29.rdwr.bz2 \ testfile30.bz2 testfile31.bz2 testfile32.bz2 testfile33.bz2 \ diff --git a/tests/run-readelf-unknown-self.sh b/tests/run-readelf-unknown-self.sh new file mode 100755 index 0000000..264c7f0 --- /dev/null +++ b/tests/run-readelf-unknown-self.sh @@ -0,0 +1,21 @@ +#! /bin/sh +# Copyright (C) 2012 Red Hat, Inc. +# This file is part of elfutils. +# +# This file is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# elfutils is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. + +. $srcdir/test-subr.sh + +# Make sure there are no unknown DWARF codes. +testrun_on_self_nomatch "unknown_0x[0-9a-f]+|lo_user\+0x[0-9a-f]" ../src/readelf -N -w diff --git a/tests/test-subr.sh b/tests/test-subr.sh index ff29136..5637f62 100644 --- a/tests/test-subr.sh +++ b/tests/test-subr.sh @@ -136,3 +136,26 @@ testrun_on_self_quiet() # Only exit if something failed if test $exit_status != 0; then exit $exit_status; fi } + +# Make sure the testrun doesn't contain some regular expression output. +# First argument is an egrep regular expression, the rest is the command +# to run on all self test files. +testrun_on_self_nomatch() +{ + pattern="$1" + shift + + exit_status=0 + tempfiles self_matches.out + + for file in $self_test_files; do + testrun $* $file | egrep -o "$pattern" | sort -u > self_matches.out \ + || : + if test -s self_matches.out; then + echo "*** failure in $* $file"; cat self_matches.out; exit_status=1; + fi + done + + # Only exit if something failed + if test $exit_status != 0; then exit $exit_status; fi +} -- 1.7.11.2 _______________________________________________ elfutils-devel mailing list elfutils-devel@lists.fedorahosted.org https://lists.fedorahosted.org/mailman/listinfo/elfutils-devel