summaryrefslogtreecommitdiff
path: root/tests/scripts/options
diff options
context:
space:
mode:
Diffstat (limited to 'tests/scripts/options')
-rw-r--r--tests/scripts/options/warn86
-rw-r--r--tests/scripts/options/warn-undefined-variables49
2 files changed, 86 insertions, 49 deletions
diff --git a/tests/scripts/options/warn b/tests/scripts/options/warn
new file mode 100644
index 00000000..98155d46
--- /dev/null
+++ b/tests/scripts/options/warn
@@ -0,0 +1,86 @@
+# -*-perl-*-
+
+$description = "Test the --warn option.";
+
+my %warn_test = (
+ '--warn' => '', '--warn=warn' => '', '--warn=error --warn=warn' => '',
+ '--warn --warn=error' => '=error',
+ '--warn=ignore --warn=error --warn=ignore --warn=undefined-var' => '=ignore,undefined-var',
+ '--warn=undefined-var:error --warn' => '=warn,undefined-var:error'
+);
+
+# Verify the deprecated --warn-undefined-variables option
+run_make_test(q!
+$(info MF=$(MAKEFLAGS))
+all:; @#HELPER# env MAKEFLAGS
+!,
+ '--warn-undefined-variables', "MF= --warn=undefined-var\nMAKEFLAGS= --warn=undefined-var");
+
+# Verify parsing of --warn in various forms.
+
+while (my ($f, $r) = each %warn_test) {
+ run_make_test(undef, $f, "MF= --warn$r\nMAKEFLAGS= --warn$r");
+}
+
+# Verify that values set in MAKEFLAGS take effect
+
+while (my ($f, $r) = each %warn_test) {
+ run_make_test(qq!
+MAKEFLAGS += $f
+\$(info MF=\$(MAKEFLAGS))
+all:; \@#HELPER# env MAKEFLAGS
+!,
+ '', "MF= --warn$r\nMAKEFLAGS= --warn$r");
+}
+
+# Verify that make's special variables don't warn even if they're not set
+run_make_test(q!
+vars := $(.VARIABLES) $(MAKECMDGOALS) $(MAKE_RESTARTS) $(CURDIR)
+vars += $(GNUMAKEFLAGS) $(MAKEFLAGS) $(MFLAGS) $(MAKE_COMMAND) $(MAKE)
+vars += $(MAKEFILE_LIST) $(MAKEOVERRIDES) $(-*-command-variables-*-)
+vars += $(.RECIPEPREFIX) $(.LOADED) $(.FEATURES)
+vars += $(SHELL) $(.SHELLFLAGS) $(MAKE_TERMOUT) $(MAKE_TERMERR)
+vars += $(.DEFAULT) $(.DEFAULT_GOAL) $(-*-eval-flags-*-) $(SUFFIXES)
+vars += $(VPATH) $(GPATH)
+all:;
+!,
+ '--warn=undefined-var', "#MAKE#: 'all' is up to date.");
+
+# sv 63609.
+# Test for buffer overrun in warn_undefined.
+run_make_test(q!
+all:;
+X := $(averyveryveryloooooooooooooooooooooooooooongvariablename)
+!,
+ '--warn=undefined-var',
+ "#MAKEFILE#:3: reference to undefined variable 'averyveryveryloooooooooooooooooooooooooooongvariablename'
+#MAKE#: 'all' is up to date.\n"
+);
+
+# Check undefined variable warnings
+
+# With no options or with ignore, nothing should happen
+run_make_test('
+EMPTY =
+EREF = $(EMPTY)
+UREF = $(UNDEFINED)
+
+SEREF := $(EREF)
+SUREF := $(UREF)
+
+all: ; @echo ref $(EREF) $(UREF)',
+ '', 'ref');
+
+run_make_test(undef, '--warn=undefined-var:ignore', 'ref');
+
+# Check warnings
+run_make_test(undef, '--warn=undefined-var',
+ "#MAKEFILE#:7: reference to undefined variable 'UNDEFINED'
+#MAKEFILE#:9: reference to undefined variable 'UNDEFINED'
+ref");
+
+# Check and errors
+run_make_test(undef, '--warn=undefined-var:error',
+ "#MAKEFILE#:7: *** reference to undefined variable 'UNDEFINED'. Stop.", 512);
+
+1;
diff --git a/tests/scripts/options/warn-undefined-variables b/tests/scripts/options/warn-undefined-variables
deleted file mode 100644
index d9653d2c..00000000
--- a/tests/scripts/options/warn-undefined-variables
+++ /dev/null
@@ -1,49 +0,0 @@
-# -*-perl-*-
-
-$description = "Test the --warn-undefined-variables option.";
-
-$details = "Verify that warnings are printed for referencing undefined variables.";
-
-# Verify that make's special variables don't warn even if they're not set
-run_make_test(q!
-vars := $(.VARIABLES) $(MAKECMDGOALS) $(MAKE_RESTARTS) $(CURDIR)
-vars += $(GNUMAKEFLAGS) $(MAKEFLAGS) $(MFLAGS) $(MAKE_COMMAND) $(MAKE)
-vars += $(MAKEFILE_LIST) $(MAKEOVERRIDES) $(-*-command-variables-*-)
-vars += $(.RECIPEPREFIX) $(.LOADED) $(.FEATURES)
-vars += $(SHELL) $(.SHELLFLAGS) $(MAKE_TERMOUT) $(MAKE_TERMERR)
-vars += $(.DEFAULT) $(.DEFAULT_GOAL) $(-*-eval-flags-*-) $(SUFFIXES)
-vars += $(VPATH) $(GPATH)
-all:;
-!,
- '--warn-undefined-variables', "#MAKE#: 'all' is up to date.");
-
-# Without --warn-undefined-variables, nothing should happen
-run_make_test('
-EMPTY =
-EREF = $(EMPTY)
-UREF = $(UNDEFINED)
-
-SEREF := $(EREF)
-SUREF := $(UREF)
-
-all: ; @echo ref $(EREF) $(UREF)',
- '', 'ref');
-
-# With --warn-undefined-variables, it should warn me
-run_make_test(undef, '--warn-undefined-variables',
- "#MAKEFILE#:7: warning: undefined variable 'UNDEFINED'
-#MAKEFILE#:9: warning: undefined variable 'UNDEFINED'
-ref");
-
-# sv 63609.
-# Test for buffer overrun in warn_undefined.
-run_make_test(q!
-all:;
-X := $(averyveryverylongvariablename)
-!,
- '--warn-undefined-variables',
- "#MAKEFILE#:3: warning: undefined variable 'averyveryverylongvariablename'
-#MAKE#: 'all' is up to date.\n"
-);
-
-1;