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