xref: /freebsd/contrib/bmake/unit-tests/opt-jobs.mk (revision 988758838533b24f5893b36514fe2c68a3f911a2)
1*98875883SSimon J. Gerraty# $NetBSD: opt-jobs.mk,v 1.5 2023/09/10 16:25:32 sjg Exp $
22c3632d1SSimon J. Gerraty#
3*98875883SSimon J. Gerraty# Tests for the -j command line option, which creates the targets in parallel.
42c3632d1SSimon J. Gerraty
52c3632d1SSimon J. Gerraty
6*98875883SSimon J. Gerraty# The option '-j <integer>' specifies the number of targets that can be made
7*98875883SSimon J. Gerraty# in parallel.
8*98875883SSimon J. GerratyARGS=		0 1 2 8 08 017 0x10 -5 1000
9*98875883SSimon J. GerratyEXPECT.0=	argument '0' to option '-j' must be a positive number (exit 2)
10*98875883SSimon J. GerratyEXPECT.1=	1
11*98875883SSimon J. GerratyEXPECT.2=	2
12*98875883SSimon J. GerratyEXPECT.8=	8
13*98875883SSimon J. GerratyEXPECT.08=	argument '08' to option '-j' must be a positive number (exit 2)
14*98875883SSimon J. GerratyEXPECT.017=	15
15*98875883SSimon J. GerratyEXPECT.0x10=	16
16*98875883SSimon J. GerratyEXPECT.-5=	argument '-5' to option '-j' must be a positive number (exit 2)
17*98875883SSimon J. GerratyEXPECT.1000=	1000
18*98875883SSimon J. Gerraty
19*98875883SSimon J. Gerraty.for arg in ${ARGS}
20*98875883SSimon J. GerratyOUTPUT!=	${MAKE} -r -f /dev/null -j ${arg} -v .MAKE.JOBS 2>&1 || echo "(exit $$?)"
21*98875883SSimon J. Gerraty.  if ${OUTPUT:[2..-1]} != ${EXPECT.${arg}}
22*98875883SSimon J. Gerraty.      warning ${arg}:${.newline}    have: ${OUTPUT:[2..-1]}${.newline}    want: ${EXPECT.${arg}}
23*98875883SSimon J. Gerraty.  endif
24*98875883SSimon J. Gerraty.endfor
25*98875883SSimon J. Gerraty
26*98875883SSimon J. Gerraty
27*98875883SSimon J. Gerraty# The options '-j <float>' and '-j <integer>C' multiply the given number with
28*98875883SSimon J. Gerraty# the number of available CPUs.
29*98875883SSimon J. GerratyARGS=		0.0 0C 0.0C .00001 .00001C 1C 1CPUs 1.2 .5e1C 07.5C 08.5C
30*98875883SSimon J. GerratyEXPECT.0.0=	argument '0.0' to option '-j' must be a positive number (exit 2)
31*98875883SSimon J. GerratyEXPECT.0C=	<integer>		# rounded up to 1C
32*98875883SSimon J. GerratyEXPECT.0.0C=	argument '0.0C' to option '-j' must be a positive number (exit 2)
33*98875883SSimon J. GerratyEXPECT..00001=	argument '.00001' to option '-j' must be a positive number (exit 2)
34*98875883SSimon J. GerratyEXPECT..00001C=	argument '.00001C' to option '-j' must be a positive number (exit 2)
35*98875883SSimon J. GerratyEXPECT.1C=	<integer>
36*98875883SSimon J. GerratyEXPECT.1CPUs=	<integer>
37*98875883SSimon J. GerratyEXPECT.1.2=	<integer>
38*98875883SSimon J. GerratyEXPECT..5e1C=	<integer>		# unlikely to occur in practice
39*98875883SSimon J. GerratyEXPECT.07.5C=	<integer>
40*98875883SSimon J. GerratyEXPECT.08.5C=	argument '08.5C' to option '-j' must be a positive number (exit 2)
41*98875883SSimon J. Gerraty
42*98875883SSimon J. Gerraty.if ${.MAKE.JOBS.C} == "yes"
43*98875883SSimon J. Gerraty.  for arg in ${ARGS}
44*98875883SSimon J. GerratyOUTPUT!=	${MAKE} -r -f /dev/null -j ${arg} -v .MAKE.JOBS 2>&1 || echo "(exit $$?)"
45*98875883SSimon J. Gerraty.    if ${OUTPUT:C,^[0-9]+$,numeric,W} == numeric
46*98875883SSimon J. GerratyOUTPUT=		<integer>
47*98875883SSimon J. Gerraty.    endif
48*98875883SSimon J. Gerraty.    if ${OUTPUT:[2..-1]} != ${EXPECT.${arg}}
49*98875883SSimon J. Gerraty.      warning ${arg}:${.newline}    have: ${OUTPUT:[2..-1]}${.newline}    want: ${EXPECT.${arg}}
50*98875883SSimon J. Gerraty.    endif
51*98875883SSimon J. Gerraty.  endfor
52*98875883SSimon J. Gerraty.endif
53*98875883SSimon J. Gerraty
54*98875883SSimon J. Gerratyall: .PHONY
55