Module Name:    src
Committed By:   rillig
Date:           Sun Sep 13 09:20:23 UTC 2020

Modified Files:
        src/usr.bin/make/unit-tests: Makefile
Added Files:
        src/usr.bin/make/unit-tests: directive-dinclude.exp
            directive-dinclude.mk directive-hyphen-include.exp
            directive-hyphen-include.mk directive-include-fatal.exp
            directive-include-fatal.mk directive-include.exp
            directive-include.mk directive-sinclude.exp directive-sinclude.mk

Log Message:
make(1): add tests for the various .include directives


To generate a diff of this commit:
cvs rdiff -u -r1.139 -r1.140 src/usr.bin/make/unit-tests/Makefile
cvs rdiff -u -r0 -r1.1 src/usr.bin/make/unit-tests/directive-dinclude.exp \
    src/usr.bin/make/unit-tests/directive-dinclude.mk \
    src/usr.bin/make/unit-tests/directive-hyphen-include.exp \
    src/usr.bin/make/unit-tests/directive-hyphen-include.mk \
    src/usr.bin/make/unit-tests/directive-include-fatal.exp \
    src/usr.bin/make/unit-tests/directive-include-fatal.mk \
    src/usr.bin/make/unit-tests/directive-include.exp \
    src/usr.bin/make/unit-tests/directive-include.mk \
    src/usr.bin/make/unit-tests/directive-sinclude.exp \
    src/usr.bin/make/unit-tests/directive-sinclude.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.139 src/usr.bin/make/unit-tests/Makefile:1.140
--- src/usr.bin/make/unit-tests/Makefile:1.139	Sun Sep 13 09:17:47 2020
+++ src/usr.bin/make/unit-tests/Makefile	Sun Sep 13 09:20:23 2020
@@ -1,4 +1,4 @@
-# $NetBSD: Makefile,v 1.139 2020/09/13 09:17:47 rillig Exp $
+# $NetBSD: Makefile,v 1.140 2020/09/13 09:20:23 rillig Exp $
 #
 # Unit tests for make(1)
 #
@@ -121,6 +121,7 @@ TESTS+=		deptgt-suffixes
 TESTS+=		dir
 TESTS+=		dir-expand-path
 TESTS+=		directive
+TESTS+=		directive-dinclude
 TESTS+=		directive-elif
 TESTS+=		directive-elifdef
 TESTS+=		directive-elifmake
@@ -134,12 +135,16 @@ TESTS+=		directive-export-env
 TESTS+=		directive-export-literal
 TESTS+=		directive-for
 TESTS+=		directive-for-generating-endif
+TESTS+=		directive-hyphen-include
 TESTS+=		directive-if
 TESTS+=		directive-ifdef
 TESTS+=		directive-ifmake
 TESTS+=		directive-ifndef
 TESTS+=		directive-ifnmake
+TESTS+=		directive-include
+TESTS+=		directive-include-fatal
 TESTS+=		directive-info
+TESTS+=		directive-sinclude
 TESTS+=		directive-undef
 TESTS+=		directive-unexport
 TESTS+=		directive-unexport-env

Added files:

