diff --git a/memcheck/tests/linux/timerfd-syscall.vgtest b/memcheck/tests/linux/timerfd-syscall.vgtest index 75a3f7175..117bb9e8a 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++) {