FFmpeg
Macros | Typedefs | Enumerations | Functions
tests.h File Reference
#include <stddef.h>
#include <stdint.h>
#include <string.h>
#include "src/checkasm_config.h"
#include <checkasm/test.h>
#include <checkasm/utils.h>

Go to the source code of this file.

Macros

#define DEF_GETTER(FLAG, NAME, func_type, fallback)
 
#define DEF_COPY_FUNC(NAME)   void selftest_##NAME(uint8_t *dst, const uint8_t *src, size_t size)
 
#define DEF_COPY_GETTER(FLAG, NAME)   DEF_GETTER(FLAG, NAME, copy_func, selftest_copy_c)
 
#define DEF_NOOP_FUNC(NAME)   void selftest_##NAME(int unused)
 
#define DEF_NOOP_GETTER(FLAG, NAME)   DEF_GETTER(FLAG, NAME, noop_func, NULL)
 
#define DEF_FLOAT_FUNC(NAME)   float selftest_##NAME(float input)
 

Typedefs

typedef void() copy_func(uint8_t *dst, const uint8_t *src, size_t size)
 Copy size (power-of-two) bytes from aligned buffers src to dst. More...
 
typedef void() noop_func(int unused)
 Do nothing. More...
 
typedef float() float_func(float input)
 
typedef double() double_func(double input)
 

Enumerations

enum  { SELFTEST_CPU_FLAG_BAD_C = 1 << 0 }
 

Functions

uint64_t selftest_get_cpu_flags_x86 (void)
 
uint64_t selftest_get_cpu_flags_riscv (void)
 
uint64_t selftest_get_cpu_flags_aarch64 (void)
 
uint64_t selftest_get_cpu_flags_arm (void)
 
void selftest_test_copy (copy_func *func, const char *name, int min_width)
 
static DEF_COPY_FUNC (copy_c)
 
void selftest_test_noop (noop_func *func, const char *name)
 
void selftest_test_float (float_func *func, const char *name, float input)
 
void selftest_check_generic (void)
 
void selftest_check_x86 (void)
 
void selftest_check_riscv (void)
 
void selftest_check_aarch64 (void)
 
void selftest_check_arm (void)
 

Macro Definition Documentation

◆ DEF_GETTER

#define DEF_GETTER (   FLAG,
  NAME,
  func_type,
  fallback 
)
Value:
static func_type *get_##NAME(void) \
{ \
return (checkasm_get_cpu_flags() & FLAG) ? selftest_##NAME : fallback; \
}

Definition at line 60 of file tests.h.

◆ DEF_COPY_FUNC

#define DEF_COPY_FUNC (   NAME)    void selftest_##NAME(uint8_t *dst, const uint8_t *src, size_t size)

Definition at line 78 of file tests.h.

◆ DEF_COPY_GETTER

#define DEF_COPY_GETTER (   FLAG,
  NAME 
)    DEF_GETTER(FLAG, NAME, copy_func, selftest_copy_c)

Definition at line 81 of file tests.h.

◆ DEF_NOOP_FUNC

#define DEF_NOOP_FUNC (   NAME)    void selftest_##NAME(int unused)

Definition at line 97 of file tests.h.

◆ DEF_NOOP_GETTER

#define DEF_NOOP_GETTER (   FLAG,
  NAME 
)    DEF_GETTER(FLAG, NAME, noop_func, NULL)

Definition at line 98 of file tests.h.

◆ DEF_FLOAT_FUNC

#define DEF_FLOAT_FUNC (   NAME)    float selftest_##NAME(float input)

Definition at line 105 of file tests.h.

Typedef Documentation

◆ copy_func

typedef void() copy_func(uint8_t *dst, const uint8_t *src, size_t size)

Copy size (power-of-two) bytes from aligned buffers src to dst.

Definition at line 75 of file tests.h.

◆ noop_func

typedef void() noop_func(int unused)

Do nothing.

Used to test side effects, stack corruption etc. The singular int parameter is just to have at least one parameter, which is required by declare_func.

Definition at line 94 of file tests.h.

◆ float_func

typedef float() float_func(float input)

Definition at line 101 of file tests.h.

◆ double_func

typedef double() double_func(double input)

Definition at line 102 of file tests.h.

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
SELFTEST_CPU_FLAG_BAD_C 

Definition at line 39 of file tests.h.

Function Documentation

◆ selftest_get_cpu_flags_x86()

uint64_t selftest_get_cpu_flags_x86 ( void  )

Referenced by main().

◆ selftest_get_cpu_flags_riscv()

uint64_t selftest_get_cpu_flags_riscv ( void  )

Referenced by main().

◆ selftest_get_cpu_flags_aarch64()

uint64_t selftest_get_cpu_flags_aarch64 ( void  )

Referenced by main().

◆ selftest_get_cpu_flags_arm()

uint64_t selftest_get_cpu_flags_arm ( void  )

Referenced by main().

◆ selftest_test_copy()

void selftest_test_copy ( copy_func func,
const char *  name,
int  min_width 
)

◆ DEF_COPY_FUNC()

static DEF_COPY_FUNC ( copy_c  )
inlinestatic

Definition at line 84 of file tests.h.

◆ selftest_test_noop()

void selftest_test_noop ( noop_func func,
const char *  name 
)

◆ selftest_test_float()

void selftest_test_float ( float_func func,
const char *  name,
float  input 
)

◆ selftest_check_generic()

void selftest_check_generic ( void  )

Definition at line 300 of file generic.c.

◆ selftest_check_x86()

void selftest_check_x86 ( void  )

◆ selftest_check_riscv()

void selftest_check_riscv ( void  )

◆ selftest_check_aarch64()

void selftest_check_aarch64 ( void  )

◆ selftest_check_arm()

void selftest_check_arm ( void  )
FLAG
#define FLAG(STEREOMODETYPE, BOOL)
checkasm_get_cpu_flags
CHECKASM_API CheckasmCpu checkasm_get_cpu_flags(void)
Get the current active set of CPU flags.
Definition: checkasm.c:121