xref: /linux/tools/testing/selftests/filesystems/kernfs_test.c (revision 7e7bc8335b1486e5b157e844c248925a763baf16)
1*70619d40SChristian Brauner // SPDX-License-Identifier: GPL-2.0
2*70619d40SChristian Brauner #define _GNU_SOURCE
3*70619d40SChristian Brauner #define __SANE_USERSPACE_TYPES__
4*70619d40SChristian Brauner 
5*70619d40SChristian Brauner #include <fcntl.h>
6*70619d40SChristian Brauner #include <stdio.h>
7*70619d40SChristian Brauner #include <sys/stat.h>
8*70619d40SChristian Brauner #include <sys/xattr.h>
9*70619d40SChristian Brauner 
10*70619d40SChristian Brauner #include "../kselftest_harness.h"
11*70619d40SChristian Brauner #include "wrappers.h"
12*70619d40SChristian Brauner 
TEST(kernfs_listxattr)13*70619d40SChristian Brauner TEST(kernfs_listxattr)
14*70619d40SChristian Brauner {
15*70619d40SChristian Brauner 	int fd;
16*70619d40SChristian Brauner 
17*70619d40SChristian Brauner 	/* Read-only file that can never have any extended attributes set. */
18*70619d40SChristian Brauner 	fd = open("/sys/kernel/warn_count", O_RDONLY | O_CLOEXEC);
19*70619d40SChristian Brauner 	ASSERT_GE(fd, 0);
20*70619d40SChristian Brauner 	ASSERT_EQ(flistxattr(fd, NULL, 0), 0);
21*70619d40SChristian Brauner 	EXPECT_EQ(close(fd), 0);
22*70619d40SChristian Brauner }
23*70619d40SChristian Brauner 
TEST(kernfs_getxattr)24*70619d40SChristian Brauner TEST(kernfs_getxattr)
25*70619d40SChristian Brauner {
26*70619d40SChristian Brauner 	int fd;
27*70619d40SChristian Brauner 	char buf[1];
28*70619d40SChristian Brauner 
29*70619d40SChristian Brauner 	/* Read-only file that can never have any extended attributes set. */
30*70619d40SChristian Brauner 	fd = open("/sys/kernel/warn_count", O_RDONLY | O_CLOEXEC);
31*70619d40SChristian Brauner 	ASSERT_GE(fd, 0);
32*70619d40SChristian Brauner 	ASSERT_LT(fgetxattr(fd, "user.foo", buf, sizeof(buf)), 0);
33*70619d40SChristian Brauner 	ASSERT_EQ(errno, ENODATA);
34*70619d40SChristian Brauner 	EXPECT_EQ(close(fd), 0);
35*70619d40SChristian Brauner }
36*70619d40SChristian Brauner 
37*70619d40SChristian Brauner TEST_HARNESS_MAIN
38*70619d40SChristian Brauner 
39