Home | History | Annotate | Line # | Download | only in unit-tests
      1  1.1  rillig # $NetBSD: posix-execution.mk,v 1.1 2025/04/13 09:29:32 rillig Exp $
      2  1.1  rillig #
      3  1.1  rillig # https://pubs.opengroup.org/onlinepubs/9799919799/utilities/make.html#tag_20_76_13_03
      4  1.1  rillig #
      5  1.1  rillig 
      6  1.1  rillig .POSIX:
      7  1.1  rillig 
      8  1.1  rillig 
      9  1.1  rillig # The target consists of two commands, which are executed separately.
     10  1.1  rillig # The second command thus does not see the shell variable from the first
     11  1.1  rillig # command.
     12  1.1  rillig # expect: one-at-a-time: shell_variable is 'second'
     13  1.1  rillig all: one-at-a-time
     14  1.1  rillig one-at-a-time:
     15  1.1  rillig 	@shell_variable=first
     16  1.1  rillig 	@echo "$@: shell_variable is '$${shell_variable:-second}'"
     17  1.1  rillig 
     18  1.1  rillig 
     19  1.1  rillig # expect: echo "prefixes: ignore errors"; exit 13
     20  1.1  rillig # expect: prefixes: ignore errors
     21  1.1  rillig # expect-not: echo "prefixes: no echo"
     22  1.1  rillig # expect: prefixes: no echo
     23  1.1  rillig # expect: prefixes: always, no echo
     24  1.1  rillig all: prefixes
     25  1.1  rillig prefixes:
     26  1.1  rillig 	-echo "$@: ignore errors"; exit 13
     27  1.1  rillig 	@echo "$@: no echo"
     28  1.1  rillig 	+@echo "$@: always, no echo"
     29  1.1  rillig 
     30  1.1  rillig 
     31  1.1  rillig # Deviation from POSIX: The shell "-e" option is not in effect.
     32  1.1  rillig # expect: shell-e-option: before
     33  1.1  rillig # expect: shell-e-option: after
     34  1.1  rillig all: shell-e-option
     35  1.1  rillig shell-e-option:
     36  1.1  rillig 	@echo '$@: before'; false; echo '$@: after'
     37  1.1  rillig 
     38  1.1  rillig 
     39  1.1  rillig # expect-not-matches: ^do%-prefix%-plus: a regular command
     40  1.1  rillig # expect: do-prefix-plus: prefixed by plus
     41  1.1  rillig # expect: do-prefix-plus: prefixed by plus
     42  1.1  rillig all: prefix-plus
     43  1.1  rillig prefix-plus:
     44  1.1  rillig 	@${MAKE} -f ${MAKEFILE} -n do-prefix-plus
     45  1.1  rillig 	@${MAKE} -f ${MAKEFILE} -n -j1 do-prefix-plus
     46  1.1  rillig do-prefix-plus:
     47  1.1  rillig 	@echo '$@: a regular command'
     48  1.1  rillig 	@+echo '$@: prefixed by plus'
     49  1.1  rillig 	@echo '$@: a regular command'
     50  1.1  rillig 
     51  1.1  rillig 
     52  1.1  rillig # expect: do-error-not-ignored: successful
     53  1.1  rillig # expect-not: do-error-not-ignored: after an error
     54  1.1  rillig all: error-not-ignored
     55  1.1  rillig error-not-ignored:
     56  1.1  rillig 	@${MAKE} -f ${MAKEFILE} do-error-not-ignored || :
     57  1.1  rillig do-error-not-ignored:
     58  1.1  rillig 	@echo '$@: successful'; exit 13
     59  1.1  rillig 	@echo '$@: after an error'
     60