on the 29/02/04 14:33, Paul D. Smith wrote:
%% "J. Grant" <[EMAIL PROTECTED]> writes:
jg> Are the make/tests working ok at present? I am testing with the jg> latest CVS code. Using MSYS/rxvt as my shell environment, perl jg> v5.6.1 compiled for msys.
They work for me on all the UNIX boxes I've tried.
Hmm, do you know which win32 configurations are known to work? MSYS/rxvt should be fine, I have perl, diff installed. This bug is also present when using cmd.exe so I don't think it can be my shell.
jg> Might be an idea to change test_driver.pl's use of diff to be jg> independent of white space? "-w" could be added if you think this jg> is suitable? (I changed this locally to try and stop the test jg> reporting different output).
First, there is no portable option to diff that ignores whitespace. Many versions of UNIX diff don't have such options, and GNU diff isn't a requirement for being able to build and test GNU make. Second, -w isn't what you want anyway because that ignores all white space, so that "foobar" is the same as "foo bar". I don't think that's correct. -b is better: it means that "foo bar" is the same as "foo bar". Third, it's quite possible that some of the tests rely on being able to distinguish whitespace.
And finally, there's no _reason_ why you should have to do this. There should be no whitespace differences in the output.
That was my origional thought as well, the file does include this though. e.g. "comments.log" is one 1 byte longer, with 0D0A line ending.
make/tests/work/features/comments.diff has it has 0A line ending for the first comparison, and 0D0A for the second.
jg> I compiled the gnumake.exe using build_w32.bat with the latest CVS jg> source code. I then copied it to somewhere in my path as make.exe.
jg> Also "c:\bin\make.exe" is deleted by this script for some reason jg> unknown to me. Perhaps the "purify" code in the report is jg> removing make.exe ?
Why is the Purify code being invoked? It shouldn't be, unless you asked for it--which you shouldn't do if you don't have Purify.
I don't know if the Purify code is the cause. I stepped throughthe script in "perl -d run_make_tests.pl"
I am not very familiar with the perl langage. I added some debug print code, and fixed a bug (the scripts continued after it was detected that there was no make binary on the system previously). I attatch the log (script_error3.txt) of the commands leading upto the removal of "c:\bin\make.exe". Seems like this line is causing the error possibly:
system "add_profile $make_path";
I cannot spot why the code is removing "c:\bin\make.exe" though. Any ideas?
jg> GNU Make %VERSION%
Note that you haven't set the version.
Yes, this was my "unmodifed latest CVS", I want to ensure it all works before I test my patch. This %VERSION% should not make any difference to the result though should it? I changed it back to "JG_CVS" just in case.
I also attatch a log illustrating another bug with a path that ends up converted from "c:\bin\make.exe" to `c:binmake.exe.features_comments*' a little while before the exe is deleted.
Kind regards
JG
1112: local($no_increment) = @_;
DB<1>
main::get_tmpfile(test_driver.pl:1114):
1114: $num_of_tmpfiles += !$no_increment;
DB<1>
main::get_tmpfile(test_driver.pl:1116):
1116: return ($tmp_filename . &num_suffix ($num_of_tmpfiles));
DB<1>
main::num_suffix(test_driver.pl:1061):
1061: local($num) = @_;
DB<1>
main::num_suffix(test_driver.pl:1063):
1063: if (--$num > 0) {
DB<1>
main::num_suffix(test_driver.pl:1067):
1067: return "";
DB<1>
main::setup_for_test(run_make_tests.pl:276):
276: if (-f $makefile) {
DB<1>
main::setup_for_test(run_make_tests.pl:281):
281: if ($pure_log) {
DB<1>
main::setup_for_test(run_make_tests.pl:282):
282: ($pure_testname = $testname) =~ tr,/,_,;
DB<1>
main::setup_for_test(run_make_tests.pl:283):
283: $pure_testname = "$pure_log.$pure_testname";
DB<1>
main::setup_for_test(run_make_tests.pl:284):
284: print("Purify testfiles are: rm -f $pure_testname*\n") if $debug;
DB<1>
Purify testfiles are: rm -f c:\bin\make.exe.features_comments*
main::setup_for_test(run_make_tests.pl:285):
285: system("rm $pure_testname*");
DB<1>
rm: cannot remove `c:binmake.exe.features_comments*': No such file or directory
main::run_each_test(test_driver.pl:390):
390: $output = "........................................................ ";
DB<1> l
390==> $output = "........................................................ ";
391
392: substr($output,0,length($testname)) = "$testname ";
393
394: print $output;
395
396 # Run the actual test!
397 #
398: $code = do $perl_testname;
399: if (!defined($code))
DB<1>
main::run_make_with_options(run_make_tests.pl:61):
61: $command .= " -f $filename";
DB<1>
main::run_make_with_options(run_make_tests.pl:64):
64: if ($options)
65: {
DB<1>
main::run_make_with_options(run_make_tests.pl:69):
69: if ($valgrind) {
DB<1>
main::run_make_with_options(run_make_tests.pl:73):
73: print("\nrunning command: '$command', logfile:
'$logname'\n")if($debug);
DB<1>
running command: 'c:/bin/make.exe -f work/features/comments.mk', logfile:
'work/features/comments.log'
main::run_make_with_options(run_make_tests.pl:74):
74: $code = &run_command_with_output($logname,$command);
DB<1>
main::run_command_with_output(test_driver.pl:726):
726: local ($filename) = shift;
DB<1>
main::run_command_with_output(test_driver.pl:727):
727: local ($code);
DB<1>
main::run_command_with_output(test_driver.pl:729):
729: &attach_default_output ($filename);
DB<1>
main::attach_default_output(test_driver.pl:645):
645: local ($filename) = @_;
DB<1>
main::attach_default_output(test_driver.pl:646):
646: local ($code);
DB<1>
main::attach_default_output(test_driver.pl:648):
648: if ($vos)
649: {
DB<1>
main::attach_default_output(test_driver.pl:655):
655: open ("SAVEDOS" . $default_output_stack_level . "out", ">&STDOUT")
656: || &error ("ado: $! duping STDOUT\n", 1);
DB<1>
main::attach_default_output(test_driver.pl:657):
657: open ("SAVEDOS" . $default_output_stack_level . "err", ">&STDERR")
658: || &error ("ado: $! duping STDERR\n", 1);
DB<1>
main::attach_default_output(test_driver.pl:660):
660: open (STDOUT, "> " . $filename)
661: || &error ("ado: $filename: $!\n", 1);
DB<1>
main::attach_default_output(test_driver.pl:662):
662: open (STDERR, ">&STDOUT")
663: || &error ("ado: $filename: $!\n", 1);
DB<1>
main::attach_default_output(test_driver.pl:665):
665: $default_output_stack_level++;
DB<1>
main::run_command_with_output(test_driver.pl:730):
730: $code = system @_;
DB<1>
main::run_command_with_output(test_driver.pl:731):
731: &detach_default_output;
DB<1>
main::detach_default_output(test_driver.pl:673):
673: local ($code);
DB<1>
main::detach_default_output(test_driver.pl:675):
675: if ($vos)
676: {
DB<1>
main::detach_default_output(test_driver.pl:682):
682: if (--$default_output_stack_level < 0)
683: {
DB<1>
main::detach_default_output(test_driver.pl:687):
687: close (STDOUT);
DB<1>
main::detach_default_output(test_driver.pl:688):
688: close (STDERR);
DB<1>
main::detach_default_output(test_driver.pl:690):
690: open (STDOUT, ">&SAVEDOS" . $default_output_stack_level . "out")
691: || &error ("ddo: $! duping STDOUT\n", 1);
DB<1>
main::detach_default_output(test_driver.pl:692):
692: open (STDERR, ">&SAVEDOS" . $default_output_stack_level . "err")
693: || &error ("ddo: $! duping STDERR\n", 1);
DB<1>
main::detach_default_output(test_driver.pl:695):
695: close ("SAVEDOS" . $default_output_stack_level . "out")
696: || &error ("ddo: $! closing SCSDOSout\n", 1);
DB<1>
main::detach_default_output(test_driver.pl:697):
697: close ("SAVEDOS" . $default_output_stack_level . "err")
698: || &error ("ddo: $! closing SAVEDOSerr\n", 1);
DB<1>
main::run_command_with_output(test_driver.pl:732):
732: if ($debug)
733: {
DB<1>
main::run_command_with_output(test_driver.pl:734):
734: print "run_command_with_output: \"@_\" returned $code.\n";
DB<1>
run_command_with_output: "c:/bin/make.exe -f work/features/comments.mk" returned 0.
main::run_command_with_output(test_driver.pl:737):
737: return $code;
DB<1>
main::run_make_with_options(run_make_tests.pl:79):
79: if ($pure_log && -f $pure_log) {
DB<1>
main::run_make_with_options(run_make_tests.pl:80):
80: if ($code & 0x7000) {
DB<1>
main::run_make_with_options(run_make_tests.pl:91):
91: unlink($pure_log);
DB<1>
main::run_make_with_options(run_make_tests.pl:95):
95: if ($code != $expected_code)
96: {
DB<1>
main::run_make_with_options(run_make_tests.pl:107):
107: if ($profile & $vos)
108: {
DB<1>
main::run_make_with_options(run_make_tests.pl:112):
112: 1;
DB<1> -
102: exit($code);
103 }
104: return 0;
105 }
106
107: if ($profile & $vos)
108 {
109: print("make_path: '$make_path'") if($debug);
110: system "add_profile $make_path";
111 }
DB<1> .
main::run_make_with_options(run_make_tests.pl:112):
112: 1;
DB<1> l
112==> 1;
113 }
114
115 sub print_usage
116 {
117: &print_standard_usage ("run_make_tests", "[-make_path make_pathname]");
118 }
119
120 sub print_help
121 {
DB<1>
_______________________________________________ Bug-make mailing list [EMAIL PROTECTED] http://mail.gnu.org/mailman/listinfo/bug-make
