diff options
author | Diego Biurrun <diego@biurrun.de> | 2016-11-03 23:40:26 +0100 |
---|---|---|
committer | Diego Biurrun <diego@biurrun.de> | 2016-11-08 17:32:25 +0100 |
commit | 9498237049d15812cecb79df47b196c73013908b (patch) | |
tree | 9d882135957af5b94906eef3b167545e8625ba5f /tests | |
parent | de6e2ff3ddf506d5b487c2f226cea73e095ad6d1 (diff) | |
download | ffmpeg-9498237049d15812cecb79df47b196c73013908b.tar.gz |
checkasm: Add --test parameter to check only specific components
Inspired by a patch from Martin Storsjö <martin@martin.st>.
Diffstat (limited to 'tests')
-rw-r--r-- | tests/checkasm/checkasm.c | 28 |
1 files changed, 18 insertions, 10 deletions
diff --git a/tests/checkasm/checkasm.c b/tests/checkasm/checkasm.c index 5f0d8fdae6..61515deb88 100644 --- a/tests/checkasm/checkasm.c +++ b/tests/checkasm/checkasm.c @@ -180,6 +180,7 @@ static struct { int nop_time; int cpu_flag; const char *cpu_flag_name; + const char *test_name; } state; /* PRNG state */ @@ -470,6 +471,8 @@ static void check_cpu_flag(const char *name, int flag) state.cpu_flag_name = name; for (i = 0; tests[i].func; i++) { + if (state.test_name && strcmp(tests[i].name, state.test_name)) + continue; state.current_test_name = tests[i].name; tests[i].func(); } @@ -487,7 +490,7 @@ static void print_cpu_name(void) int main(int argc, char *argv[]) { - unsigned int seed; + unsigned int seed = av_get_random_seed(); int i, ret = 0; #if ARCH_ARM && HAVE_ARMV5TE_EXTERNAL @@ -500,22 +503,27 @@ int main(int argc, char *argv[]) return 0; } - if (argc > 1 && !strncmp(argv[1], "--bench", 7)) { + while (argc > 1) { + if (!strncmp(argv[1], "--bench", 7)) { #ifndef AV_READ_TIME - fprintf(stderr, "checkasm: --bench is not supported on your system\n"); - return 1; + fprintf(stderr, "checkasm: --bench is not supported on your system\n"); + return 1; #endif - if (argv[1][7] == '=') { - state.bench_pattern = argv[1] + 8; - state.bench_pattern_len = strlen(state.bench_pattern); - } else - state.bench_pattern = ""; + if (argv[1][7] == '=') { + state.bench_pattern = argv[1] + 8; + state.bench_pattern_len = strlen(state.bench_pattern); + } else + state.bench_pattern = ""; + } else if (!strncmp(argv[1], "--test=", 7)) { + state.test_name = argv[1] + 7; + } else { + seed = strtoul(argv[1], NULL, 10); + } argc--; argv++; } - seed = (argc > 1) ? strtoul(argv[1], NULL, 10) : av_get_random_seed(); fprintf(stderr, "checkasm: using random seed %u\n", seed); av_lfg_init(&checkasm_lfg, seed); |