3 TESTSRCDIR= ${.CURDIR}/../../../cddl/contrib/opensolaris/cmd/dtrace/test
5 DTEST= ${TESTSRCDIR}/cmd/scripts/dtest.pl -n
8 ${TESTSRCDIR}/tst/common/aggs/tst.subr.d \
9 ${TESTSRCDIR}/tst/common/buffering/tst.cputime.ksh \
10 ${TESTSRCDIR}/tst/common/buffering/tst.ring3.d \
11 ${TESTSRCDIR}/tst/common/cpc/err.D_PDESC_ZERO.lowfrequency.d \
12 ${TESTSRCDIR}/tst/common/cpc/err.D_PDESC_ZERO.malformedoverflow.d\
13 ${TESTSRCDIR}/tst/common/cpc/err.D_PDESC_ZERO.nonexistentevent.d\
14 ${TESTSRCDIR}/tst/common/cpc/err.cpcvscpustatpart1.ksh \
15 ${TESTSRCDIR}/tst/common/cpc/err.cpcvscpustatpart2.ksh \
16 ${TESTSRCDIR}/tst/common/cpc/err.cputrackfailtostart.ksh \
17 ${TESTSRCDIR}/tst/common/cpc/err.cputrackterminates.ksh \
18 ${TESTSRCDIR}/tst/common/cpc/err.toomanyenablings.d \
19 ${TESTSRCDIR}/tst/common/cpc/tst.allcpus.ksh \
20 ${TESTSRCDIR}/tst/common/cpc/tst.genericevent.d \
21 ${TESTSRCDIR}/tst/common/cpc/tst.platformevent.ksh \
22 ${TESTSRCDIR}/tst/common/dtraceUtil/man.ListProbesWithFunctions \
23 ${TESTSRCDIR}/tst/common/dtraceUtil/man.ListProbesWithModules \
24 ${TESTSRCDIR}/tst/common/dtraceUtil/man.ListProbesWithNames \
25 ${TESTSRCDIR}/tst/common/dtraceUtil/man.ListProbesWithProviders \
26 ${TESTSRCDIR}/tst/common/dtraceUtil/man.TraceFunctions \
27 ${TESTSRCDIR}/tst/common/dtraceUtil/man.TraceModule \
28 ${TESTSRCDIR}/tst/common/dtraceUtil/man.TraceNames \
29 ${TESTSRCDIR}/tst/common/dtraceUtil/man.TraceProvider \
30 ${TESTSRCDIR}/tst/common/dtraceUtil/tst.InvalidModule3.d.ksh \
31 ${TESTSRCDIR}/tst/common/dtraceUtil/tst.InvalidProvider3.d.ksh \
32 ${TESTSRCDIR}/tst/common/dtraceUtil/tst.InvalidTraceFunc7.d.ksh \
33 ${TESTSRCDIR}/tst/common/dtraceUtil/tst.InvalidTraceModule6.d.ksh\
34 ${TESTSRCDIR}/tst/common/dtraceUtil/tst.InvalidTraceProvider4.d.ksh\
35 ${TESTSRCDIR}/tst/common/funcs/tst.bcopy.d \
36 ${TESTSRCDIR}/tst/common/funcs/tst.copyin.d \
37 ${TESTSRCDIR}/tst/common/funcs/tst.copyinto.d \
38 ${TESTSRCDIR}/tst/common/funcs/tst.ddi_pathname.d \
39 ${TESTSRCDIR}/tst/common/funcs/tst.index.d \
40 ${TESTSRCDIR}/tst/common/inline/err.D_OP_INCOMPAT.badxlate.d \
41 ${TESTSRCDIR}/tst/common/inline/tst.InlineTypedef.d \
42 ${TESTSRCDIR}/tst/common/io/tst.fds.c \
43 ${TESTSRCDIR}/tst/common/java_api/tst.FunctionLookup.c \
44 ${TESTSRCDIR}/tst/common/java_api/tst.ProbeData.c \
45 ${TESTSRCDIR}/common/misc/tst.include.ksh \
46 ${TESTSRCDIR}/tst/common/misc/tst.roch.d \
47 ${TESTSRCDIR}/tst/common/nfs/tst.call.c \
48 ${TESTSRCDIR}/tst/common/nfs/tst.call.d \
49 ${TESTSRCDIR}/tst/common/nfs/tst.call3.c \
50 ${TESTSRCDIR}/tst/common/nfs/tst.call3.d \
51 ${TESTSRCDIR}/tst/common/offsetof/err.D_OFFSETOF_BITFIELD.bitfield.d\
52 ${TESTSRCDIR}/tst/common/pointers/err.D_OP_LVAL.AddressChange.d \
53 ${TESTSRCDIR}/tst/common/pointers/tst.GlobalVar.d \
54 ${TESTSRCDIR}/tst/common/pointers/tst.basic1.d \
55 ${TESTSRCDIR}/tst/common/pointers/tst.basic2.d \
56 ${TESTSRCDIR}/tst/common/predicates/tst.argsnotcached.d \
57 ${TESTSRCDIR}/tst/common/privs/tst.func_access.ksh \
58 ${TESTSRCDIR}/tst/common/privs/tst.op_access.ksh \
59 ${TESTSRCDIR}/tst/common/proc/tst.discard.ksh \
60 ${TESTSRCDIR}/tst/common/proc/tst.signal.ksh \
61 ${TESTSRCDIR}/tst/common/proc/tst.startexit.ksh \
62 ${TESTSRCDIR}/tst/common/scalars/tst.misc.d \
63 ${TESTSRCDIR}/tst/common/scalars/tst.selfarray2.d \
64 ${TESTSRCDIR}/tst/common/sysevent/tst.post.c \
65 ${TESTSRCDIR}/tst/common/sysevent/tst.post.d \
66 ${TESTSRCDIR}/tst/common/sysevent/tst.post_chan.c \
67 ${TESTSRCDIR}/tst/common/sysevent/tst.post_chan.d \
68 ${TESTSRCDIR}/tst/common/trace/tst.misc.d \
69 ${TESTSRCDIR}/tst/common/tracemem/err.D_TRACEMEM_ADDR.badaddr.d \
70 ${TESTSRCDIR}/tst/common/tracemem/tst.rootvp.d \
71 ${TESTSRCDIR}/tst/common/translators/tst.ProcModelTrans.d \
72 ${TESTSRCDIR}/tst/common/types/err.D_XLATE_REDECL.ResultDynType.d\
73 ${TESTSRCDIR}/tst/common/types/tst.ptrops.d \
74 ${TESTSRCDIR}/tst/common/types/tst.struct.d \
75 ${TESTSRCDIR}/tst/common/types/tst.typedef.d \
76 ${TESTSRCDIR}/tst/common/vars/tst.ucaller.ksh \
77 ${TESTSRCDIR}/tst/common/vars/tst.walltimestamp.d \
78 ${TESTSRCDIR}/tst/common/usdt/tst.argmap.c \
79 ${TESTSRCDIR}/tst/common/usdt/tst.args.c \
80 ${TESTSRCDIR}/tst/common/usdt/tst.forker.c \
81 ${TESTSRCDIR}/tst/common/ip/tst.ipv4localtcp.ksh \
82 ${TESTSRCDIR}/tst/common/ip/tst.ipv4localudp.ksh \
83 ${TESTSRCDIR}/tst/common/ip/tst.ipv4remotetcp.ksh \
84 ${TESTSRCDIR}/tst/common/ip/tst.ipv4remoteudp.ksh \
85 ${TESTSRCDIR}/tst/common/ip/tst.localtcpstate.ksh \
86 ${TESTSRCDIR}/tst/common/ip/tst.remotetcpstate.ksh \
87 ${TESTSRCDIR}/tst/common/scripting/tst.projid.ksh \
88 ${TESTSRCDIR}/tst/common/scripting/tst.taskid.ksh
93 ${TESTSRCDIR}/tst/common/io/tst.fds.d \
94 ${TESTSRCDIR}/tst/common/java_api/tst.Abort.ksh \
95 ${TESTSRCDIR}/tst/common/java_api/tst.Bean.ksh \
96 ${TESTSRCDIR}/tst/common/java_api/tst.Close.ksh \
97 ${TESTSRCDIR}/tst/common/java_api/tst.Drop.ksh \
98 ${TESTSRCDIR}/tst/common/java_api/tst.Enable.ksh \
99 ${TESTSRCDIR}/tst/common/java_api/tst.FunctionLookup.ksh \
100 ${TESTSRCDIR}/tst/common/java_api/tst.GetAggregate.ksh \
101 ${TESTSRCDIR}/tst/common/java_api/tst.MaxConsumers.ksh \
102 ${TESTSRCDIR}/tst/common/java_api/tst.MultiAggPrinta.ksh \
103 ${TESTSRCDIR}/tst/common/java_api/tst.ProbeData.ksh \
104 ${TESTSRCDIR}/tst/common/java_api/tst.ProbeDescription.ksh \
105 ${TESTSRCDIR}/tst/common/java_api/tst.StateMachine.ksh \
106 ${TESTSRCDIR}/tst/common/java_api/tst.StopLock.ksh \
107 ${TESTSRCDIR}/tst/common/java_api/tst.printa.d \
108 ${TESTSRCDIR}/tst/common/lexer/err.D_CHR_NL.char.d \
109 ${TESTSRCDIR}/tst/common/lexer/err.D_STR_NL.string.d \
110 ${TESTSRCDIR}/tst/common/mdb/tst.dtracedcmd.ksh \
111 ${TESTSRCDIR}/tst/common/mib/tst.icmp.ksh \
112 ${TESTSRCDIR}/tst/common/mib/tst.tcp.ksh \
113 ${TESTSRCDIR}/tst/common/mib/tst.udp.ksh \
114 ${TESTSRCDIR}/tst/common/profile-n/tst.func.ksh \
115 ${TESTSRCDIR}/tst/common/profile-n/tst.mod.ksh \
116 ${TESTSRCDIR}/tst/common/profile-n/tst.sym.ksh \
117 ${TESTSRCDIR}/tst/common/safety/tst.basename.d \
118 ${TESTSRCDIR}/tst/common/safety/tst.caller.d \
119 ${TESTSRCDIR}/tst/common/safety/tst.cleanpath.d \
120 ${TESTSRCDIR}/tst/common/safety/tst.copyin.d \
121 ${TESTSRCDIR}/tst/common/safety/tst.copyin2.d \
122 ${TESTSRCDIR}/tst/common/safety/tst.ddi_pathname.d \
123 ${TESTSRCDIR}/tst/common/safety/tst.dirname.d \
124 ${TESTSRCDIR}/tst/common/safety/tst.errno.d \
125 ${TESTSRCDIR}/tst/common/safety/tst.execname.d \
126 ${TESTSRCDIR}/tst/common/safety/tst.gid.d \
127 ${TESTSRCDIR}/tst/common/safety/tst.hton.d \
128 ${TESTSRCDIR}/tst/common/safety/tst.index.d \
129 ${TESTSRCDIR}/tst/common/safety/tst.msgdsize.d \
130 ${TESTSRCDIR}/tst/common/safety/tst.msgsize.d \
131 ${TESTSRCDIR}/tst/common/safety/tst.null.d \
132 ${TESTSRCDIR}/tst/common/safety/tst.pid.d \
133 ${TESTSRCDIR}/tst/common/safety/tst.ppid.d \
134 ${TESTSRCDIR}/tst/common/safety/tst.progenyof.d \
135 ${TESTSRCDIR}/tst/common/safety/tst.random.d \
136 ${TESTSRCDIR}/tst/common/safety/tst.rw.d \
137 ${TESTSRCDIR}/tst/common/safety/tst.shortstr.d \
138 ${TESTSRCDIR}/tst/common/safety/tst.stack.d \
139 ${TESTSRCDIR}/tst/common/safety/tst.stackdepth.d \
140 ${TESTSRCDIR}/tst/common/safety/tst.stddev.d \
141 ${TESTSRCDIR}/tst/common/safety/tst.strchr.d \
142 ${TESTSRCDIR}/tst/common/safety/tst.strjoin.d \
143 ${TESTSRCDIR}/tst/common/safety/tst.strstr.d \
144 ${TESTSRCDIR}/tst/common/safety/tst.strtok.d \
145 ${TESTSRCDIR}/tst/common/safety/tst.substr.d \
146 ${TESTSRCDIR}/tst/common/safety/tst.ucaller.d \
147 ${TESTSRCDIR}/tst/common/safety/tst.uid.d \
148 ${TESTSRCDIR}/tst/common/safety/tst.unalign.d \
149 ${TESTSRCDIR}/tst/common/safety/tst.ustack.d \
150 ${TESTSRCDIR}/tst/common/safety/tst.ustackdepth.d \
151 ${TESTSRCDIR}/tst/common/safety/tst.vahole.d \
152 ${TESTSRCDIR}/tst/common/safety/tst.violentdeath.ksh \
153 ${TESTSRCDIR}/tst/common/safety/tst.zonename.d \
154 ${TESTSRCDIR}/tst/common/sched/tst.enqueue.d \
155 ${TESTSRCDIR}/tst/common/sched/tst.oncpu.d \
156 ${TESTSRCDIR}/tst/common/sched/tst.stackdepth.d \
157 ${TESTSRCDIR}/tst/common/usdt/argmap.d \
158 ${TESTSRCDIR}/tst/common/usdt/args.d \
159 ${TESTSRCDIR}/tst/common/usdt/forker.d \
160 ${TESTSRCDIR}/tst/common/usdt/tst.andpid.ksh \
161 ${TESTSRCDIR}/tst/common/usdt/tst.argmap.d \
162 ${TESTSRCDIR}/tst/common/usdt/tst.args.d \
163 ${TESTSRCDIR}/tst/common/usdt/tst.badguess.ksh \
164 ${TESTSRCDIR}/tst/common/usdt/tst.dlclose1.ksh \
165 ${TESTSRCDIR}/tst/common/usdt/tst.dlclose2.ksh \
166 ${TESTSRCDIR}/tst/common/usdt/tst.dlclose3.ksh \
167 ${TESTSRCDIR}/tst/common/usdt/tst.eliminate.ksh \
168 ${TESTSRCDIR}/tst/common/usdt/tst.enabled.ksh \
169 ${TESTSRCDIR}/tst/common/usdt/tst.entryreturn.ksh \
170 ${TESTSRCDIR}/tst/common/usdt/tst.fork.ksh \
171 ${TESTSRCDIR}/tst/common/usdt/tst.forker.ksh \
172 ${TESTSRCDIR}/tst/common/usdt/tst.guess32.ksh \
173 ${TESTSRCDIR}/tst/common/usdt/tst.guess64.ksh \
174 ${TESTSRCDIR}/tst/common/usdt/tst.header.ksh \
175 ${TESTSRCDIR}/tst/common/usdt/tst.include.ksh \
176 ${TESTSRCDIR}/tst/common/usdt/tst.linkpriv.ksh \
177 ${TESTSRCDIR}/tst/common/usdt/tst.linkunpriv.ksh \
178 ${TESTSRCDIR}/tst/common/usdt/tst.multiple.ksh \
179 ${TESTSRCDIR}/tst/common/usdt/tst.nodtrace.ksh \
180 ${TESTSRCDIR}/tst/common/usdt/tst.onlyenabled.ksh \
181 ${TESTSRCDIR}/tst/common/usdt/tst.reeval.ksh \
182 ${TESTSRCDIR}/tst/common/usdt/tst.static.ksh \
183 ${TESTSRCDIR}/tst/common/usdt/tst.static2.ksh \
184 ${TESTSRCDIR}/tst/common/usdt/tst.user.ksh \
185 ${TESTSRCDIR}/tst/common/misc/tst.schrock.ksh
187 # --------------------------------------------------------------------------------
188 # Tests that just don't complete (even to fail) at the moment...
191 ${TESTSRCDIR}/tst/common/dtraceUtil/tst.ZeroModuleProbes.d.ksh \
192 ${TESTSRCDIR}/tst/common/printa/tst.many.d \
193 ${TESTSRCDIR}/tst/common/scalars/err.D_OP_INCOMPAT.dupgtype.d \
194 ${TESTSRCDIR}/tst/common/scalars/err.D_OP_INCOMPAT.dupltype.d \
195 ${TESTSRCDIR}/tst/common/scalars/err.D_OP_INCOMPAT.dupttype.d \
196 ${TESTSRCDIR}/tst/common/vars/tst.gid.d \
197 ${TESTSRCDIR}/tst/common/vars/tst.uid.d \
199 # --------------------------------------------------------------------------------
200 # Tests that currently hang the system:
203 ${TESTSRCDIR}/tst/common/fbtprovider/tst.basic.d \
204 ${TESTSRCDIR}/tst/common/fbtprovider/tst.return.d \
205 ${TESTSRCDIR}/tst/common/grammar/tst.stmts.d \
206 ${TESTSRCDIR}/tst/common/misc/tst.enablerace.ksh \
207 ${TESTSRCDIR}/tst/common/predicates/tst.predcache.ksh \
208 ${TESTSRCDIR}/tst/common/proc/tst.exitkilled.ksh \
210 .if ${MACHINE_ARCH} == "i386"
212 NOTWORK+= ${TESTSRCDIR}/tst/common/dtraceUtil/tst.DataModel64.d.ksh
214 NOTWORK+= ${TESTSRCDIR}/tst/common/dtraceUtil/tst.DataModel64.d.ksh
216 # --------------------------------------------------------------------------------
217 # This test causes i386 to go kaboom in a big way. There is a problem in the
218 # fbt exception code which needs to be fixed.
221 ${TESTSRCDIR}/tst/common/fbtprovider/tst.tailcall.d
223 # Some tests that don't complete on i386.... :-/
225 NOTWORK+= ${TESTSRCDIR}/tst/common/funcs/tst.chill.ksh
226 NOTWORK+= ${TESTSRCDIR}/tst/common/proc/tst.create.ksh
227 NOTWORK+= ${TESTSRCDIR}/tst/common/proc/tst.exec.ksh
228 NOTWORK+= ${TESTSRCDIR}/tst/common/proc/tst.execfail.ENOENT.ksh
229 NOTWORK+= ${TESTSRCDIR}/tst/common/proc/tst.execfail.ksh
230 NOTWORK+= ${TESTSRCDIR}/tst/common/proc/tst.exitcore.ksh
231 NOTWORK+= ${TESTSRCDIR}/tst/common/proc/tst.exitexit.ksh
232 NOTWORK+= ${TESTSRCDIR}/tst/common/proc/tst.exitkilled.ksh
233 NOTWORK+= ${TESTSRCDIR}/tst/common/proc/tst.signal.ksh
234 NOTWORK+= ${TESTSRCDIR}/tst/common/proc/tst.sigwait.c
235 NOTWORK+= ${TESTSRCDIR}/tst/common/proc/tst.sigwait.d
236 NOTWORK+= ${TESTSRCDIR}/tst/common/proc/tst.startexit.ksh
237 NOTWORK+= ${TESTSRCDIR}/tst/common/struct/tst.StructDataTypes.d
238 NOTWORK+= ${TESTSRCDIR}/tst/common/union/tst.UnionDataTypes.d
242 # --------------------------------------------------------------------------------
243 # Interrupt priority isn't relevant on FreeBSD.
245 NOTWORK+= ${TESTSRCDIR}/tst/common/builtinvar/tst.ipl.d \
246 ${TESTSRCDIR}/tst/common/builtinvar/tst.ipl1.d
248 # --------------------------------------------------------------------------------
249 # These tests relies on the Solaris ping behaviour of exiting after a number of
250 # pings. On FreeBSD ping doesn't do that.
252 NOTWORK+= ${TESTSRCDIR}/tst/common/funcs/tst.system.d \
253 ${TESTSRCDIR}/tst/common/ip/tst.ipv6remoteicmp.ksh \
254 ${TESTSRCDIR}/tst/common/ip/tst.ipv6localicmp.ksh \
255 ${TESTSRCDIR}/tst/common/ip/tst.ipv4localicmp.ksh \
256 ${TESTSRCDIR}/tst/common/ip/tst.ipv4remoteicmp.ksh
258 # --------------------------------------------------------------------------------
259 # This test checks for a leading tab on a line before #define. That is illegal
260 # on Solaris, but the gcc pre-processor on FreeBSD is happy with code like that.
262 NOTWORK+= ${TESTSRCDIR}/tst/common/preprocessor/err.D_PRAGCTL_INVAL.tabdefine.d
264 # --------------------------------------------------------------------------------
265 # This test is coded to use Solaris syscall names. FreeBSD has none with 'lwp"
266 # in them, so the test fails because of that.
268 NOTWORK+= ${TESTSRCDIR}/tst/common/probes/tst.probestar.d
270 NOTYET= ${IGNORE} ${NOTWORK}
272 # --------------------------------------------------------------------------------
273 # Only prepare the test lists if we need to:
275 .if !make(obj) && !make(clean) && !make(cleandir) && !make(listerrors)
277 # --------------------------------------------------------------------------------
278 # Get a list of tests, named according to the directory they are in:
280 _COMMONDIRS!= cd ${TESTSRCDIR}/tst/common; find . -depth 1 -type d
281 COMMONDIRS= ${_COMMONDIRS:S/.\///}
286 # --------------------------------------------------------------------------------
287 # Create a test target for each directory:
291 # Process each common test directory:
292 .for _d in ${COMMONDIRS}
294 # Get a list of test files in the test directory:
295 ${_d}_ERR!= find ${TESTSRCDIR}/tst/common/${_d} -name "err.*.d"
296 ${_d}_TSTD!= find ${TESTSRCDIR}/tst/common/${_d} -name "tst.*.d"
297 ${_d}_TSTC!= find ${TESTSRCDIR}/tst/common/${_d} -name "tst.*.c"
298 ${_d}_SHERR!= find ${TESTSRCDIR}/tst/common/${_d} -name "err.*.ksh"
299 ${_d}_SHTST!= find ${TESTSRCDIR}/tst/common/${_d} -name "tst.*.ksh"
300 ${_d}_TF= ${${_d}_ERR} ${${_d}_TSTD} ${${_d}_SHERR} ${${_d}_SHTST}
302 # Go through the list of test files and prepare another list that contains
303 # none of the test files listed in the NOTYET list:
304 .for _f in ${${_d}_TF}
305 .if (${NOTYET:M${_f}} == "")
310 # Add the list of tests to the overall test list:
311 ALL_TESTFILES+= ${${_d}_TFS}
313 .for _f in ${${_d}_TSTC}
314 .if (${NOTYET:M${_f}} == "")
319 ALL_TESTCFILES+= ${${_d}_TFCS}
321 ${_d} : ${${_d}_TFCS:T:S/c$/exe/}
322 @${DTEST} ${${_d}_TFS}
325 # --------------------------------------------------------------------------------
328 PRGS= ${ALL_TESTCFILES:T:S/c$/exe/}
333 # --------------------------------------------------------------------------------
336 .for _f in ${ALL_TESTCFILES}
337 ${_f:T:S/c$/exe/} : ${_f}
338 ${CC} -o ${.TARGET} ${_f} -lrt
342 @echo ${ALL_TESTCFILES}
344 # --------------------------------------------------------------------------------
345 # A target to build all tests:
348 @sync; sync; sync; sync; sync
349 @${DTEST} ${ALL_TESTFILES}
351 # --------------------------------------------------------------------------------
352 # A target to build the tests flagged as not working yet:
360 @find ${.OBJDIR} -name "*.err" -exec cat {} \; -print
363 # --------------------------------------------------------------------------------
364 # Test failures are written to failure.N directories in the object tree.
365 # Get a list of directories in the object tree for 'make clean'.
367 .if ${.OBJDIR} != ${.CURDIR} && !empty(${.OBJDIR})
368 CLEANDIRS!= cd ${.OBJDIR} && ls -d *
371 # --------------------------------------------------------------------------------
372 # Insist on using an object directory. Things get messy otherwsie.
374 .if ${.OBJDIR} == ${.CURDIR} && !make(obj) && !make(clean) && !make(cleandir)
375 .error ERROR: You must run 'make obj' first!
378 # --------------------------------------------------------------------------------
379 # Load the DTrace module set if necessary.
382 @if ! kldstat -q -m dtrace_test; then kldload dtrace_test; fi
384 .include <bsd.obj.mk>