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