From: Florian Krohm Date: Sun, 31 Jul 2011 03:22:45 +0000 (+0000) Subject: Fix prerequisite for memcheck/tests/linux/timerfd-syscall. X-Git-Tag: svn/VALGRIND_3_7_0~283 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=c9c6767b834aa55559cfa59bb9df8d564c6cd5b9;p=thirdparty%2Fvalgrind.git Fix prerequisite for memcheck/tests/linux/timerfd-syscall. The testcase was executed despite uname -r being 2.6.9-42.EL Extend tests/os_test.c to take an optional 2nd argument which is a minimum version number. Use os_test in the prerequisite expression. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11954 --- diff --git a/memcheck/tests/linux/timerfd-syscall.vgtest b/memcheck/tests/linux/timerfd-syscall.vgtest index 75a3f71752..117bb9e8a8 100644 --- a/memcheck/tests/linux/timerfd-syscall.vgtest +++ b/memcheck/tests/linux/timerfd-syscall.vgtest @@ -1,2 +1,2 @@ -prereq: [ "$(uname)" = "Linux" ] && awk 'END{exit("'$(uname -r)'" >= "2.6.25" ? 0 : 1)}' g1) return True; + if (a1 < g1) return False; + if (a2 > g2) return True; + if (a2 < g2) return False; + if (a3 >= g3) return True; + + return False; +} +#endif + +static Bool go(char* OS, char *min_version) { #if defined(VGO_linux) - if ( 0 == strcmp( OS, "linux" ) ) return True; + if ( 0 == strcmp( OS, "linux" ) && matches_version( min_version )) return True; #elif defined(VGO_darwin) if ( 0 == strcmp( OS, "darwin" ) ) return True; @@ -46,11 +75,11 @@ static Bool go(char* OS) int main(int argc, char **argv) { int i; - if ( argc != 2 ) { - fprintf( stderr, "usage: os_test \n" ); + if ( argc < 2 ) { + fprintf( stderr, "usage: os_test []\n" ); exit(3); // Usage error. } - if (go( argv[1] )) { + if (go( argv[1], argv[2] )) { return 0; // Matched. } for (i = 0; NULL != all_OSes[i]; i++) {