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