| /* SPDX-License-Identifier: GPL-2.0 */ |
| /* |
| * Copyright (c) 2024 Meta Platforms, Inc. and affiliates. |
| * Copyright (c) 2024 Tejun Heo <tj@kernel.org> |
| * Copyright (c) 2024 David Vernet <dvernet@meta.com> |
| */ |
| #include <bpf/bpf.h> |
| #include <scx/common.h> |
| #include "scx_test.h" |
| |
| static bool setup_called = false; |
| static bool run_called = false; |
| static bool cleanup_called = false; |
| |
| static int context = 10; |
| |
| static enum scx_test_status setup(void **ctx) |
| { |
| setup_called = true; |
| *ctx = &context; |
| |
| return SCX_TEST_PASS; |
| } |
| |
| static enum scx_test_status run(void *ctx) |
| { |
| int *arg = ctx; |
| |
| SCX_ASSERT(setup_called); |
| SCX_ASSERT(!run_called && !cleanup_called); |
| SCX_EQ(*arg, context); |
| |
| run_called = true; |
| return SCX_TEST_PASS; |
| } |
| |
| static void cleanup (void *ctx) |
| { |
| SCX_BUG_ON(!run_called || cleanup_called, "Wrong callbacks invoked"); |
| } |
| |
| struct scx_test example = { |
| .name = "example", |
| .description = "Validate the basic function of the test suite itself", |
| .setup = setup, |
| .run = run, |
| .cleanup = cleanup, |
| }; |
| REGISTER_SCX_TEST(&example) |