Module Name:    src
Committed By:   rillig
Date:           Sat Nov 14 17:33:51 UTC 2020

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

Log Message:
make(1): add tests for edge cases in parsing the command line


To generate a diff of this commit:
cvs rdiff -u -r1.1 -r1.2 src/usr.bin/make/unit-tests/opt.exp
cvs rdiff -u -r1.2 -r1.3 src/usr.bin/make/unit-tests/opt.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/opt.exp
diff -u src/usr.bin/make/unit-tests/opt.exp:1.1 src/usr.bin/make/unit-tests/opt.exp:1.2
--- src/usr.bin/make/unit-tests/opt.exp:1.1	Sun Aug 16 12:07:51 2020
+++ src/usr.bin/make/unit-tests/opt.exp	Sat Nov 14 17:33:51 2020
@@ -1 +1,19 @@
+make -:
+usage: make [-BeikNnqrstWwX] 
+            [-C directory] [-D variable] [-d flags] [-f makefile]
+            [-I directory] [-J private] [-j max_jobs] [-m directory] [-T file]
+            [-V variable] [-v variable] [variable=value] [target ...]
+*** Error code 2 (ignored)
+
+make -- -VAR=value -f /dev/null
+make: don't know how to make -f (continuing)
+`/dev/null' is up to date.
+
+make -?
+usage: make [-BeikNnqrstWwX] 
+            [-C directory] [-D variable] [-d flags] [-f makefile]
+            [-I directory] [-J private] [-j max_jobs] [-m directory] [-T file]
+            [-V variable] [-v variable] [variable=value] [target ...]
+*** Error code 2 (ignored)
+
 exit status 0

Index: src/usr.bin/make/unit-tests/opt.mk
diff -u src/usr.bin/make/unit-tests/opt.mk:1.2 src/usr.bin/make/unit-tests/opt.mk:1.3
--- src/usr.bin/make/unit-tests/opt.mk:1.2	Sun Aug 16 14:25:16 2020
+++ src/usr.bin/make/unit-tests/opt.mk	Sat Nov 14 17:33:51 2020
@@ -1,8 +1,24 @@
-# $NetBSD: opt.mk,v 1.2 2020/08/16 14:25:16 rillig Exp $
+# $NetBSD: opt.mk,v 1.3 2020/11/14 17:33:51 rillig Exp $
 #
 # Tests for the command line options.
 
 # TODO: Implementation
 
-all:
-	@:;
+.MAKEFLAGS: -d0			# make stdout line-buffered
+
+all: .IGNORE
+	# Just to see how the custom argument parsing code reacts to a syntax
+	# error.  The colon is used in the options string, marking an option
+	# that takes arguments.  It is not an option by itself, though.
+	${MAKE} -:
+	@echo
+
+	# See whether a '--' stops handling of command line options, like in
+	# standard getopt programs.  Yes, it does, and it treats the '-f' as
+	# a target to be created.
+	${MAKE} -- -VAR=value -f /dev/null
+	@echo
+
+	# This is the normal way to print the usage of a command.
+	${MAKE} -?
+	@echo

Reply via email to