Module Name:    src
Committed By:   rillig
Date:           Wed Dec  9 07:57:52 UTC 2020

Modified Files:
        src/distrib/sets/lists/tests: mi
        src/usr.bin/make/unit-tests: Makefile opt-jobs-no-action.mk
Added Files:
        src/usr.bin/make/unit-tests: opt-no-action-runflags.exp
            opt-no-action-runflags.mk

Log Message:
make(1): add test for the -n option combined with RunFlags


To generate a diff of this commit:
cvs rdiff -u -r1.986 -r1.987 src/distrib/sets/lists/tests/mi
cvs rdiff -u -r1.241 -r1.242 src/usr.bin/make/unit-tests/Makefile
cvs rdiff -u -r1.3 -r1.4 src/usr.bin/make/unit-tests/opt-jobs-no-action.mk
cvs rdiff -u -r0 -r1.1 src/usr.bin/make/unit-tests/opt-no-action-runflags.exp \
    src/usr.bin/make/unit-tests/opt-no-action-runflags.mk

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/distrib/sets/lists/tests/mi
diff -u src/distrib/sets/lists/tests/mi:1.986 src/distrib/sets/lists/tests/mi:1.987
--- src/distrib/sets/lists/tests/mi:1.986	Wed Dec  9 00:25:00 2020
+++ src/distrib/sets/lists/tests/mi	Wed Dec  9 07:57:51 2020
@@ -1,4 +1,4 @@
-# $NetBSD: mi,v 1.986 2020/12/09 00:25:00 rillig Exp $
+# $NetBSD: mi,v 1.987 2020/12/09 07:57:51 rillig Exp $
 #
 # Note: don't delete entries from here - mark them as "obsolete" instead.
 #
@@ -5229,6 +5229,8 @@
 ./usr/tests/usr.bin/make/unit-tests/opt-m-include-dir.mk			tests-usr.bin-tests	compattestfile,atf
 ./usr/tests/usr.bin/make/unit-tests/opt-no-action-at-all.exp			tests-usr.bin-tests	compattestfile,atf
 ./usr/tests/usr.bin/make/unit-tests/opt-no-action-at-all.mk			tests-usr.bin-tests	compattestfile,atf
+./usr/tests/usr.bin/make/unit-tests/opt-no-action-runflags.exp			tests-usr.bin-tests	compattestfile,atf
+./usr/tests/usr.bin/make/unit-tests/opt-no-action-runflags.mk			tests-usr.bin-tests	compattestfile,atf
 ./usr/tests/usr.bin/make/unit-tests/opt-no-action.exp				tests-usr.bin-tests	compattestfile,atf
 ./usr/tests/usr.bin/make/unit-tests/opt-no-action.mk				tests-usr.bin-tests	compattestfile,atf
 ./usr/tests/usr.bin/make/unit-tests/opt-query.exp				tests-usr.bin-tests	compattestfile,atf

Index: src/usr.bin/make/unit-tests/Makefile
diff -u src/usr.bin/make/unit-tests/Makefile:1.241 src/usr.bin/make/unit-tests/Makefile:1.242
--- src/usr.bin/make/unit-tests/Makefile:1.241	Wed Dec  9 00:25:00 2020
+++ src/usr.bin/make/unit-tests/Makefile	Wed Dec  9 07:57:52 2020
@@ -1,4 +1,4 @@
-# $NetBSD: Makefile,v 1.241 2020/12/09 00:25:00 rillig Exp $
+# $NetBSD: Makefile,v 1.242 2020/12/09 07:57:52 rillig Exp $
 #
 # Unit tests for make(1)
 #
@@ -242,6 +242,7 @@ TESTS+=		opt-keep-going-multiple
 TESTS+=		opt-m-include-dir
 TESTS+=		opt-no-action
 TESTS+=		opt-no-action-at-all
+TESTS+=		opt-no-action-runflags
 TESTS+=		opt-query
 TESTS+=		opt-raw
 TESTS+=		opt-silent
@@ -475,6 +476,10 @@ SED_CMDS.opt-debug-jobs+=	-e 's,JobFinis
 SED_CMDS.opt-debug-jobs+=	-e 's,Command: ${.SHELL:T},Command: <shell>,'
 # The "-q" may be there or not, see jobs.c, variable shells.
 SED_CMDS.opt-debug-jobs+=	-e 's,^\(.Command: <shell>\) -q,\1,'
