diff options
| author | Mark Brown <broonie@kernel.org> | 2020-12-11 17:47:55 +0000 | 
|---|---|---|
| committer | Mark Brown <broonie@kernel.org> | 2020-12-11 17:47:55 +0000 | 
| commit | 031616c434db05ce766f76c62865f55698e0924f (patch) | |
| tree | 7f29aa1ff3e7b51a8058cd570fb785c6e769b245 /tools/testing/selftests/bpf/prog_tests/test_local_storage.c | |
| parent | 064841ccfc49b2315dc0b797239862d3a343aa07 (diff) | |
| parent | 85a7555575a0e48f9b73db310d0d762a08a46d63 (diff) | |
Merge remote-tracking branch 'asoc/for-5.10' into asoc-linus
Diffstat (limited to 'tools/testing/selftests/bpf/prog_tests/test_local_storage.c')
| -rw-r--r-- | tools/testing/selftests/bpf/prog_tests/test_local_storage.c | 60 | 
1 files changed, 60 insertions, 0 deletions
| diff --git a/tools/testing/selftests/bpf/prog_tests/test_local_storage.c b/tools/testing/selftests/bpf/prog_tests/test_local_storage.c new file mode 100644 index 000000000000..91cd6f357246 --- /dev/null +++ b/tools/testing/selftests/bpf/prog_tests/test_local_storage.c @@ -0,0 +1,60 @@ +// SPDX-License-Identifier: GPL-2.0 + +/* + * Copyright (C) 2020 Google LLC. + */ + +#include <test_progs.h> +#include <linux/limits.h> + +#include "local_storage.skel.h" +#include "network_helpers.h" + +int create_and_unlink_file(void) +{ +	char fname[PATH_MAX] = "/tmp/fileXXXXXX"; +	int fd; + +	fd = mkstemp(fname); +	if (fd < 0) +		return fd; + +	close(fd); +	unlink(fname); +	return 0; +} + +void test_test_local_storage(void) +{ +	struct local_storage *skel = NULL; +	int err, duration = 0, serv_sk = -1; + +	skel = local_storage__open_and_load(); +	if (CHECK(!skel, "skel_load", "lsm skeleton failed\n")) +		goto close_prog; + +	err = local_storage__attach(skel); +	if (CHECK(err, "attach", "lsm attach failed: %d\n", err)) +		goto close_prog; + +	skel->bss->monitored_pid = getpid(); + +	err = create_and_unlink_file(); +	if (CHECK(err < 0, "exec_cmd", "err %d errno %d\n", err, errno)) +		goto close_prog; + +	CHECK(skel->data->inode_storage_result != 0, "inode_storage_result", +	      "inode_local_storage not set\n"); + +	serv_sk = start_server(AF_INET6, SOCK_STREAM, NULL, 0, 0); +	if (CHECK(serv_sk < 0, "start_server", "failed to start server\n")) +		goto close_prog; + +	CHECK(skel->data->sk_storage_result != 0, "sk_storage_result", +	      "sk_local_storage not set\n"); + +	close(serv_sk); + +close_prog: +	local_storage__destroy(skel); +} | 
