| 1 |
|
| 2 | |
| 3 | * Copyright (c) 2024 Meta Platforms, Inc. and affiliates.
|
| 4 |
|
| 5 | #include <bpf/bpf.h>
|
| 6 | #include <scx/common.h>
|
| 7 | #include <sys/wait.h>
|
| 8 | #include <unistd.h>
|
| 9 | #include "maybe_null.bpf.skel.h"
|
| 10 | #include "maybe_null_fail_dsp.bpf.skel.h"
|
| 11 | #include "maybe_null_fail_yld.bpf.skel.h"
|
| 12 | #include "scx_test.h"
|
| 13 |
|
| 14 | static enum scx_test_status run(void *ctx)
|
| 15 | {
|
| 16 | struct maybe_null *skel;
|
| 17 | struct maybe_null_fail_dsp *fail_dsp;
|
| 18 | struct maybe_null_fail_yld *fail_yld;
|
| 19 |
|
| 20 | skel = maybe_null__open_and_load();
|
| 21 | if (!skel) {
|
| 22 | SCX_ERR("Failed to open and load maybe_null skel");
|
| 23 | return SCX_TEST_FAIL;
|
| 24 | }
|
| 25 | maybe_null__destroy(skel);
|
| 26 |
|
| 27 | fail_dsp = maybe_null_fail_dsp__open_and_load();
|
| 28 | if (fail_dsp) {
|
| 29 | maybe_null_fail_dsp__destroy(fail_dsp);
|
| 30 | SCX_ERR("Should failed to open and load maybe_null_fail_dsp skel");
|
| 31 | return SCX_TEST_FAIL;
|
| 32 | }
|
| 33 |
|
| 34 | fail_yld = maybe_null_fail_yld__open_and_load();
|
| 35 | if (fail_yld) {
|
| 36 | maybe_null_fail_yld__destroy(fail_yld);
|
| 37 | SCX_ERR("Should failed to open and load maybe_null_fail_yld skel");
|
| 38 | return SCX_TEST_FAIL;
|
| 39 | }
|
| 40 |
|
| 41 | return SCX_TEST_PASS;
|
| 42 | }
|
| 43 |
|
| 44 | struct scx_test maybe_null = {
|
| 45 | .name = "maybe_null",
|
| 46 | .description = "Verify if PTR_MAYBE_NULL works for .dispatch",
|
| 47 | .run = run,
|
| 48 | };
|
| 49 | REGISTER_SCX_TEST(&maybe_null)
|