Module Name:    src
Committed By:   rillig
Date:           Tue Sep 29 18:16:24 UTC 2020

Modified Files:
        src/usr.bin/make/unit-tests: Makefile job-output-long-lines.exp
            job-output-long-lines.mk

Log Message:
make(1): fix test job-output-long-lines

The test failed on Linux since the test relied on the two child
processes interleaving each other.  This is not guaranteed to happen
though.


To generate a diff of this commit:
cvs rdiff -u -r1.154 -r1.155 src/usr.bin/make/unit-tests/Makefile
cvs rdiff -u -r1.1 -r1.2 \
    src/usr.bin/make/unit-tests/job-output-long-lines.exp \
    src/usr.bin/make/unit-tests/job-output-long-lines.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.154 src/usr.bin/make/unit-tests/Makefile:1.155
--- src/usr.bin/make/unit-tests/Makefile:1.154	Sun Sep 27 20:11:34 2020
+++ src/usr.bin/make/unit-tests/Makefile	Tue Sep 29 18:16:24 2020
@@ -1,4 +1,4 @@
-# $NetBSD: Makefile,v 1.154 2020/09/27 20:11:34 rillig Exp $
+# $NetBSD: Makefile,v 1.155 2020/09/29 18:16:24 rillig Exp $
 #
 # Unit tests for make(1)
 #
@@ -385,6 +385,17 @@ FLAGS.varname-dot-shell= -dpv
 FLAGS.varname-empty=	-dv '$${:U}=cmdline-u' '=cmline-plain'
 
 # Some tests need extra postprocessing.
+SED_CMDS.job-output-long-lines= \
+	${:D Job separators on their own line are ok. } \
+	-e '/^--- job-[ab] ---$$/d' \
+	${:D Plain output lines are ok as well. } \
+	${:D They may come in multiples of 1024 or as 10000. } \
+	-e '/^aa*$$/d' \
+	-e '/^bb*$$/d' \
+	${:D The following lines should rather not occur since the job } \
+	${:D marker should always be at the beginning of the line. } \
+	-e '/^aa*--- job-b ---$$/d' \
+	-e '/^bb*--- job-a ---$$/d'
 SED_CMDS.opt-debug-graph1= \
 			-e 's,${.CURDIR},CURDIR,'
 SED_CMDS.opt-debug-graph1+= \
@@ -404,8 +415,6 @@ SED_CMDS.varname-dot-shell+=	-e 's,\[/[^
 # Some tests need an additional round of postprocessing.
 POSTPROC.deptgt-suffixes= \
 			${TOOL_SED} -n -e '/^\#\*\*\* Suffixes/,/^\#\*/p'
-POSTPROC.job-output-long-lines= \
-			awk '/^[ab]+--- job-[ab] ---/ { print "bad"; exit }'
 POSTPROC.vardebug=	${TOOL_SED} -n -e '/:RELEVANT = yes/,/:RELEVANT = no/p'
 POSTPROC.varmod-match-escape= ${TOOL_SED} -n -e '/^Pattern/p'
 POSTPROC.varname=	${TOOL_SED} -n -e '/^MAGIC/p' -e '/^ORDER_/p'

Index: src/usr.bin/make/unit-tests/job-output-long-lines.exp
diff -u src/usr.bin/make/unit-tests/job-output-long-lines.exp:1.1 src/usr.bin/make/unit-tests/job-output-long-lines.exp:1.2
--- src/usr.bin/make/unit-tests/job-output-long-lines.exp:1.1	Sun Sep 27 20:11:34 2020
+++ src/usr.bin/make/unit-tests/job-output-long-lines.exp	Tue Sep 29 18:16:24 2020
@@ -1,2 +1 @@
-bad
 exit status 0
Index: src/usr.bin/make/unit-tests/job-output-long-lines.mk
diff -u src/usr.bin/make/unit-tests/job-output-long-lines.mk:1.1 src/usr.bin/make/unit-tests/job-output-long-lines.mk:1.2
--- src/usr.bin/make/unit-tests/job-output-long-lines.mk:1.1	Sun Sep 27 20:11:34 2020
+++ src/usr.bin/make/unit-tests/job-output-long-lines.mk	Tue Sep 29 18:16:24 2020
@@ -1,4 +1,4 @@
-# $NetBSD: job-output-long-lines.mk,v 1.1 2020/09/27 20:11:34 rillig Exp $
+# $NetBSD: job-output-long-lines.mk,v 1.2 2020/09/29 18:16:24 rillig Exp $
 #
 # The jobs may produce long lines of output.  A practical case are the echoed
 # command lines from compiler invocations, with their many -D options.
@@ -13,10 +13,6 @@
 # markers "--- job-a ---" and "--- job-b ---" are not always written at the
 # beginning of a line, even though this is expected by anyone reading the log
 # files.
-#
-# See Makefile, POSTPROC.job-output-long-lines for the output postprocessing.
-#
-# Tags: probabilistic
 
 .MAKEFLAGS: -j2
 

Reply via email to