Index: src/usr.bin/make/unit-tests/directive-dinclude.exp
diff -u /dev/null src/usr.bin/make/unit-tests/directive-dinclude.exp:1.1
--- /dev/null	Sun Sep 13 09:20:23 2020
+++ src/usr.bin/make/unit-tests/directive-dinclude.exp	Sun Sep 13 09:20:23 2020
@@ -0,0 +1 @@
+exit status 0
Index: src/usr.bin/make/unit-tests/directive-dinclude.mk
diff -u /dev/null src/usr.bin/make/unit-tests/directive-dinclude.mk:1.1
--- /dev/null	Sun Sep 13 09:20:23 2020
+++ src/usr.bin/make/unit-tests/directive-dinclude.mk	Sun Sep 13 09:20:23 2020
@@ -0,0 +1,9 @@
+# $NetBSD: directive-dinclude.mk,v 1.1 2020/09/13 09:20:23 rillig Exp $
+#
+# Tests for the .dinclude directive, which includes another file,
+# typically named .depend.
+
+# TODO: Implementation
+
+all:
+	@:;
Index: src/usr.bin/make/unit-tests/directive-hyphen-include.exp
diff -u /dev/null src/usr.bin/make/unit-tests/directive-hyphen-include.exp:1.1
--- /dev/null	Sun Sep 13 09:20:23 2020
+++ src/usr.bin/make/unit-tests/directive-hyphen-include.exp	Sun Sep 13 09:20:23 2020
@@ -0,0 +1 @@
+exit status 0
Index: src/usr.bin/make/unit-tests/directive-hyphen-include.mk
diff -u /dev/null src/usr.bin/make/unit-tests/directive-hyphen-include.mk:1.1
--- /dev/null	Sun Sep 13 09:20:23 2020
+++ src/usr.bin/make/unit-tests/directive-hyphen-include.mk	Sun Sep 13 09:20:23 2020
@@ -0,0 +1,9 @@
+# $NetBSD: directive-hyphen-include.mk,v 1.1 2020/09/13 09:20:23 rillig Exp $
+#
+# Tests for the .-include directive, which includes another file,
+# silently skipping it if it cannot be opened.
+
+# TODO: Implementation
+
+all:
+	@:;
Index: src/usr.bin/make/unit-tests/directive-include-fatal.exp
diff -u /dev/null src/usr.bin/make/unit-tests/directive-include-fatal.exp:1.1
--- /dev/null	Sun Sep 13 09:20:23 2020
+++ src/usr.bin/make/unit-tests/directive-include-fatal.exp	Sun Sep 13 09:20:23 2020
@@ -0,0 +1,4 @@
+make: "directive-include-fatal.mk" line 10: Malformed conditional (${UNDEF})
+make: Fatal errors encountered -- cannot continue
+make: stopped in unit-tests
+exit status 1
Index: src/usr.bin/make/unit-tests/directive-include-fatal.mk
diff -u /dev/null src/usr.bin/make/unit-tests/directive-include-fatal.mk:1.1
--- /dev/null	Sun Sep 13 09:20:23 2020
+++ src/usr.bin/make/unit-tests/directive-include-fatal.mk	Sun Sep 13 09:20:23 2020
@@ -0,0 +1,21 @@
+# $NetBSD: directive-include-fatal.mk,v 1.1 2020/09/13 09:20:23 rillig Exp $
+#
+# Test for the .include directive combined with fatal errors.
+#
+# At 2020-09-13, the code in Parse_File that sets "fatals = 0" looked
+# suspicious, as if it were possible to suppress fatal errors by including
+# another file.  It was a false alarm though, since Parse_File only handles
+# the top-level makefiles from the command line.  Any included files are
+# handled by Parse_include_file instead, and that function does not reset
+# the "fatals" counter.
+
+# Using an undefined variable in a condition generates a fatal error.
+.if ${UNDEF}
+.endif
+
+# Including another file does not reset the global variable "fatals".
+# The exit status will be 1.
+.include "/dev/null"
+
+all:
+	@:;
Index: src/usr.bin/make/unit-tests/directive-include.exp
diff -u /dev/null src/usr.bin/make/unit-tests/directive-include.exp:1.1
--- /dev/null	Sun Sep 13 09:20:23 2020
+++ src/usr.bin/make/unit-tests/directive-include.exp	Sun Sep 13 09:20:23 2020
@@ -0,0 +1 @@
+exit status 0
Index: src/usr.bin/make/unit-tests/directive-include.mk
diff -u /dev/null src/usr.bin/make/unit-tests/directive-include.mk:1.1
--- /dev/null	Sun Sep 13 09:20:23 2020
+++ src/usr.bin/make/unit-tests/directive-include.mk	Sun Sep 13 09:20:23 2020
@@ -0,0 +1,8 @@
+# $NetBSD: directive-include.mk,v 1.1 2020/09/13 09:20:23 rillig Exp $
+#
+# Tests for the .include directive, which includes another file.
+
+# TODO: Implementation
+
+all:
+	@:;
Index: src/usr.bin/make/unit-tests/directive-sinclude.exp
diff -u /dev/null src/usr.bin/make/unit-tests/directive-sinclude.exp:1.1
--- /dev/null	Sun Sep 13 09:20:23 2020
+++ src/usr.bin/make/unit-tests/directive-sinclude.exp	Sun Sep 13 09:20:23 2020
@@ -0,0 +1 @@
+exit status 0
Index: src/usr.bin/make/unit-tests/directive-sinclude.mk
diff -u /dev/null src/usr.bin/make/unit-tests/directive-sinclude.mk:1.1
--- /dev/null	Sun Sep 13 09:20:23 2020
+++ src/usr.bin/make/unit-tests/directive-sinclude.mk	Sun Sep 13 09:20:23 2020
@@ -0,0 +1,9 @@
+# $NetBSD: directive-sinclude.mk,v 1.1 2020/09/13 09:20:23 rillig Exp $
+#
+# Tests for the .sinclude directive, which includes another file,
+# silently skipping it if it cannot be opened.
+
+# TODO: Implementation
+
+all:
+	@:;

Reply via email to