xref: /netbsd-src/usr.bin/make/unit-tests/opt-debug-errors.mk (revision d2ef6c55f3aa58b4438f986e538d6b40dac983a8)
1*d2ef6c55Srillig# $NetBSD: opt-debug-errors.mk,v 1.2 2020/09/06 04:35:03 rillig Exp $
25630da51Srillig#
35630da51Srillig# Tests for the -de command line option, which adds debug logging for
45630da51Srillig# failed commands and targets.
55630da51Srillig
6*d2ef6c55Srillig.MAKEFLAGS: -de
75630da51Srillig
8*d2ef6c55Srilligall: fail-spaces
9*d2ef6c55Srilligall: fail-escaped-space
10*d2ef6c55Srilligall: fail-newline
11*d2ef6c55Srilligall: fail-multiline
12*d2ef6c55Srilligall: fail-multiline-intention
13*d2ef6c55Srillig
14*d2ef6c55Srillig# XXX: The debug output folds the spaces, showing '3 spaces' instead of
15*d2ef6c55Srillig# the correct '3   spaces'.
16*d2ef6c55Srilligfail-spaces:
17*d2ef6c55Srillig	echo '3   spaces'; false
18*d2ef6c55Srillig
19*d2ef6c55Srillig# XXX: The debug output folds the spaces, showing 'echo \ indented' instead
20*d2ef6c55Srillig# of the correct 'echo \  indented'.
21*d2ef6c55Srilligfail-escaped-space:
22*d2ef6c55Srillig	echo \  indented; false
23*d2ef6c55Srillig
24*d2ef6c55Srillig# XXX: A newline is turned into an ordinary space in the debug log.
25*d2ef6c55Srilligfail-newline:
26*d2ef6c55Srillig	echo 'line1${.newline}line2'; false
27*d2ef6c55Srillig
28*d2ef6c55Srillig# The line continuations in multiline commands are turned into an ordinary
29*d2ef6c55Srillig# space before the command is actually run.
30*d2ef6c55Srilligfail-multiline:
31*d2ef6c55Srillig	echo 'line1\
32*d2ef6c55Srillig		line2'; false
33*d2ef6c55Srillig
34*d2ef6c55Srillig# It is a common style to align the continuation backslashes at the right
35*d2ef6c55Srillig# of the lines, usually at column 73.  All spaces before the continuation
36*d2ef6c55Srillig# backslash are preserved and are usually outside a shell word and thus
37*d2ef6c55Srillig# irrelevant.  Having these spaces collapsed makes sense to show the command
38*d2ef6c55Srillig# in its condensed form.
39*d2ef6c55Srillig#
40*d2ef6c55Srilligfail-multiline-intention:
41*d2ef6c55Srillig	echo	'word1'							\
42*d2ef6c55Srillig		'word2'; false
43