X-Authentication-Warning: sirppi.helsinki.fi: peuha owned process doing -bs Date: Thu, 12 Aug 1999 13:55:16 +0300 (EET DST) From: Esa A E Peuha Sender: peuha AT cc DOT helsinki DOT fi To: djgpp-workers AT delorie DOT com Subject: Re: Make 3.78 is in pretest In-Reply-To: Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Reply-To: djgpp-workers AT delorie DOT com X-Mailing-List: djgpp-workers AT delorie DOT com X-Unsubscribes-To: listserv AT delorie DOT com Precedence: bulk On Sun, 25 Jul 1999, Eli Zaretskii wrote: > Btw, the above place has a test suite for Make, but I never had time > to see if it works with the DJGPP version (it probably doesn't) and > get it to work. If somebody wants to work on that, it would make > testing new releases more reliable. The test suite needs Perl. I have managed to make the test driver and most of the tests to work with DJGPP, but I have only run it on plain DOS with Make 3.77, in which case the following 24 tests fail: features/default_names features/errors features/escape features/include features/parallelism features/quoting features/recursion features/reinvoke features/targetvars features/vpathplus functions/call functions/error functions/warning functions/wildcard misc/general3 options/dash-e options/dash-I options/dash-l options/dash-n targets/DEFAULT targets/INTERMEDIATE variables/flavors variables/MAKE variables/MAKELEVEL Some of these are expected to fail (like the parallel processing test), some probably need Make 3.78, and some seem like genuine bugs in the ported Make 3.77 (one subtest of features/escape actually crashes Make). The following diffs are relative to the package available at this URL: ftp://alpha.gnu.org/gnu/make/make-test-3.77.90.tar.gz diff -C 2 -r make-test-3.77-90/run_make maketest/run_make *** make-test-3.77-90/run_make Tue Jul 20 16:03:08 1999 --- maketest/run_make Thu Aug 12 07:59:36 1999 *************** *** 141,151 **** $testee_version = $string; ! if ($make_path =~ /$pathsep([^\n$pathsep]*)$/) { ! $make_name = $1; } else { ! $make_name = $make_path; } --- 141,165 ---- $testee_version = $string; ! ! &attach_default_output ("makename.tmp"); ! $code = system "$make_path -f /dev/null"; ! &detach_default_output; ! $string = &read_file_into_string ("makename.tmp"); ! unlink ("makename.tmp"); ! $index = index ($string, ": *** No targets. Stop."); ! if ($index > 0) { ! $make_name = substr ($string, 0, $index); } else { ! if ($make_path =~ /$pathsep([^\n$pathsep]*)$/) ! { ! $make_name = $1; ! } ! else ! { ! $make_name = $make_path; ! } } diff -C 2 -r make-test-3.77-90/scripts/features/echoing maketest/scripts/features/echoing *** make-test-3.77-90/scripts/features/echoing Sun Apr 30 06:56:50 1995 --- maketest/scripts/features/echoing Wed Aug 11 20:05:24 1999 *************** *** 47,51 **** &run_make_with_options($makefile,"",&get_logfile,0); $answer = "echo This makefile did not clean the dir ... good\n" ! ."This makefile did not clean the dir ... good\n"; &compare_output($answer,&get_logfile(1)); --- 47,51 ---- &run_make_with_options($makefile,"",&get_logfile,0); $answer = "echo This makefile did not clean the dir ... good\n" ! .`echo This makefile did not clean the dir ... good`; &compare_output($answer,&get_logfile(1)); *************** *** 75,79 **** &run_make_with_options($makefile,"-s",&get_logfile,0); ! $answer = "This makefile did not clean the dir ... good\n"; &compare_output($answer,&get_logfile(1)); --- 75,79 ---- &run_make_with_options($makefile,"-s",&get_logfile,0); ! $answer = `echo This makefile did not clean the dir ... good`; &compare_output($answer,&get_logfile(1)); diff -C 2 -r make-test-3.77-90/scripts/targets/clean maketest/scripts/targets/clean *** make-test-3.77-90/scripts/targets/clean Sun Apr 30 06:49:44 1995 --- maketest/scripts/targets/clean Wed Aug 11 20:04:50 1999 *************** *** 25,29 **** # Create the answer to what should be produced by this Makefile ! $answer = "This makefile did not clean the dir ... good\n"; &compare_output($answer,&get_logfile(1)) || &error ("abort --- 25,29 ---- # Create the answer to what should be produced by this Makefile ! $answer = `echo This makefile did not clean the dir ... good`; &compare_output($answer,&get_logfile(1)) || &error ("abort diff -C 2 -r make-test-3.77-90/test_dri.pl maketest/test_dri.pl *** make-test-3.77-90/test_dri.pl Mon Jul 19 20:39:10 1999 --- maketest/test_dri.pl Thu Aug 12 08:13:50 1999 *************** *** 33,37 **** $workdir = "work"; # The directory where the test will start running $scriptdir = "scripts"; # The directory where we find the test scripts - $tmpfilesuffix = "tmp"; # the suffix used on tmpfiles $default_output_stack_level = 0; # used by attach_default_output, etc. $default_input_stack_level = 0; # used by attach_default_input, etc. --- 33,36 ---- *************** *** 39,45 **** $cwdslash = ""; # $cwd . $pathsep, but "" rather than "./" ! &get_osname; # sets $osname, $vos, and $pathsep print "OS name = `$osname'\n" if $debug; &set_defaults; # suite-defined --- 38,53 ---- $cwdslash = ""; # $cwd . $pathsep, but "" rather than "./" ! &get_osname; # sets $osname, $vos, $pathsep, and $fancy_file_names print "OS name = `$osname'\n" if $debug; + if ($fancy_file_names) + { + $tmpfilesuffix = "tmp"; # the suffix used on tmpfiles + } + else + { + $tmpfilesuffix = "t"; + } + &set_defaults; # suite-defined *************** *** 147,162 **** $osname = defined($^O) ? $^O : ''; ! # Thanks go to meyering AT cs DOT utexas DOT edu (Jim Meyering) for suggesting a ! # better way of doing this. (We used to test for existence of a /mnt ! # dir, but that apparently fails on an SGI Indigo (whatever that is).) ! # Because perl on VOS translates /'s to >'s, we need to test for ! # VOSness rather than testing for Unixness (ie, try > instead of /). ! ! mkdir (".ostest", 0777) || &error ("Couldn't create .ostest: $!\n", 1); ! (open (TOUCHFD, "> .ostest>ick") && close (TOUCHFD)) ! || &error ("Couldn't touch .ostest>ick: $!\n", 1); ! chdir (".ostest") || &error ("Couldn't chdir to .ostest: $!\n", 1); ! if (-f "ick") { $osname = "vos"; --- 155,178 ---- $osname = defined($^O) ? $^O : ''; ! $fancy_file_names = 1; ! (open (TOUCHFD, "> fancy.file.name") && close (TOUCHFD)) ! || ($fancy_file_names = 0); ! unlink ("fancy.file.name") || ($fancy_file_names = 0); ! ! if ($fancy_file_names) ! { ! # Thanks go to meyering AT cs DOT utexas DOT edu (Jim Meyering) for suggesting a ! # better way of doing this. (We used to test for existence of a /mnt ! # dir, but that apparently fails on an SGI Indigo (whatever that is).) ! # Because perl on VOS translates /'s to >'s, we need to test for ! # VOSness rather than testing for Unixness (ie, try > instead of /). ! ! mkdir (".ostest", 0777) || &error ("Couldn't create .ostest: $!\n", 1); ! (open (TOUCHFD, "> .ostest>ick") && close (TOUCHFD)) ! || &error ("Couldn't touch .ostest>ick: $!\n", 1); ! chdir (".ostest") || &error ("Couldn't chdir to .ostest: $!\n", 1); ! } ! if ($fancy_file_names && -f "ick") { $osname = "vos"; *************** *** 187,193 **** } ! chdir ("..") || &error ("Couldn't chdir to ..: $!\n", 1); ! unlink (".ostest>ick"); ! rmdir (".ostest") || &error ("Couldn't rmdir .ostest: $!\n", 1); } --- 203,212 ---- } ! if ($fancy_file_names) ! { ! chdir ("..") || &error ("Couldn't chdir to ..: $!\n", 1); ! unlink (".ostest>ick"); ! rmdir (".ostest") || &error ("Couldn't rmdir .ostest: $!\n", 1); ! } } *************** *** 327,333 **** $testname =~ s/(\.pl|\.perl)$//; $testpath = "$workpath$pathsep$testname"; ! $log_filename = "$testpath.log"; ! $diff_filename = "$testpath.diff"; ! $base_filename = "$testpath.base"; $tmp_filename = "$testpath.$tmpfilesuffix"; --- 346,361 ---- $testname =~ s/(\.pl|\.perl)$//; $testpath = "$workpath$pathsep$testname"; ! if ($fancy_file_names) ! { ! $log_filename = "$testpath.log"; ! $diff_filename = "$testpath.diff"; ! $base_filename = "$testpath.base"; ! } ! else ! { ! $log_filename = "$testpath.l"; ! $diff_filename = "$testpath.d"; ! $base_filename = "$testpath.b"; ! } $tmp_filename = "$testpath.$tmpfilesuffix"; *************** *** 969,973 **** if (--$num > 0) { ! return ".$num"; } --- 997,1008 ---- if (--$num > 0) { ! if ($fancy_file_names) ! { ! return ".$num"; ! } ! else ! { ! return "$num"; ! } } -- Esa Peuha student of mathematics at the University of Helsinki http://www.helsinki.fi/~peuha/