brintos

brintos / linux-shallow public Read only

0
0
Text · 1.3 KiB · dd1350e Raw
62 lines · c
1/* SPDX-License-Identifier: GPL-2.0 */2/*3 * Copyright (c) 2023 Meta Platforms, Inc. and affiliates.4 * Copyright (c) 2023 David Vernet <dvernet@meta.com>5 * Copyright (c) 2023 Tejun Heo <tj@kernel.org>6 */7#include <bpf/bpf.h>8#include <scx/common.h>9#include <sys/wait.h>10#include <unistd.h>11#include "enq_select_cpu_fails.bpf.skel.h"12#include "scx_test.h"13 14static enum scx_test_status setup(void **ctx)15{16	struct enq_select_cpu_fails *skel;17 18	skel = enq_select_cpu_fails__open_and_load();19	if (!skel) {20		SCX_ERR("Failed to open and load skel");21		return SCX_TEST_FAIL;22	}23	*ctx = skel;24 25	return SCX_TEST_PASS;26}27 28static enum scx_test_status run(void *ctx)29{30	struct enq_select_cpu_fails *skel = ctx;31	struct bpf_link *link;32 33	link = bpf_map__attach_struct_ops(skel->maps.enq_select_cpu_fails_ops);34	if (!link) {35		SCX_ERR("Failed to attach scheduler");36		return SCX_TEST_FAIL;37	}38 39	sleep(1);40 41	bpf_link__destroy(link);42 43	return SCX_TEST_PASS;44}45 46static void cleanup(void *ctx)47{48	struct enq_select_cpu_fails *skel = ctx;49 50	enq_select_cpu_fails__destroy(skel);51}52 53struct scx_test enq_select_cpu_fails = {54	.name = "enq_select_cpu_fails",55	.description = "Verify we fail to call scx_bpf_select_cpu_dfl() "56		       "from ops.enqueue()",57	.setup = setup,58	.run = run,59	.cleanup = cleanup,60};61REGISTER_SCX_TEST(&enq_select_cpu_fails)62