From: Paul Smith Date: Sat, 26 Feb 2022 22:19:26 +0000 (-0500) Subject: * tests/test_driver.pl: Support STDIN redirection. X-Git-Tag: 4.3.90~98 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=2be866143394f5fa5fdeaa545003aba26dc72956;p=thirdparty%2Fmake.git * 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. --- 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