50 lines · c
1/* SPDX-License-Identifier: GPL-2.0 */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 14static 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 44struct scx_test maybe_null = {45 .name = "maybe_null",46 .description = "Verify if PTR_MAYBE_NULL work for .dispatch",47 .run = run,48};49REGISTER_SCX_TEST(&maybe_null)50