xref: /openbsd/regress/usr.bin/make/Makefile (revision f45a9042)
1*f45a9042Sjasper# $OpenBSD: Makefile,v 1.51 2021/09/02 07:14:15 jasper Exp $
2d30492b3Sespie
331380ac0SbluhmREGRESS_TARGETS=     t1  t2  t3  t4  t5  t6  t7  t8  t9 \
431380ac0Sbluhm		t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 \
531380ac0Sbluhm		t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 \
631380ac0Sbluhm		t30 t31 t32 t33 t34 t35 t36 t37 t38 t38j t39 \
7747d3b41Sespie		t40 t41 t42 t42bis t43 t44 t45 t46 t47 t48
831380ac0Sbluhm
9ce008665SespieREGRESS_EXPECTED_FAILURES = t14 t17 t18
10d30492b3Sespie
11d30492b3Sespiet1: t1.out
12*f45a9042Sjasper	env -i PATH=${PATH} ${MAKE} -e -r -f ${.CURDIR}/mk1 | diff - t1.out
13d30492b3Sespie
14d30492b3Sespie# This is a POSIX test. pmake does not pass variables to submakes until
15d30492b3Sespie# after OpenBSD 2.7.
16d30492b3Sespiet2:
17*f45a9042Sjasper	cd ${.CURDIR} && env -i PATH=${PATH} ${MAKE} -r -f mk2| diff - t2.out
18d30492b3Sespie
19d30492b3Sespiet3:
20*f45a9042Sjasper	cd ${.CURDIR} && env -i PATH=${PATH} ${MAKE} -r -f mk3 -f mk3a|diff - t3.out
21*f45a9042Sjasper	cd ${.CURDIR} && cat mk3a |env -i PATH=${PATH} ${MAKE} -r -f mk3 -f -|diff - t3.out
22*f45a9042Sjasper	cd ${.CURDIR} && cat mk3 |env -i PATH=${PATH} ${MAKE} -r -f - -f mk3a|diff - t3.out
23*f45a9042Sjasper	cd ${.CURDIR} && cat mk3 mk3a|env -i PATH=${PATH} ${MAKE} -r -f - |diff - t3.out
24d30492b3Sespie
25d30492b3Sespiet4:
26*f45a9042Sjasper	cd ${.CURDIR} && cat mk4 mk4a|env -i PATH=${PATH} ${MAKE} -r -f - |diff - t4.out
27d30492b3Sespie	# Splitting files along conditionals should not work
28*f45a9042Sjasper	if cd ${.CURDIR} && env -i PATH=${PATH} ${MAKE} -r -f mk4 -f mk4a 2>/dev/null || test $$? -ge 128 ; then false; fi
29d30492b3Sespie
30d30492b3Sespie# Another POSIX test, checking that MAKEFLAGS does work
31d30492b3Sespiet5:
32d30492b3Sespie	# first check that make does fail as expected
33*f45a9042Sjasper	if cd ${.CURDIR} && env -i PATH=${PATH} ${MAKE} -r -f mkfail 2>/dev/null || test $$? -ge 128; then false; fi
34d30492b3Sespie	# first form of MAKEFLAGS
35*f45a9042Sjasper	cd ${.CURDIR} && env -i PATH=${PATH} MAKEFLAGS=-n ${MAKE} -r -f mkfail
36d30492b3Sespie	# second form of MAKEFLAGS
37*f45a9042Sjasper	cd ${.CURDIR} && env -i PATH=${PATH} MAKEFLAGS=n ${MAKE} -r -f mkfail
38d30492b3Sespie
39d30492b3Sespiet6:
40*f45a9042Sjasper	cd ${.CURDIR} && env -i PATH=${PATH} ${MAKE} A=good -r -f mk6 | diff - t6.out
41d30492b3Sespie
4231380ac0Sbluhm# This test passes since the cond parser has been rewritten.
431a5be1c1Sespiet7:
44*f45a9042Sjasper	if cd ${.CURDIR} && env -i PATH=${PATH} ${MAKE} -r -f mk7 2>/dev/null || test $$? -ge 128; then false; fi
451a5be1c1Sespie
469e90d608Sespie# check for existent/non existent files
479e90d608Sespiet8:
489e90d608Sespie	touch goodfile phony
49*f45a9042Sjasper	cd ${.CURDIR} && env -i PATH=${PATH} ${MAKE} -r -f mk8 | diff - t8.out
509e90d608Sespie
513a482e43Sespiet9:
52*f45a9042Sjasper	cd ${.CURDIR} && env -i PATH=${PATH} ${MAKE} -r -f mk9 2>&1 | diff - t9.out
533a482e43Sespie
54a3ee128fSespie# verify that systemV extended variables work as expected
55a3ee128fSespiet10:	z.a
56*f45a9042Sjasper	cd ${.CURDIR} && env -i PATH=${PATH} ${MAKE} -r -f mk10 |diff - t10.out
57a3ee128fSespie
58da5327dbSespie# check for substitution parser in some confusing situations
59da5327dbSespiet11:
60*f45a9042Sjasper	cd ${.CURDIR} && env -i PATH=${PATH} ${MAKE} -r -f mk11 |diff - t11.out
61*f45a9042Sjasper	cd ${.CURDIR} && env -i PATH=${PATH} ${MAKE} -r -f mk11 A=t|diff - t11.out2
62da5327dbSespie
6300a5c933Sespie# Check for filename expansions.
6400a5c933Sespiet12:
65*f45a9042Sjasper	cd ${.CURDIR} && env -i PATH=${PATH} ${MAKE} -r -f mk12 |diff - t12.out
6600a5c933Sespie
6731380ac0Sbluhm# Verify whitespace handling.
68ea40f178Sespiet13:
69*f45a9042Sjasper	cd ${.CURDIR} && env -i PATH=${PATH} ${MAKE} -r -f mk13 |diff - t13.out
70ea40f178Sespie
7196b9c5acSespie# make currently incorrectly uses annotations for suffixes rules
7296b9c5acSespie# for non-suffixes rules.
7396b9c5acSespie# this is hard to fix without breaking something else
74fcb573ceSespiet14:
75*f45a9042Sjasper	if cd ${.CURDIR} && env -i PATH=${PATH} ${MAKE} -r -f mk14 2>/dev/null || test $$? -ge 128; then false; fi
76fcb573ceSespie
77ad977213Sespiet15:
78ad977213Sespie	touch t15file
79*f45a9042Sjasper	cd ${.CURDIR} && ulimit -t 2 && env -i PATH=${PATH} ${MAKE} -r -f mk15 2>/dev/null
80ad977213Sespie
816e31152dSespiet16:
82*f45a9042Sjasper	cd ${.CURDIR} && env -i PATH=${PATH} ${MAKE} -r -f mk16
836e31152dSespie
8496b9c5acSespie# Bug in cond-parser, ends up having too many open conds.
859280f092Sespiet17:
86*f45a9042Sjasper	cd ${.CURDIR} && env -i PATH=${PATH} ${MAKE} -r -f mk17
879280f092Sespie
8896b9c5acSespie# bug in cond-parser again: this one holds too many open conditionals,
8996b9c5acSespie# and exactly enough closes...
90b2734408Sespiet18:
91*f45a9042Sjasper	cd ${.CURDIR} && env -i PATH=${PATH} ${MAKE} -r -f mk18
92b2734408Sespie
9382eabe46Sespiet19:
94*f45a9042Sjasper	cd ${.CURDIR} && env -i PATH=${PATH} SHELL=/bin/zsh ${MAKE} -r -f mk19 | diff - t19.out
9582eabe46Sespie
9682eabe46Sespiet20:
97*f45a9042Sjasper	cd ${.CURDIR} && env -i PATH=${PATH} SHELL=/bin/sh ${MAKE} -r -f mk20 | diff - t20.out
9882eabe46Sespie
999fdcdc49Sespiet21:
100*f45a9042Sjasper	cd ${.CURDIR} && env -i PATH=${PATH} ${MAKE} -r -f mk21 | diff - t21.out
1019fdcdc49Sespie
102a00f81f1Sespiet22:
103*f45a9042Sjasper	cd ${.CURDIR} && env -i PATH=${PATH} ${MAKE} -r -f mk22 b | diff - t22.out
104a00f81f1Sespie
105a00f81f1Sespiet23:
106*f45a9042Sjasper	cd ${.CURDIR} && ulimit -t 60 && env -i PATH=${PATH} ${MAKE} -r -f mk22 a 2>&1| diff - t23.out
107a00f81f1Sespie
108d8547688Sespiet24:
109*f45a9042Sjasper	if cd ${.CURDIR} && env -i PATH=${PATH} ${MAKE} -r -f mk23 a 2>/dev/null || test $$? -ge 128; then false; fi
1103846517aSespie
1113846517aSespiet25:
1123846517aSespie	touch ${.OBJDIR}/t25.1st
1133846517aSespie	rm -f ${.OBJDIR}/t25.2nd
114*f45a9042Sjasper	if cd ${.CURDIR} && env -i PATH=${PATH} ${MAKE} -r -f mk24 t25.2nd 2>/dev/null || test $$? -ge 128; then false; fi
1153846517aSespie
1163846517aSespiet26:
1173846517aSespie	touch ${.OBJDIR}/f26.2nd
1183846517aSespie	rm -f ${.OBJDIR}/f26
119*f45a9042Sjasper	if cd ${.CURDIR} && env -i PATH=${PATH} ${MAKE} -r -f mk24 f26 2>/dev/null || test $$? -ge 128; then false; fi
1203846517aSespie
1213846517aSespiet27:
1223846517aSespie	touch ${.OBJDIR}/t27.2nd
1233846517aSespie	rm -f ${.OBJDIR}/t27.3rd
124*f45a9042Sjasper	if cd ${.CURDIR} && env -i PATH=${PATH} ${MAKE} -r -f mk24 t27.3rd 2>/dev/null || test $$? -ge 128; then false; fi
125d8547688Sespie
1267ad4da04Sespiet28:
127*f45a9042Sjasper	cd ${.CURDIR} && env -i PATH=${PATH} ${MAKE} -r -f mk25 all >/dev/null
1287ad4da04Sespie
1293cd197acSespiet29:
1303cd197acSespie	rm -f t29dep t29.targ t29.targ2 libt29.a
131*f45a9042Sjasper	cd ${.CURDIR} && env -i PATH=${PATH} ${MAKE} -r -f mk26 all | diff - t29.out
132*f45a9042Sjasper	cd ${.CURDIR} && env -i PATH=${PATH} ${MAKE} -r -f mk26 all | diff - t29.out2
1333cd197acSespie
1347b923527Sespiet30:
135*f45a9042Sjasper	cd ${.CURDIR} && env -i PATH=${PATH} ${MAKE} -r -f mk27 all | diff - t30.out
1367b923527Sespie
137c235aa79Sespiet31:
138*f45a9042Sjasper	cd ${.CURDIR} && env -i PATH=${PATH} ${MAKE} -r -f mk28 all
139c235aa79Sespie
140016739e4Sfgscht32:
141*f45a9042Sjasper	cd ${.CURDIR} && env -i PATH=${PATH} B="A" ${MAKE} -r -f mk32 all | diff - t32.out
142016739e4Sfgsch
143016739e4Sfgscht33:
144*f45a9042Sjasper	cd ${.CURDIR} && env -i PATH=${PATH} B=0 ${MAKE} -r -f mk32 all | diff - t33.out
145016739e4Sfgsch
146016739e4Sfgscht34:
147*f45a9042Sjasper	cd ${.CURDIR} && env -i PATH=${PATH} B=1 ${MAKE} -r -f mk32 all | diff - t34.out
148016739e4Sfgsch
149016739e4Sfgscht35:
150*f45a9042Sjasper	cd ${.CURDIR} && env -i PATH=${PATH} B=2 ${MAKE} -r -f mk32 all | diff - t35.out
151016739e4Sfgsch
15278e70fa1Sespiet36:
153*f45a9042Sjasper	if echo '$$$$(A:&)' | env -i PATH=${PATH} ${MAKE} -r -f - 2>/dev/null|| test $$? -ge 128; then false; fi
15478e70fa1Sespie
155a3ee128fSespiez.a:
156a3ee128fSespie	touch $@
157a3ee128fSespie
15850cd2f97Sespiet37:
159*f45a9042Sjasper	if cd ${.CURDIR} && env -i PATH=${PATH} B=2 ${MAKE} -r -f mk33 all; then false; else true; fi
16050cd2f97Sespie
16132a92205Sespiet38:
162*f45a9042Sjasper	cd ${.CURDIR} && env -i PATH=${PATH} ${MAKE} -r -f mk34 | diff - t38.out
16332a92205Sespie
16432a92205Sespiet38j:
165*f45a9042Sjasper	cd ${.CURDIR} && env -i PATH=${PATH} ${MAKE} -r -f mk34 -j2 | diff - t38.out
1664cc8d355Sespie
1674cc8d355Sespiet39:
168*f45a9042Sjasper	cd ${.CURDIR} && env -i PATH=${PATH} ${MAKE} -r -f mk35 2>&1 | diff - t39.out
1694cc8d355Sespie
170dacceb69Sjsgt40:
171*f45a9042Sjasper	cd ${.CURDIR} && env -i PATH=${PATH} ${MAKE} -r -f mk36 2>/dev/null
172dacceb69Sjsg
1739a59c451Sjsgt41:
174*f45a9042Sjasper	if cd ${.CURDIR} && env -i PATH=${PATH} ${MAKE} -r -f mk37 2>/dev/null || test $$? -ge 128; then false; fi
1759a59c451Sjsg
1769a59c451Sjsgt42:
177*f45a9042Sjasper	if cd ${.CURDIR} && env -i PATH=${PATH} ${MAKE} -r -f mk38 2>/dev/null || test $$? -ge 128; then false; fi
1789a59c451Sjsg
1794301cb8bSespiet42bis:
180*f45a9042Sjasper	if cd ${.CURDIR} && env -i PATH=${PATH} ${MAKE} -r -f mk38bis 2>/dev/null || test $$? -ge 128; then false; fi
1814301cb8bSespie
18261bf719dSespiet43:
183*f45a9042Sjasper	cd ${.CURDIR} && env -i PATH=${PATH} ${MAKE} -r -j2 -f mk39 b 2>&1 | diff - t43.out
184*f45a9042Sjasper	cd ${.CURDIR} && env -i PATH=${PATH} ${MAKE} -r -j2 -f mk39 a 2>&1 | diff - t43.out
18561bf719dSespie
1863516c9d9Sespiet44:
187*f45a9042Sjasper	if cd ${.CURDIR} && env -i PATH=${PATH} ${MAKE} -r -f mk40 2>/dev/null || test $$? -ge 128; then false; fi
1883516c9d9Sespie
1893516c9d9Sespiet45:
190*f45a9042Sjasper	if cd ${.CURDIR} && env -i PATH=${PATH} ${MAKE} -r -f mk41 2>/dev/null || test $$? -ge 128; then false; fi
1913516c9d9Sespie
19202e33fd6Sespie# this file should fail, but NOT segfault
19302e33fd6Sespiet46:
194*f45a9042Sjasper	if cd ${.CURDIR} && env -i PATH=${PATH} ${MAKE} -r -f mk42 a 2>/dev/null; then \
19502e33fd6Sespie	    false; \
19602e33fd6Sespie	    else \
19702e33fd6Sespie		if test $$? -ge 1 -a $$? -lt 128; then \
19802e33fd6Sespie		    true; else \
19902e33fd6Sespie		    false; fi; \
20002e33fd6Sespie	    fi
20161bf719dSespie
20209c75a74Sespiet47: tok.o
20309c75a74Sespie	test -f tok.o || exit 1
20409c75a74Sespie
205747d3b41Sespiet48:
206747d3b41Sespie	cd ${.CURDIR} && make -r -f mk43 a
207747d3b41Sespie
208d30492b3Sespiet1.out:
209d30492b3Sespie	echo MACHINE_ARCH=${MACHINE_ARCH} >$@
210d30492b3Sespie
2113846517aSespie.PHONY: ${REGRESS_TARGETS} regress
212d30492b3Sespie
21332a92205SespieCLEANFILES+=t1.out z.a a.a a.b mk34.b goodfile phony t15file \
2143cd197acSespie	t25.1st t25.2nd f26.2nd f26 t27.2nd t27.3rd \
21531380ac0Sbluhm	libt29.a t29dep t29.targ t29.targ2 t38.b tok tok.o tok.d
216d30492b3Sespie
2178267faadSart.include <bsd.regress.mk>
218