Commit 94982370 authored by Diego Biurrun's avatar Diego Biurrun

checkasm: Add --test parameter to check only specific components

Inspired by a patch from Martin Storsjö <martin@martin.st>.
parent de6e2ff3
...@@ -180,6 +180,7 @@ static struct { ...@@ -180,6 +180,7 @@ static struct {
int nop_time; int nop_time;
int cpu_flag; int cpu_flag;
const char *cpu_flag_name; const char *cpu_flag_name;
const char *test_name;
} state; } state;
/* PRNG state */ /* PRNG state */
...@@ -470,6 +471,8 @@ static void check_cpu_flag(const char *name, int flag) ...@@ -470,6 +471,8 @@ static void check_cpu_flag(const char *name, int flag)
state.cpu_flag_name = name; state.cpu_flag_name = name;
for (i = 0; tests[i].func; i++) { 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; state.current_test_name = tests[i].name;
tests[i].func(); tests[i].func();
} }
...@@ -487,7 +490,7 @@ static void print_cpu_name(void) ...@@ -487,7 +490,7 @@ static void print_cpu_name(void)
int main(int argc, char *argv[]) int main(int argc, char *argv[])
{ {
unsigned int seed; unsigned int seed = av_get_random_seed();
int i, ret = 0; int i, ret = 0;
#if ARCH_ARM && HAVE_ARMV5TE_EXTERNAL #if ARCH_ARM && HAVE_ARMV5TE_EXTERNAL
...@@ -500,22 +503,27 @@ int main(int argc, char *argv[]) ...@@ -500,22 +503,27 @@ int main(int argc, char *argv[])
return 0; return 0;
} }
if (argc > 1 && !strncmp(argv[1], "--bench", 7)) { while (argc > 1) {
if (!strncmp(argv[1], "--bench", 7)) {
#ifndef AV_READ_TIME #ifndef AV_READ_TIME
fprintf(stderr, "checkasm: --bench is not supported on your system\n"); fprintf(stderr, "checkasm: --bench is not supported on your system\n");
return 1; return 1;
#endif #endif
if (argv[1][7] == '=') { if (argv[1][7] == '=') {
state.bench_pattern = argv[1] + 8; state.bench_pattern = argv[1] + 8;
state.bench_pattern_len = strlen(state.bench_pattern); state.bench_pattern_len = strlen(state.bench_pattern);
} else } else
state.bench_pattern = ""; state.bench_pattern = "";
} else if (!strncmp(argv[1], "--test=", 7)) {
state.test_name = argv[1] + 7;
} else {
seed = strtoul(argv[1], NULL, 10);
}
argc--; argc--;
argv++; argv++;
} }
seed = (argc > 1) ? strtoul(argv[1], NULL, 10) : av_get_random_seed();
fprintf(stderr, "checkasm: using random seed %u\n", seed); fprintf(stderr, "checkasm: using random seed %u\n", seed);
av_lfg_init(&checkasm_lfg, seed); av_lfg_init(&checkasm_lfg, seed);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment