test_func
static int run_test(test_func_t test_func, int bitmaps, u32 sectorsize,
ret = test_func(&trans, root->fs_info, cache, path, alignment);
static int run_test_both_formats(test_func_t test_func, u32 sectorsize,
ret = run_test(test_func, 0, sectorsize, nodesize, alignment);
test_func, sectorsize, nodesize, alignment);
ret = run_test(test_func, 1, sectorsize, nodesize, alignment);
test_func, sectorsize, nodesize, alignment);
int (*test_func)(void);
ret = test_case_array[index].test_func();
t->task = kthread_run(test_func, t, "vmalloc_test/%d", i);
typedef void (*test_func)(int cpu);
const test_func test_funcs[] = {
void (*test_func)(int netns, int prog1, int prog2);
tests[i].test_func(netns, progs[0], progs[1]);
test->test_func = test_to_run->test_func;
test_func_t test_func;
{.name = "SEND_RECEIVE", .test_func = testapp_send_receive},
{.name = "SEND_RECEIVE_2K_FRAME", .test_func = testapp_send_receive_2k_frame},
{.name = "SEND_RECEIVE_SINGLE_PKT", .test_func = testapp_single_pkt},
{.name = "POLL_RX", .test_func = testapp_poll_rx},
{.name = "POLL_TX", .test_func = testapp_poll_tx},
{.name = "POLL_RXQ_FULL", .test_func = testapp_poll_rxq_tmout},
{.name = "POLL_TXQ_FULL", .test_func = testapp_poll_txq_tmout},
{.name = "ALIGNED_INV_DESC", .test_func = testapp_aligned_inv_desc},
{.name = "ALIGNED_INV_DESC_2K_FRAME_SIZE", .test_func = testapp_aligned_inv_desc_2k_frame},
{.name = "UMEM_HEADROOM", .test_func = testapp_headroom},
{.name = "BIDIRECTIONAL", .test_func = testapp_bidirectional},
{.name = "STAT_RX_DROPPED", .test_func = testapp_stats_rx_dropped},
{.name = "STAT_TX_INVALID", .test_func = testapp_stats_tx_invalid_descs},
{.name = "STAT_RX_FULL", .test_func = testapp_stats_rx_full},
{.name = "STAT_FILL_EMPTY", .test_func = testapp_stats_fill_empty},
{.name = "XDP_PROG_CLEANUP", .test_func = testapp_xdp_prog_cleanup},
{.name = "XDP_DROP_HALF", .test_func = testapp_xdp_drop},
{.name = "XDP_SHARED_UMEM", .test_func = testapp_xdp_shared_umem},
{.name = "XDP_METADATA_COPY", .test_func = testapp_xdp_metadata},
{.name = "XDP_METADATA_COPY_MULTI_BUFF", .test_func = testapp_xdp_metadata_mb},
{.name = "ALIGNED_INV_DESC_MULTI_BUFF", .test_func = testapp_aligned_inv_desc_mb},
{.name = "TOO_MANY_FRAGS", .test_func = testapp_too_many_frags},
{.name = "XDP_ADJUST_TAIL_SHRINK", .test_func = testapp_adjust_tail_shrink},
{.name = "TX_QUEUE_CONSUMER", .test_func = testapp_tx_queue_consumer},
{.name = "XDP_ADJUST_TAIL_SHRINK_MULTI_BUFF", .test_func = testapp_adjust_tail_shrink_mb},
{.name = "XDP_ADJUST_TAIL_GROW", .test_func = testapp_adjust_tail_grow},
{.name = "XDP_ADJUST_TAIL_GROW_MULTI_BUFF", .test_func = testapp_adjust_tail_grow_mb},
{.name = "SEND_RECEIVE_9K_PACKETS", .test_func = testapp_send_receive_mb},
{.name = "SEND_RECEIVE_UNALIGNED", .test_func = testapp_send_receive_unaligned},
{.name = "UNALIGNED_INV_DESC", .test_func = testapp_unaligned_inv_desc},
.test_func = testapp_unaligned_inv_desc_4001_frame},
.test_func = testapp_send_receive_unaligned_mb},
{.name = "UNALIGNED_INV_DESC_MULTI_BUFF", .test_func = testapp_unaligned_inv_desc_mb},
{.name = "HW_SW_MIN_RING_SIZE", .test_func = testapp_hw_sw_min_ring_size},
{.name = "HW_SW_MAX_RING_SIZE", .test_func = testapp_hw_sw_max_ring_size},
{.name = "TEARDOWN", .test_func = testapp_teardown},
ret = test.test_func(&test);
ret = test->test_func(test);
void (*test_func)(char *, char *))
test_func(s, d); /* run the actual test */
int do_test(char *test_name, void (*test_func)(char *, char *))
r |= test_memcpy(ci1, ci0, width, offset, test_func);
r |= test_memcpy(mem1, mem0, width, offset, test_func);
.test_func = get_user_syscall,
.test_func = get_user_syscall,
.test_func = get_user_syscall,
.test_func = handle_mmap,
.test_func = handle_mmap,
.test_func = handle_mmap,
.test_func = handle_inheritance,
.test_func = handle_thread,
.test_func = handle_thread_enable,
.test_func = handle_thread,
.test_func = handle_execve,
.test_func = handle_pasid,
.test_func = handle_pasid,
.test_func = handle_pasid,
.test_func = handle_pasid,
.test_func = handle_pasid,
.test_func = handle_pasid,
ret = test->test_func(test);
int (*test_func)(struct testcases *test);
.test_func = handle_uring,
.test_func = handle_uring,
.test_func = handle_malloc,
.test_func = handle_malloc,
.test_func = handle_max_bits,
.test_func = handle_syscall,
.test_func = handle_syscall,
.test_func = get_user_syscall,