xref: /freebsd/tests/sys/fs/fusefs/Makefile (revision ee1c3d38a26aa63fca8e9f86c0d456800d5e2576)
1.include <bsd.compiler.mk>
2
3PACKAGE=	tests
4
5TESTSDIR=	${TESTSBASE}/sys/fs/fusefs
6
7ATF_TESTS_SH+=	ctl
8ATF_TESTS_SH+=	ext2-misc
9
10# We could simply link all of these files into a single executable.  But since
11# Kyua treats googletest programs as plain tests, it's better to separate them
12# out, so we get more granular reporting.
13GTESTS+=	access
14GTESTS+=	allow_other
15GTESTS+=	bad_server
16GTESTS+=	bmap
17GTESTS+=	cache
18GTESTS+=	copy_file_range
19GTESTS+=	create
20GTESTS+=	default_permissions
21GTESTS+=	default_permissions_privileged
22GTESTS+=	destroy
23GTESTS+=	dev_fuse_poll
24GTESTS+=	fallocate
25GTESTS+=	fifo
26GTESTS+=	flush
27GTESTS+=	forget
28GTESTS+=	fsync
29GTESTS+=	fsyncdir
30GTESTS+=	getattr
31GTESTS+=	interrupt
32GTESTS+=	io
33GTESTS+=	ioctl
34GTESTS+=	last_local_modify
35GTESTS+=	link
36GTESTS+=	locks
37GTESTS+=	lookup
38GTESTS+=	lseek
39GTESTS+=	misc
40GTESTS+=	mkdir
41GTESTS+=	mknod
42GTESTS+=	mount
43GTESTS+=	nfs
44GTESTS+=	notify
45GTESTS+=	open
46GTESTS+=	opendir
47GTESTS+=	pre-init
48GTESTS+=	read
49GTESTS+=	readdir
50GTESTS+=	readlink
51GTESTS+=	release
52GTESTS+=	releasedir
53GTESTS+=	rename
54GTESTS+=	rmdir
55GTESTS+=	setattr
56GTESTS+=	statfs
57GTESTS+=	symlink
58GTESTS+=	unlink
59GTESTS+=	write
60GTESTS+=	xattr
61
62.for p in ${GTESTS}
63SRCS.$p+=	${p}.cc
64SRCS.$p+=	mockfs.cc
65SRCS.$p+=	utils.cc
66.endfor
67
68TEST_METADATA.default_permissions+=	required_user="unprivileged"
69TEST_METADATA.default_permissions_privileged+=	required_user="root"
70TEST_METADATA.mknod+=	required_user="root"
71TEST_METADATA.nfs+=	required_user="root"
72# NB: per-testcase metadata properties override global metadata properties.
73# This must reference all of the required modules for the test.
74TEST_METADATA.ctl+=	required_kmods="ctl fusefs"
75# ctl must be exclusive because it disables/enables camsim
76TEST_METADATA.ctl+=	is_exclusive="true"
77TEST_METADATA.ctl+=	required_user="root"
78
79TEST_METADATA+=	timeout=20
80TEST_METADATA+=	required_kmods="fusefs"
81
82FUSEFS=		${SRCTOP}/sys/fs/fuse
83# Suppress warnings that GCC generates for the libc++ and gtest headers.
84CXXWARNFLAGS.gcc+=	-Wno-placement-new -Wno-attributes
85# Suppress Wcast-align for readdir.cc, because it is unavoidable when using
86# getdirentries.
87CXXWARNFLAGS.readdir.cc+=	-Wno-cast-align
88.if ${COMPILER_TYPE} == "gcc" && ${COMPILER_VERSION} >= 80000
89CXXWARNFLAGS+=	-Wno-class-memaccess
90.endif
91# Suppress false warning about set but unused DNAME in inval_entry_below_root
92CXXWARNFLAGS.gcc+= -Wno-unused-but-set-variable
93# Suppress warnings about deprecated implicit copy constructors in gtest.
94CXXWARNFLAGS+=  -Wno-deprecated-copy
95.if ${COMPILER_TYPE} == "clang" && ${COMPILER_VERSION} >= 180000
96# clang 18.0.0 introduces a new warning about variable length arrays in C++.
97CXXWARNFLAGS+=	-Wno-vla-cxx-extension
98.endif
99CXXFLAGS+=	-I${SRCTOP}/tests
100CXXFLAGS+=	-I${FUSEFS}
101
102LIBADD+=	pthread
103LIBADD+=	gmock gtest
104LIBADD+=	util
105
106.include <bsd.test.mk>
107