Mail Archives: djgpp-workers/1999/08/12/07:14:17
On Sun, 25 Jul 1999, Eli Zaretskii <eliz AT is DOT elta DOT co DOT il> 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/
- Raw text -