From 1bc35a7ae729989f691a988bca1ef1f1940c99a5 Mon Sep 17 00:00:00 2001
From: Paul Smith <psmith@gnu.org>
Date: Sat, 26 Feb 2022 17:19:42 -0500
Subject: [PATCH] tests: Allow run_make_test() to avoid passing -f

We already use undef makefile strings to mean "re-use the previous
makefile", so if the string is empty we'll assume it means "don't
use a makefile at all" (don't add -f).

* tests/run_make_tests.pl (run_make_test): If the makefile string
is empty, don't create a makefile or add -f.
* tests/scripts/features/include: Change empty makefile to "\n".
* tests/scripts/misc/close_stdout: Ditto.
* tests/scripts/options/dash-r: Ditto.
---
 tests/run_make_tests.pl         | 2 +-
 tests/scripts/features/include  | 2 +-
 tests/scripts/misc/close_stdout | 2 +-
 tests/scripts/options/dash-r    | 2 +-
 4 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/tests/run_make_tests.pl b/tests/run_make_tests.pl
index 7b613070..f64ff8f0 100644
--- a/tests/run_make_tests.pl
+++ b/tests/run_make_tests.pl
@@ -269,7 +269,7 @@ sub run_make_test
     defined $old_makefile
       or die "run_make_test(undef) invoked before run_make_test('...')\n";
     $makefile = $old_makefile;
-  } else {
+  } elsif ($makestring) {
     if (! defined($makefile)) {
       $makefile = &get_tmpfile();
     }
diff --git a/tests/scripts/features/include b/tests/scripts/features/include
index 00c128aa..14741609 100644
--- a/tests/scripts/features/include
+++ b/tests/scripts/features/include
@@ -216,7 +216,7 @@ rmfiles('inc1', 'inc2', 'hellod/inc1', 'hellod/inc2');
 rmdir('hellod');
 
 # No target gets correct error
-run_make_test('', '', '#MAKE#: *** No targets.  Stop.', 512);
+run_make_test("\n", '', '#MAKE#: *** No targets.  Stop.', 512);
 
 # No target in included file either, still gets correct error.
 touch('inc1.mk');
diff --git a/tests/scripts/misc/close_stdout b/tests/scripts/misc/close_stdout
index b16ea8da..c8c839e7 100644
--- a/tests/scripts/misc/close_stdout
+++ b/tests/scripts/misc/close_stdout
@@ -4,6 +4,6 @@ $description = "Make sure make exits with an error if stdout is full.";
 
 -e '/dev/full' or return -1;
 
-run_make_test('', '-v > /dev/full', '/^#MAKE#: write error/', 256);
+run_make_test("\n", '-v > /dev/full', '/^#MAKE#: write error/', 256);
 
 1;
diff --git a/tests/scripts/options/dash-r b/tests/scripts/options/dash-r
index 7ff29405..20dff099 100644
--- a/tests/scripts/options/dash-r
+++ b/tests/scripts/options/dash-r
@@ -7,7 +7,7 @@ $details = "DETAILS";
 touch('xxx.c');
 
 # Simple check
-run_make_test('', '-r COMPILE.c=echo xxx.o',
+run_make_test("\n", '-r COMPILE.c=echo xxx.o',
               "#MAKE#: *** No rule to make target 'xxx.o'.  Stop.", 512);
 
 # Make sure we can set it from within the makefile too