summaryrefslogtreecommitdiff
path: root/tests/test_driver.pl
diff options
context:
space:
mode:
authorPaul Smith <psmith@gnu.org>2022-02-26 17:19:26 -0500
committerPaul Smith <psmith@gnu.org>2022-02-26 17:19:26 -0500
commit2be866143394f5fa5fdeaa545003aba26dc72956 (patch)
treee5ca23360e68320dd2f9786854ae527e63d7de60 /tests/test_driver.pl
parent8b3e678ace1926c9c9521c5eeae823bc37952fca (diff)
downloadmake-git-2be866143394f5fa5fdeaa545003aba26dc72956.tar.gz
* tests/test_driver.pl: Support STDIN redirection.
Before running tests, duplicate STDIN then reset it after the test completes. Also when -keep is provided, preserve the base and run files.
Diffstat (limited to 'tests/test_driver.pl')
-rw-r--r--tests/test_driver.pl20
1 files changed, 14 insertions, 6 deletions
diff --git a/tests/test_driver.pl b/tests/test_driver.pl
index 5943f01d..71aefac9 100644
--- a/tests/test_driver.pl
+++ b/tests/test_driver.pl
@@ -509,12 +509,12 @@ sub print_centered
sub print_banner
{
# $testee is suite-defined
- my $info = "Running tests for $testee on $osname\n";
- my $len = &max (length($info), length($testee_version), 73) + 5;
+ my $info = "Running tests for $testee on $osname";
+ my $len = &max (length($info), length($testee_version), 77) + 2;
my $line = ("-" x $len) . "\n";
&print_centered ($len, $line);
- &print_centered ($len, $info);
+ &print_centered ($len, $info."\n");
&print_centered ($len, $testee_version);
&print_centered ($len, $line);
print "\n";
@@ -578,9 +578,15 @@ sub run_all_tests
$tests_run = 0;
$tests_passed = 0;
+ # make a copy of STDIN so we can reset it
+ open(INCOPY, "<&STDIN");
+
# Run the test!
$code = do $perl_testname;
+ # Restore STDIN
+ open(STDIN, "<&OLDIN");
+
++$categories_run;
$total_tests_run += $tests_run;
$total_tests_passed += $tests_passed;
@@ -911,6 +917,11 @@ sub compare_output
}
}
+ if ($keep || ! $answer_matched) {
+ &create_file(&get_basefile, $answer);
+ &create_file(&get_runfile, $command_string);
+ }
+
if ($answer_matched && $test_passed) {
print "ok\n" if $debug;
++$tests_passed;
@@ -920,9 +931,6 @@ sub compare_output
if (! $answer_matched) {
print "DIFFERENT OUTPUT\n" if $debug;
- &create_file(&get_basefile, $answer);
- &create_file(&get_runfile, $command_string);
-
print "\nCreating Difference File ...\n" if $debug;
# Create the difference file