at master 1.0 kB view raw
1/* SPDX-License-Identifier: GPL-2.0 */ 2/* 3 * Copyright (c) 2024 Meta Platforms, Inc. and affiliates. 4 * Copyright (c) 2024 Tejun Heo <tj@kernel.org> 5 * Copyright (c) 2024 David Vernet <dvernet@meta.com> 6 */ 7#include <bpf/bpf.h> 8#include <scx/common.h> 9#include "scx_test.h" 10 11static bool setup_called = false; 12static bool run_called = false; 13static bool cleanup_called = false; 14 15static int context = 10; 16 17static enum scx_test_status setup(void **ctx) 18{ 19 setup_called = true; 20 *ctx = &context; 21 22 return SCX_TEST_PASS; 23} 24 25static enum scx_test_status run(void *ctx) 26{ 27 int *arg = ctx; 28 29 SCX_ASSERT(setup_called); 30 SCX_ASSERT(!run_called && !cleanup_called); 31 SCX_EQ(*arg, context); 32 33 run_called = true; 34 return SCX_TEST_PASS; 35} 36 37static void cleanup (void *ctx) 38{ 39 SCX_BUG_ON(!run_called || cleanup_called, "Wrong callbacks invoked"); 40} 41 42struct scx_test example = { 43 .name = "example", 44 .description = "Validate the basic function of the test suite itself", 45 .setup = setup, 46 .run = run, 47 .cleanup = cleanup, 48}; 49REGISTER_SCX_TEST(&example)