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 11 static bool setup_called = false; 12 static bool run_called = false; 13 static bool cleanup_called = false; 14 15 static int context = 10; 16 17 static enum scx_test_status setup(void **ctx) 18 { 19 setup_called = true; 20 *ctx = &context; 21 22 return SCX_TEST_PASS; 23 } 24 25 static 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 37 static void cleanup (void *ctx) 38 { 39 SCX_BUG_ON(!run_called || cleanup_called, "Wrong callbacks invoked"); 40 } 41 42 struct 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 }; 49 REGISTER_SCX_TEST(&example) 50