Module Name:    src
Committed By:   rillig
Date:           Sat Oct  3 08:16:53 UTC 2020

Modified Files:
        src/usr.bin/make/unit-tests: Makefile opt-debug-jobs.exp
            opt-debug-jobs.mk

Log Message:
make(1): add test for the -dj debug option


To generate a diff of this commit:
cvs rdiff -u -r1.156 -r1.157 src/usr.bin/make/unit-tests/Makefile
cvs rdiff -u -r1.1 -r1.2 src/usr.bin/make/unit-tests/opt-debug-jobs.exp \
    src/usr.bin/make/unit-tests/opt-debug-jobs.mk

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

Modified files:

Index: src/usr.bin/make/unit-tests/Makefile
diff -u src/usr.bin/make/unit-tests/Makefile:1.156 src/usr.bin/make/unit-tests/Makefile:1.157
--- src/usr.bin/make/unit-tests/Makefile:1.156	Fri Oct  2 20:34:59 2020
+++ src/usr.bin/make/unit-tests/Makefile	Sat Oct  3 08:16:53 2020
@@ -1,4 +1,4 @@
-# $NetBSD: Makefile,v 1.156 2020/10/02 20:34:59 rillig Exp $
+# $NetBSD: Makefile,v 1.157 2020/10/03 08:16:53 rillig Exp $
 #
 # Unit tests for make(1)
 #
@@ -403,6 +403,10 @@ SED_CMDS.opt-debug-graph1= \
 SED_CMDS.opt-debug-graph1+= \
 			-e '/Global Variables:/,/Suffixes:/d'
 SED_CMDS.sh-dots=	-e 's,^.*\.\.\.:.*,<normalized: ...: not found>,'
+SED_CMDS.opt-debug-jobs=	-e 's,([0-9][0-9]*),(<pid>),'
+SED_CMDS.opt-debug-jobs+=	-e 's,pid [0-9][0-9]*,pid <pid>,'
+SED_CMDS.opt-debug-jobs+=	-e 's,Process [0-9][0-9]*,Process <pid>,'
+SED_CMDS.opt-debug-jobs+=	-e 's,JobFinish: [0-9][0-9]*,JobFinish: <pid>,'
 SED_CMDS.varmod-subst-regex+= \
 			-e 's,\(Regex compilation error:\).*,\1 (details omitted),'
 SED_CMDS.varmod-edge+=	-e 's, line [0-9]*:, line omitted:,'

Index: src/usr.bin/make/unit-tests/opt-debug-jobs.exp
diff -u src/usr.bin/make/unit-tests/opt-debug-jobs.exp:1.1 src/usr.bin/make/unit-tests/opt-debug-jobs.exp:1.2
--- src/usr.bin/make/unit-tests/opt-debug-jobs.exp:1.1	Sat Sep  5 06:20:51 2020
+++ src/usr.bin/make/unit-tests/opt-debug-jobs.exp	Sat Oct  3 08:16:53 2020
@@ -1 +1,25 @@
+job_pipe -1 -1, maxjobs 1, tokens 1, compat 0
+Job_TokenWithdraw(<pid>): aborting 0, running 0
+(<pid>) withdrew token
+echo ": expanded expression"
+{ : expanded expression 
+} || exit $?
+echo ":  variable"
+{ :  variable 
+} || exit $?
+echo ": 'single' and \"double\" quotes"
+{ : 'single' and "double" quotes 
+} || exit $?
+Running all locally
+	Command: sh -q 
+JobExec(all): pid <pid> added to jobs table
+job table @ job started
+job 0, status 3, flags 0, pid <pid>
+: expanded expression
+:  variable
+: 'single' and "double" quotes
+Process <pid> exited/stopped status 0.
+JobFinish: <pid> [all], status 0
+Job_TokenWithdraw(<pid>): aborting 0, running 0
+(<pid>) withdrew token
 exit status 0
Index: src/usr.bin/make/unit-tests/opt-debug-jobs.mk
diff -u src/usr.bin/make/unit-tests/opt-debug-jobs.mk:1.1 src/usr.bin/make/unit-tests/opt-debug-jobs.mk:1.2
--- src/usr.bin/make/unit-tests/opt-debug-jobs.mk:1.1	Sat Sep  5 06:20:51 2020
+++ src/usr.bin/make/unit-tests/opt-debug-jobs.mk	Sat Oct  3 08:16:53 2020
@@ -1,9 +1,26 @@
-# $NetBSD: opt-debug-jobs.mk,v 1.1 2020/09/05 06:20:51 rillig Exp $
+# $NetBSD: opt-debug-jobs.mk,v 1.2 2020/10/03 08:16:53 rillig Exp $
 #
-# Tests for the -da command line option, which adds debug logging about
+# Tests for the -dj command line option, which adds debug logging about
 # running jobs in multiple shells.
 
-# TODO: Implementation
+.MAKEFLAGS: -dj
+
+# Run in parallel mode since the debug logging is more interesting there
+# than in compat mode.
+.MAKEFLAGS: -j1
 
 all:
-	@:;
+	# Only the actual command is logged.
+	# To see the evaluation of the variable expressions, use -dv.
+	: ${:Uexpanded} expression
+
+	# Undefined variables expand to empty strings.
+	# Multiple spaces are preserved in the command, as they might be
+	# significant.
+	: ${UNDEF} variable
+
+	# In the debug output, single quotes are not escaped, even though
+	# the whole command is enclosed in single quotes as well.
+	# This allows to copy and paste the whole command, without having
+	# to unescape anything.
+	: 'single' and "double" quotes

Reply via email to