+SED_CMDS.opt-no-action-runflags= \
+	-e '/^echo hide-from-output/d' \
+	-e 's,hide-from-output ,,' \
+	-e 's,hide-from-output,,'
 # For Compat_RunCommand, useShell == FALSE.
 SED_CMDS.sh-dots=		-e 's,^.*\.\.\.:.*,<not found: ...>,'
 # For Compat_RunCommand, useShell == TRUE.

Index: src/usr.bin/make/unit-tests/opt-jobs-no-action.mk
diff -u src/usr.bin/make/unit-tests/opt-jobs-no-action.mk:1.3 src/usr.bin/make/unit-tests/opt-jobs-no-action.mk:1.4
--- src/usr.bin/make/unit-tests/opt-jobs-no-action.mk:1.3	Wed Dec  9 07:24:52 2020
+++ src/usr.bin/make/unit-tests/opt-jobs-no-action.mk	Wed Dec  9 07:57:52 2020
@@ -1,4 +1,4 @@
-# $NetBSD: opt-jobs-no-action.mk,v 1.3 2020/12/09 07:24:52 rillig Exp $
+# $NetBSD: opt-jobs-no-action.mk,v 1.4 2020/12/09 07:57:52 rillig Exp $
 #
 # Tests for the combination of the options -j and -n, which prints the
 # commands instead of actually running them.
@@ -7,7 +7,11 @@
 # without the -j.  This is because all this code is implemented twice, once
 # in compat.c and once in job.c.
 #
-# See opt-jobs.mk for the corresponding tests without the -n option.
+# See also:
+#	opt-jobs.mk
+#		The corresponding tests without the -n option
+#	opt-no-action-combined.mk
+#		The corresponding tests without the -j option
 
 .MAKEFLAGS: -j1 -n
 
@@ -61,7 +65,6 @@ documented: .PHONY
 # Test all combinations of the 3 RunFlags.
 #
 # TODO: Closely inspect the output whether it makes sense.
-# XXX: The output should not contain the 'echo silent=...' lines.
 # XXX: silent=no always=no ignerr={no,yes} should be almost the same.
 #
 SILENT.no=	# none

Added files:

Index: src/usr.bin/make/unit-tests/opt-no-action-runflags.exp
diff -u /dev/null src/usr.bin/make/unit-tests/opt-no-action-runflags.exp:1.1
--- /dev/null	Wed Dec  9 07:57:52 2020
+++ src/usr.bin/make/unit-tests/opt-no-action-runflags.exp	Wed Dec  9 07:57:52 2020
@@ -0,0 +1,34 @@
+begin combined
+
+silent=no always=no ignerr=no
+echo running
+
+silent=no always=no ignerr=yes
+echo running; false
+
+silent=no always=yes ignerr=no
+echo running
+running
+
+silent=no always=yes ignerr=yes
+echo running; false
+running
+*** Error code 1 (ignored)
+
+silent=yes always=no ignerr=no
+echo running
+
+silent=yes always=no ignerr=yes
+echo running; false
+
+silent=yes always=yes ignerr=no
+echo running
+running
+
+silent=yes always=yes ignerr=yes
+echo running; false
+running
+*** Error code 1 (ignored)
+
+end combined
+exit status 0
Index: src/usr.bin/make/unit-tests/opt-no-action-runflags.mk
diff -u /dev/null src/usr.bin/make/unit-tests/opt-no-action-runflags.mk:1.1
--- /dev/null	Wed Dec  9 07:57:52 2020
+++ src/usr.bin/make/unit-tests/opt-no-action-runflags.mk	Wed Dec  9 07:57:52 2020
@@ -0,0 +1,32 @@
+# $NetBSD: opt-no-action-runflags.mk,v 1.1 2020/12/09 07:57:52 rillig Exp $
+#
+# Tests for the -n command line option, which runs almost no commands,
+# combined with the RunFlags '@', '-', '+' for individual commands.
+#
+# See also:
+#	opt-jobs-no-action.mk
+#		The corresponding test with the -j option
+
+.MAKEFLAGS: -n
+
+all: .PHONY combined
+
+SILENT.no=	# none
+SILENT.yes=	@
+ALWAYS.no=	# none
+ALWAYS.yes=	+
+IGNERR.no=	echo running
+IGNERR.yes=	-echo running; false
+#
+combined: .PHONY
+	@+echo hide-from-output 'begin $@'; echo
+.for silent in no yes
+.  for always in no yes
+.    for ignerr in no yes
+	@+echo hide-from-output silent=${silent} always=${always} ignerr=${ignerr}
+	${SILENT.${silent}}${ALWAYS.${always}}${IGNERR.${ignerr}}
+	@+echo hide-from-output
+.    endfor
+.  endfor
+.endfor
+	@+echo hide-from-output 'end $@'

Reply via email to