dpdk/app/test-bbdev/main.h
<<
>>
Prefs
   1/* SPDX-License-Identifier: BSD-3-Clause
   2 * Copyright(c) 2017 Intel Corporation
   3 */
   4
   5#ifndef _MAIN_H_
   6#define _MAIN_H_
   7
   8#include <stddef.h>
   9#include <sys/queue.h>
  10
  11#include <rte_common.h>
  12#include <rte_hexdump.h>
  13#include <rte_log.h>
  14
  15#define TEST_SUCCESS    0
  16#define TEST_FAILED     -1
  17#define TEST_SKIPPED    1
  18
  19#define MAX_BURST 512U
  20#define MAX_OPS 1024U
  21#define DEFAULT_BURST 32U
  22#define DEFAULT_OPS 64U
  23#define DEFAULT_ITER 6U
  24
  25
  26
  27#define TEST_ASSERT(cond, msg, ...) do {  \
  28                if (!(cond)) {  \
  29                        printf("TestCase %s() line %d failed: " \
  30                                msg "\n", __func__, __LINE__, ##__VA_ARGS__); \
  31                        return TEST_FAILED;  \
  32                } \
  33} while (0)
  34
  35/* Compare two buffers (length in bytes) */
  36#define TEST_ASSERT_BUFFERS_ARE_EQUAL(a, b, len, msg, ...) do { \
  37        if (memcmp((a), (b), len)) { \
  38                printf("TestCase %s() line %d failed: " \
  39                        msg "\n", __func__, __LINE__, ##__VA_ARGS__); \
  40                rte_memdump(stdout, "Buffer A", (a), len); \
  41                rte_memdump(stdout, "Buffer B", (b), len); \
  42                return TEST_FAILED; \
  43        } \
  44} while (0)
  45
  46#define TEST_ASSERT_SUCCESS(val, msg, ...) do { \
  47                typeof(val) _val = (val); \
  48                if (!(_val == 0)) { \
  49                        printf("TestCase %s() line %d failed (err %d): " \
  50                                msg "\n", __func__, __LINE__, _val, \
  51                                ##__VA_ARGS__); \
  52                        return TEST_FAILED; \
  53                } \
  54} while (0)
  55
  56#define TEST_ASSERT_FAIL(val, msg, ...) \
  57        TEST_ASSERT_SUCCESS(!(val), msg, ##__VA_ARGS__)
  58
  59#define TEST_ASSERT_NOT_NULL(val, msg, ...) do { \
  60                if ((val) == NULL) { \
  61                        printf("TestCase %s() line %d failed (null): " \
  62                                msg "\n", __func__, __LINE__, ##__VA_ARGS__); \
  63                        return TEST_FAILED;  \
  64                } \
  65} while (0)
  66
  67struct unit_test_case {
  68        int (*setup)(void);
  69        void (*teardown)(void);
  70        int (*testcase)(void);
  71        const char *name;
  72};
  73
  74#define TEST_CASE(testcase) {NULL, NULL, testcase, #testcase}
  75
  76#define TEST_CASE_ST(setup, teardown, testcase) \
  77                {setup, teardown, testcase, #testcase}
  78
  79#define TEST_CASES_END() {NULL, NULL, NULL, NULL}
  80
  81struct unit_test_suite {
  82        const char *suite_name;
  83        int (*setup)(void);
  84        void (*teardown)(void);
  85        struct unit_test_case unit_test_cases[];
  86};
  87
  88int unit_test_suite_runner(struct unit_test_suite *suite);
  89
  90typedef int (test_callback)(void);
  91TAILQ_HEAD(test_commands_list, test_command);
  92struct test_command {
  93        TAILQ_ENTRY(test_command) next;
  94        const char *command;
  95        test_callback *callback;
  96};
  97
  98void add_test_command(struct test_command *t);
  99
 100/* Register a test function */
 101#define REGISTER_TEST_COMMAND(name, testsuite) \
 102        static int test_func_##name(void) \
 103        { \
 104                return unit_test_suite_runner(&testsuite); \
 105        } \
 106        static struct test_command test_struct_##name = { \
 107                .command = RTE_STR(name), \
 108                .callback = test_func_##name, \
 109        }; \
 110        RTE_INIT(test_register_##name) \
 111        { \
 112                add_test_command(&test_struct_##name); \
 113        }
 114
 115const char *get_vector_filename(void);
 116
 117unsigned int get_num_ops(void);
 118
 119unsigned int get_burst_sz(void);
 120
 121unsigned int get_num_lcores(void);
 122
 123double get_snr(void);
 124
 125unsigned int get_iter_max(void);
 126
 127bool get_init_device(void);
 128
 129#endif
 130