FFmpeg
selftest.c
Go to the documentation of this file.
1 #include "tests.h"
2 #include <checkasm/checkasm.h>
3 
4 static const CheckasmCpuInfo cpus[] = {
5  { "Bad C", "badc", SELFTEST_CPU_FLAG_BAD_C },
6 #if ARCH_X86
7  { "Generic x86", "x86", SELFTEST_CPU_FLAG_X86 },
8  { "MMX", "mmx", SELFTEST_CPU_FLAG_MMX },
9  { "SSE2", "sse2", SELFTEST_CPU_FLAG_SSE2 },
10  { "AVX-2", "avx2", SELFTEST_CPU_FLAG_AVX2 },
11  { "AVX-512", "avx512", SELFTEST_CPU_FLAG_AVX512 },
12 #endif
13 #if ARCH_RISCV
14  { "Generic RISC-V", "rvi", SELFTEST_CPU_FLAG_RVI },
15  { "Floating point", "rvf", SELFTEST_CPU_FLAG_RVF },
16  { "Vector", "rvv", SELFTEST_CPU_FLAG_RVV },
17 #endif
18 #if ARCH_AARCH64
19  { "Generic aarch64", "aarch64", SELFTEST_CPU_FLAG_AARCH64 },
20 #endif
21 #if ARCH_ARM
22  { "Generic ARM", "arm", SELFTEST_CPU_FLAG_ARM },
23  { "VFP", "vfp", SELFTEST_CPU_FLAG_VFP },
24  { "VFP D32", "vfpd32", SELFTEST_CPU_FLAG_VFPD32 },
25 #endif
26  {0}
27 };
28 
29 static const CheckasmTest tests[] = {
30  { "generic", selftest_check_generic },
31 #if ARCH_X86
32  { "x86", selftest_check_x86 },
33 #elif ARCH_RISCV
34  { "riscv", selftest_check_riscv },
35 #elif ARCH_AARCH64
36  { "aarch64", selftest_check_aarch64 },
37 #elif ARCH_ARM
38  { "arm", selftest_check_arm },
39 #endif
40  {0}
41 };
42 
43 int main(int argc, const char *argv[])
44 {
46  .cpu_flags = cpus,
47  .tests = tests,
49  };
50 
51 #if ARCH_X86
53 #elif ARCH_RISCV
55 #elif ARCH_AARCH64
57 #elif ARCH_ARM
59 #endif
60 
61  return checkasm_main(&cfg, argc, argv);
62 }
selftest_check_riscv
void selftest_check_riscv(void)
selftest_check_aarch64
void selftest_check_aarch64(void)
selftest_check_arm
void selftest_check_arm(void)
CheckasmConfig::cpu_flags
const CheckasmCpuInfo * cpu_flags
List of CPU flags understood by the implementation.
Definition: checkasm.h:168
selftest_get_cpu_flags_arm
uint64_t selftest_get_cpu_flags_arm(void)
CheckasmCpuInfo
Describes a CPU feature flag/capability.
Definition: checkasm.h:105
selftest_check_x86
void selftest_check_x86(void)
SELFTEST_CPU_FLAG_BAD_C
@ SELFTEST_CPU_FLAG_BAD_C
Definition: tests.h:40
selftest_get_cpu_flags_aarch64
uint64_t selftest_get_cpu_flags_aarch64(void)
CheckasmTest
Describes a single test function.
Definition: checkasm.h:117
cfg
static CheckasmConfig cfg
Definition: checkasm.c:74
checkasm_main
CHECKASM_API int checkasm_main(CheckasmConfig *config, int argc, const char *argv[])
Main entry point for checkasm test programs.
Definition: checkasm.c:1142
CheckasmConfig
Configuration structure for the checkasm test suite.
Definition: checkasm.h:158
tests
static const CheckasmTest tests[]
Definition: selftest.c:29
cpus
static const CheckasmCpuInfo cpus[]
Definition: selftest.c:4
selftest_check_generic
void selftest_check_generic(void)
Definition: generic.c:300
tests.h
CheckasmConfig::cpu
CheckasmCpu cpu
Detected CPU flags for the current system.
Definition: checkasm.h:186
main
int main(int argc, const char *argv[])
Definition: selftest.c:43
selftest_get_cpu_flags_x86
uint64_t selftest_get_cpu_flags_x86(void)
selftest_get_cpu_flags_riscv
uint64_t selftest_get_cpu_flags_riscv(void)