]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - contrib/bmake/unit-tests/varmod-shell.mk
THIS BRANCH IS OBSOLETE, PLEASE READ:
[FreeBSD/FreeBSD.git] / contrib / bmake / unit-tests / varmod-shell.mk
1 # $NetBSD: varmod-shell.mk,v 1.5 2020/11/17 20:11:02 rillig Exp $
2 #
3 # Tests for the :sh variable modifier, which runs the shell command
4 # given by the variable value and returns its output.
5 #
6 # This modifier has been added on 2000-04-29.
7 #
8 # See also:
9 #       ApplyModifier_ShellCommand
10
11 # TODO: Implementation
12
13 # The command to be run is enclosed between exclamation marks.
14 # The previous value of the expression is irrelevant for this modifier.
15 # The :!cmd! modifier turns an undefined expression into a defined one.
16 .if ${:!echo word!} != "word"
17 .  error
18 .endif
19
20 # If the command exits with non-zero, an error message is printed.
21 # XXX: Processing continues as usual though.
22 #
23 # Between 2000-04-29 and 2020-11-17, the error message mentioned the previous
24 # value of the expression (which is usually an empty string) instead of the
25 # command that was executed.  It's strange that such a simple bug could
26 # survive such a long time.
27 .if ${:!echo word; false!} != "word"
28 .  error
29 .endif
30 .if ${:Uprevious value:!echo word; false!} != "word"
31 .  error
32 .endif
33
34 all:
35         @:;