float_dsp-test: allow forcing cpuflags

Reviewed-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: James Almer <jamrial@gmail.com>
This commit is contained in:
James Almer 2014-10-10 02:18:14 -03:00
parent ea77d3b889
commit 5402d1bce5
2 changed files with 31 additions and 6 deletions

View File

@ -146,6 +146,12 @@ av_cold void avpriv_float_dsp_init(AVFloatDSPContext *fdsp, int bit_exact)
#include <stdint.h>
#include <stdlib.h>
#include <string.h>
#if HAVE_UNISTD_H
#include <unistd.h> /* for getopt */
#endif
#if !HAVE_GETOPT
#include "compat/getopt.c"
#endif
#include "common.h"
#include "cpu.h"
@ -369,7 +375,7 @@ static int test_scalarproduct_float(AVFloatDSPContext *fdsp, AVFloatDSPContext *
int main(int argc, char **argv)
{
int ret = 0;
int ret = 0, seeded = 0;
uint32_t seed;
AVFloatDSPContext fdsp, cdsp;
AVLFG lfg;
@ -380,12 +386,31 @@ int main(int argc, char **argv)
LOCAL_ALIGNED(32, double, dbl_src0, [LEN]);
LOCAL_ALIGNED(32, double, dbl_src1, [LEN]);
if (argc > 2 && !strcmp(argv[1], "-s"))
seed = strtoul(argv[2], NULL, 10);
else
for (;;) {
int arg = getopt(argc, argv, "s:c:");
if (arg == -1)
break;
switch (arg) {
case 's':
seed = strtoul(optarg, NULL, 10);
seeded = 1;
break;
case 'c':
{
int cpuflags = av_get_cpu_flags();
if (av_parse_cpu_caps(&cpuflags, optarg) < 0)
return 1;
av_force_cpu_flags(cpuflags);
break;
}
}
}
if (!seeded)
seed = av_get_random_seed();
av_log(NULL, AV_LOG_INFO, "float_dsp-test: random seed %u\n", seed);
av_log(NULL, AV_LOG_INFO, "float_dsp-test: %s %u\n", seeded ? "seed" : "random seed", seed);
av_lfg_init(&lfg, seed);

View File

@ -53,7 +53,7 @@ fate-fifo: CMD = run libavutil/fifo-test
FATE_LIBAVUTIL += fate-float-dsp
fate-float-dsp: libavutil/float_dsp-test$(EXESUF)
fate-float-dsp: CMD = run libavutil/float_dsp-test
fate-float-dsp: CMD = run libavutil/float_dsp-test $(CPUFLAGS:%=-c%)
fate-float-dsp: CMP = null
fate-float-dsp: REF = /dev/null