freebsd-nq/contrib/bmake/unit-tests/varmod-exclam-shell.mk
Simon J. Gerraty 2c3632d14f Update to bmake-20200902
Lots of code refactoring, simplification and cleanup.
Lots of new unit-tests providing much higher code coverage.
All courtesy of rillig at netbsd.

Other significant changes:

o new read-only variable .SHELL which provides the path of the shell
  used to run scripts (as defined by  the .SHELL target).

o variable parsing detects more errors.

o new debug option -dl: LINT mode, does the equivalent of := for all
  variable assignments so that file and line number are reported for
  variable parse errors.
2020-09-05 19:29:42 +00:00

29 lines
696 B
Makefile

# $NetBSD: varmod-exclam-shell.mk,v 1.2 2020/08/16 12:48:55 rillig Exp $
#
# Tests for the :!cmd! variable modifier.
.if ${:!echo hello | tr 'l' 'l'!} != "hello"
.warning unexpected
.endif
# The output is truncated at the first null byte.
# Cmd_Exec returns only a string pointer without length information.
.if ${:!echo hello | tr 'l' '\0'!} != "he"
.warning unexpected
.endif
.if ${:!echo!} != ""
.warning A newline at the end of the output must be stripped.
.endif
.if ${:!echo;echo!} != " "
.warning Only a single newline at the end of the output is stripped.
.endif
.if ${:!echo;echo;echo;echo!} != " "
.warning Other newlines in the output are converted to spaces.
.endif
all:
@:;