You've already forked FFmpeg
mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-08-15 14:13:16 +02:00
checkasm: Add --test parameter to check only specific components
Inspired by a patch from Martin Storsjö <martin@martin.st>.
This commit is contained in:
@@ -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)
|
|||||||
|
|
||||||
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)
|
|||||||
|
|
||||||
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,7 +503,8 @@ 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;
|
||||||
@@ -510,12 +514,16 @@ int main(int argc, char *argv[])
|
|||||||
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);
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user