From 9498237049d15812cecb79df47b196c73013908b Mon Sep 17 00:00:00 2001 From: Diego Biurrun Date: Thu, 3 Nov 2016 23:40:26 +0100 Subject: checkasm: Add --test parameter to check only specific components MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Inspired by a patch from Martin Storsjö . --- tests/checkasm/checkasm.c | 28 ++++++++++++++++++---------- 1 file 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); -- cgit v1.2.3