From: Nicholas Nethercote Date: Thu, 18 Nov 2004 12:48:17 +0000 (+0000) Subject: Generalised the reg test script again: replaced the "cpu_test" line, X-Git-Tag: svn/VALGRIND_3_0_0~1275 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=3b4dc0bdba13f7b89356f22f1c36975e4882d701;p=thirdparty%2Fvalgrind.git Generalised the reg test script again: replaced the "cpu_test" line, which caused the test to be skipped if the CPU type wasn't appropriate, with a "prereq" line, which specifies a command that must succeed before the test is run. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3041 --- diff --git a/addrcheck/tests/x86/insn_cmov.vgtest b/addrcheck/tests/x86/insn_cmov.vgtest index 8deeb9eb98..28f108c8b8 100644 --- a/addrcheck/tests/x86/insn_cmov.vgtest +++ b/addrcheck/tests/x86/insn_cmov.vgtest @@ -1,3 +1,3 @@ vgopts: -q prog: ../../../none/tests/x86/insn_cmov -cpu_test: x86-cmov +prereq: ../../../tests/cputest x86-cmov diff --git a/addrcheck/tests/x86/insn_fpu.vgtest b/addrcheck/tests/x86/insn_fpu.vgtest index e7ca604d85..278e8b79ed 100644 --- a/addrcheck/tests/x86/insn_fpu.vgtest +++ b/addrcheck/tests/x86/insn_fpu.vgtest @@ -1,3 +1,3 @@ vgopts: -q prog: ../../../none/tests/x86/insn_fpu -cpu_test: x86-fpu +prereq: ../../../tests/cputest x86-fpu diff --git a/addrcheck/tests/x86/insn_mmx.vgtest b/addrcheck/tests/x86/insn_mmx.vgtest index 6f6b2ab4ee..d0ffcf4994 100644 --- a/addrcheck/tests/x86/insn_mmx.vgtest +++ b/addrcheck/tests/x86/insn_mmx.vgtest @@ -1,3 +1,3 @@ vgopts: -q prog: ../../../none/tests/x86/insn_mmx -cpu_test: x86-mmx +prereq: ../../../tests/cputest x86-mmx diff --git a/addrcheck/tests/x86/insn_mmxext.vgtest b/addrcheck/tests/x86/insn_mmxext.vgtest index 7a30fa4182..2f5d9ef4da 100644 --- a/addrcheck/tests/x86/insn_mmxext.vgtest +++ b/addrcheck/tests/x86/insn_mmxext.vgtest @@ -1,3 +1,3 @@ vgopts: -q prog: ../../../none/tests/x86/insn_mmxext -cpu_test: x86-mmxext +prereq: ../../../tests/cputest x86-mmxext diff --git a/addrcheck/tests/x86/insn_sse.vgtest b/addrcheck/tests/x86/insn_sse.vgtest index 626e712227..be56cc9d4b 100644 --- a/addrcheck/tests/x86/insn_sse.vgtest +++ b/addrcheck/tests/x86/insn_sse.vgtest @@ -1,3 +1,3 @@ vgopts: -q prog: ../../../none/tests/x86/insn_sse -cpu_test: x86-sse +prereq: ../../../tests/cputest x86-sse diff --git a/addrcheck/tests/x86/insn_sse2.vgtest b/addrcheck/tests/x86/insn_sse2.vgtest index 8a09a99241..346e5c4e02 100644 --- a/addrcheck/tests/x86/insn_sse2.vgtest +++ b/addrcheck/tests/x86/insn_sse2.vgtest @@ -1,3 +1,3 @@ vgopts: -q prog: ../../../none/tests/x86/insn_sse2 -cpu_test: x86-sse2 +prereq: ../../../tests/cputest x86-sse2 diff --git a/cachegrind/tests/x86/fpu-28-108.vgtest b/cachegrind/tests/x86/fpu-28-108.vgtest index 47c2606bc6..b2e138edd2 100644 --- a/cachegrind/tests/x86/fpu-28-108.vgtest +++ b/cachegrind/tests/x86/fpu-28-108.vgtest @@ -1,3 +1,2 @@ prog: fpu-28-108 cleanup: rm cachegrind.out.* -cpu_test: x86 diff --git a/cachegrind/tests/x86/insn_cmov.vgtest b/cachegrind/tests/x86/insn_cmov.vgtest index 3d5d2bc2d6..1290b2e0ee 100644 --- a/cachegrind/tests/x86/insn_cmov.vgtest +++ b/cachegrind/tests/x86/insn_cmov.vgtest @@ -1,4 +1,4 @@ vgopts: -q prog: ../../../none/tests/x86/insn_cmov -cpu_test: x86-cmov +prereq: ../../../tests/cputest x86-cmov cleanup: rm cachegrind.out.* diff --git a/cachegrind/tests/x86/insn_fpu.vgtest b/cachegrind/tests/x86/insn_fpu.vgtest index 486ce5869d..a6f3b17b71 100644 --- a/cachegrind/tests/x86/insn_fpu.vgtest +++ b/cachegrind/tests/x86/insn_fpu.vgtest @@ -1,4 +1,4 @@ vgopts: -q prog: ../../../none/tests/x86/insn_fpu -cpu_test: x86-fpu +prereq: ../../../tests/cputest x86-fpu cleanup: rm cachegrind.out.* diff --git a/cachegrind/tests/x86/insn_mmx.vgtest b/cachegrind/tests/x86/insn_mmx.vgtest index 36dcc2063d..591b0c82d4 100644 --- a/cachegrind/tests/x86/insn_mmx.vgtest +++ b/cachegrind/tests/x86/insn_mmx.vgtest @@ -1,4 +1,4 @@ vgopts: -q prog: ../../../none/tests/x86/insn_mmx -cpu_test: x86-mmx +prereq: ../../../tests/cputest x86-mmx cleanup: rm cachegrind.out.* diff --git a/cachegrind/tests/x86/insn_mmxext.vgtest b/cachegrind/tests/x86/insn_mmxext.vgtest index 96da64d193..6d2cbb4533 100644 --- a/cachegrind/tests/x86/insn_mmxext.vgtest +++ b/cachegrind/tests/x86/insn_mmxext.vgtest @@ -1,4 +1,4 @@ vgopts: -q prog: ../../../none/tests/x86/insn_mmxext -cpu_test: x86-mmxext +prereq: ../../../tests/cputest x86-mmxext cleanup: rm cachegrind.out.* diff --git a/cachegrind/tests/x86/insn_sse.vgtest b/cachegrind/tests/x86/insn_sse.vgtest index 08837b6371..73b143ff32 100644 --- a/cachegrind/tests/x86/insn_sse.vgtest +++ b/cachegrind/tests/x86/insn_sse.vgtest @@ -1,4 +1,4 @@ vgopts: -q prog: ../../../none/tests/x86/insn_sse -cpu_test: x86-sse +prereq: ../../../tests/cputest x86-sse cleanup: rm cachegrind.out.* diff --git a/cachegrind/tests/x86/insn_sse2.vgtest b/cachegrind/tests/x86/insn_sse2.vgtest index b0fe3e76a1..9c99e03298 100644 --- a/cachegrind/tests/x86/insn_sse2.vgtest +++ b/cachegrind/tests/x86/insn_sse2.vgtest @@ -1,4 +1,4 @@ vgopts: -q prog: ../../../none/tests/x86/insn_sse2 -cpu_test: x86-sse2 +prereq: ../../../tests/cputest x86-sse2 cleanup: rm cachegrind.out.* diff --git a/helgrind/tests/x86/insn_cmov.vgtest b/helgrind/tests/x86/insn_cmov.vgtest index 8deeb9eb98..28f108c8b8 100644 --- a/helgrind/tests/x86/insn_cmov.vgtest +++ b/helgrind/tests/x86/insn_cmov.vgtest @@ -1,3 +1,3 @@ vgopts: -q prog: ../../../none/tests/x86/insn_cmov -cpu_test: x86-cmov +prereq: ../../../tests/cputest x86-cmov diff --git a/helgrind/tests/x86/insn_fpu.vgtest b/helgrind/tests/x86/insn_fpu.vgtest index e7ca604d85..278e8b79ed 100644 --- a/helgrind/tests/x86/insn_fpu.vgtest +++ b/helgrind/tests/x86/insn_fpu.vgtest @@ -1,3 +1,3 @@ vgopts: -q prog: ../../../none/tests/x86/insn_fpu -cpu_test: x86-fpu +prereq: ../../../tests/cputest x86-fpu diff --git a/helgrind/tests/x86/insn_mmx.vgtest b/helgrind/tests/x86/insn_mmx.vgtest index 6f6b2ab4ee..d0ffcf4994 100644 --- a/helgrind/tests/x86/insn_mmx.vgtest +++ b/helgrind/tests/x86/insn_mmx.vgtest @@ -1,3 +1,3 @@ vgopts: -q prog: ../../../none/tests/x86/insn_mmx -cpu_test: x86-mmx +prereq: ../../../tests/cputest x86-mmx diff --git a/helgrind/tests/x86/insn_mmxext.vgtest b/helgrind/tests/x86/insn_mmxext.vgtest index 7a30fa4182..2f5d9ef4da 100644 --- a/helgrind/tests/x86/insn_mmxext.vgtest +++ b/helgrind/tests/x86/insn_mmxext.vgtest @@ -1,3 +1,3 @@ vgopts: -q prog: ../../../none/tests/x86/insn_mmxext -cpu_test: x86-mmxext +prereq: ../../../tests/cputest x86-mmxext diff --git a/helgrind/tests/x86/insn_sse.vgtest b/helgrind/tests/x86/insn_sse.vgtest index 626e712227..be56cc9d4b 100644 --- a/helgrind/tests/x86/insn_sse.vgtest +++ b/helgrind/tests/x86/insn_sse.vgtest @@ -1,3 +1,3 @@ vgopts: -q prog: ../../../none/tests/x86/insn_sse -cpu_test: x86-sse +prereq: ../../../tests/cputest x86-sse diff --git a/helgrind/tests/x86/insn_sse2.vgtest b/helgrind/tests/x86/insn_sse2.vgtest index 8a09a99241..346e5c4e02 100644 --- a/helgrind/tests/x86/insn_sse2.vgtest +++ b/helgrind/tests/x86/insn_sse2.vgtest @@ -1,3 +1,3 @@ vgopts: -q prog: ../../../none/tests/x86/insn_sse2 -cpu_test: x86-sse2 +prereq: ../../../tests/cputest x86-sse2 diff --git a/memcheck/tests/x86/insn_cmov.vgtest b/memcheck/tests/x86/insn_cmov.vgtest index 8deeb9eb98..28f108c8b8 100644 --- a/memcheck/tests/x86/insn_cmov.vgtest +++ b/memcheck/tests/x86/insn_cmov.vgtest @@ -1,3 +1,3 @@ vgopts: -q prog: ../../../none/tests/x86/insn_cmov -cpu_test: x86-cmov +prereq: ../../../tests/cputest x86-cmov diff --git a/memcheck/tests/x86/insn_fpu.vgtest b/memcheck/tests/x86/insn_fpu.vgtest index e7ca604d85..278e8b79ed 100644 --- a/memcheck/tests/x86/insn_fpu.vgtest +++ b/memcheck/tests/x86/insn_fpu.vgtest @@ -1,3 +1,3 @@ vgopts: -q prog: ../../../none/tests/x86/insn_fpu -cpu_test: x86-fpu +prereq: ../../../tests/cputest x86-fpu diff --git a/memcheck/tests/x86/insn_mmx.vgtest b/memcheck/tests/x86/insn_mmx.vgtest index 6f6b2ab4ee..d0ffcf4994 100644 --- a/memcheck/tests/x86/insn_mmx.vgtest +++ b/memcheck/tests/x86/insn_mmx.vgtest @@ -1,3 +1,3 @@ vgopts: -q prog: ../../../none/tests/x86/insn_mmx -cpu_test: x86-mmx +prereq: ../../../tests/cputest x86-mmx diff --git a/memcheck/tests/x86/insn_mmxext.vgtest b/memcheck/tests/x86/insn_mmxext.vgtest index 7a30fa4182..2f5d9ef4da 100644 --- a/memcheck/tests/x86/insn_mmxext.vgtest +++ b/memcheck/tests/x86/insn_mmxext.vgtest @@ -1,3 +1,3 @@ vgopts: -q prog: ../../../none/tests/x86/insn_mmxext -cpu_test: x86-mmxext +prereq: ../../../tests/cputest x86-mmxext diff --git a/memcheck/tests/x86/insn_sse.vgtest b/memcheck/tests/x86/insn_sse.vgtest index 626e712227..be56cc9d4b 100644 --- a/memcheck/tests/x86/insn_sse.vgtest +++ b/memcheck/tests/x86/insn_sse.vgtest @@ -1,3 +1,3 @@ vgopts: -q prog: ../../../none/tests/x86/insn_sse -cpu_test: x86-sse +prereq: ../../../tests/cputest x86-sse diff --git a/memcheck/tests/x86/insn_sse2.vgtest b/memcheck/tests/x86/insn_sse2.vgtest index 8a09a99241..346e5c4e02 100644 --- a/memcheck/tests/x86/insn_sse2.vgtest +++ b/memcheck/tests/x86/insn_sse2.vgtest @@ -1,3 +1,3 @@ vgopts: -q prog: ../../../none/tests/x86/insn_sse2 -cpu_test: x86-sse2 +prereq: ../../../tests/cputest x86-sse2 diff --git a/none/tests/x86/insn_cmov.vgtest b/none/tests/x86/insn_cmov.vgtest index abb1b68e2c..d4a5640550 100644 --- a/none/tests/x86/insn_cmov.vgtest +++ b/none/tests/x86/insn_cmov.vgtest @@ -1,2 +1,2 @@ prog: insn_cmov -cpu_test: x86-cmov +prereq: ../../../tests/cputest x86-cmov diff --git a/none/tests/x86/insn_fpu.vgtest b/none/tests/x86/insn_fpu.vgtest index af3548421d..846a04c367 100644 --- a/none/tests/x86/insn_fpu.vgtest +++ b/none/tests/x86/insn_fpu.vgtest @@ -1,2 +1,2 @@ prog: insn_fpu -cpu_test: x86-fpu +prereq: ../../../tests/cputest x86-fpu diff --git a/none/tests/x86/insn_mmx.vgtest b/none/tests/x86/insn_mmx.vgtest index 146613e9a1..80fab51da3 100644 --- a/none/tests/x86/insn_mmx.vgtest +++ b/none/tests/x86/insn_mmx.vgtest @@ -1,2 +1,2 @@ prog: insn_mmx -cpu_test: x86-mmx +prereq: ../../../tests/cputest x86-mmx diff --git a/none/tests/x86/insn_mmxext.vgtest b/none/tests/x86/insn_mmxext.vgtest index d4f40edd4d..973ee4aff2 100644 --- a/none/tests/x86/insn_mmxext.vgtest +++ b/none/tests/x86/insn_mmxext.vgtest @@ -1,2 +1,2 @@ prog: insn_mmxext -cpu_test: x86-mmxext +prereq: ../../../tests/cputest x86-mmxext diff --git a/none/tests/x86/insn_sse.vgtest b/none/tests/x86/insn_sse.vgtest index b493e2dfc6..88b96bc1bf 100644 --- a/none/tests/x86/insn_sse.vgtest +++ b/none/tests/x86/insn_sse.vgtest @@ -1,2 +1,2 @@ prog: insn_sse -cpu_test: x86-sse +prereq: ../../../tests/cputest x86-sse diff --git a/none/tests/x86/insn_sse2.vgtest b/none/tests/x86/insn_sse2.vgtest index aaf7a10e45..da1f4942a9 100644 --- a/none/tests/x86/insn_sse2.vgtest +++ b/none/tests/x86/insn_sse2.vgtest @@ -1,2 +1,2 @@ prog: insn_sse2 -cpu_test: x86-sse2 +prereq: ../../../tests/cputest x86-sse2 diff --git a/tests/cputest.c b/tests/cputest.c index 4ccbee38b2..04d66bf3ef 100644 --- a/tests/cputest.c +++ b/tests/cputest.c @@ -21,8 +21,7 @@ static int go(char* cpu) unsigned int level = 0, mask = 0, a, b, c, d; if ( strcmp( cpu, "x86" ) == 0 ) { - level = 1; - mask = 1 << 0; + return 0; } else if ( strcmp( cpu, "x86-fpu" ) == 0 ) { level = 1; mask = 1 << 0; diff --git a/tests/vg_regtest.in b/tests/vg_regtest.in index 7bb2d92cd4..a0e8842903 100755 --- a/tests/vg_regtest.in +++ b/tests/vg_regtest.in @@ -49,7 +49,7 @@ # - vgopts: (default: none) # - stdout_filter: (default: none) # - stderr_filter: (default: ./filter_stderr) -# - cpu_test: (default: none) +# - prereq: (default: none) # - cleanup: (default: none) # # Note that filters are necessary for stderr results to filter out things that @@ -59,6 +59,9 @@ # than one expected output). It can be missing if it would be empty. Expected # stderr (filtered) is kept in .stderr.exp[0-9]?. # +# The prerequisite command, if present, must return 0 otherwise the test is +# skipped. +# # If results don't match, the output can be found in .std.out, # and the diff between expected and actual in .std.diff[0-9]?. # @@ -82,7 +85,7 @@ my $prog; # test prog my $args; # test prog args my $stdout_filter; # filter program to run stdout results file through my $stderr_filter; # filter program to run stderr results file through -my $cpu_test; # cpu feature to check for before running test +my $prereq; # prerequisite test to satisfy before running test my $cleanup; # cleanup command to run my @failures; # List of failed tests @@ -169,7 +172,7 @@ sub read_vgtest_file($) my ($f) = @_; # Defaults. - ($vgopts, $prog, $args, $stdout_filter, $stderr_filter, $cpu_test, $cleanup) + ($vgopts, $prog, $args, $stdout_filter, $stderr_filter, $prereq, $cleanup) = ("", undef, "", undef, undef, undef, undef); # Every test directory must have a "filter_stderr" @@ -188,8 +191,8 @@ sub read_vgtest_file($) $stdout_filter = validate_program(".", $1, 1, 1); } elsif ($line =~ /^\s*stderr_filter:\s*(.*)$/) { $stderr_filter = validate_program(".", $1, 1, 1); - } elsif ($line =~ /^\s*cpu_test:\s*(.*)$/) { - $cpu_test = $1; + } elsif ($line =~ /^\s*prereq:\s*(.*)$/) { + $prereq = $1; } elsif ($line =~ /^\s*cleanup:\s*(.*)$/) { $cleanup = $1; } else { @@ -263,9 +266,9 @@ sub do_one_test($$) read_vgtest_file($vgtest); - if (defined $cpu_test) { - if (system("$tests_dir/tests/cputest $cpu_test") != 0) { - printf("%-16s (cpu_test failed, skipping)\n", "$name:"); + if (defined $prereq) { + if (system("$prereq") != 0) { + printf("%-16s (skipping, prereq failed: $prereq)\n", "$name:"); return; } }