A few test bug fixes:
authorPaul Smith <psmith@gnu.org>
Tue, 10 Sep 2002 22:23:20 +0000 (22:23 +0000)
committerPaul Smith <psmith@gnu.org>
Tue, 10 Sep 2002 22:23:20 +0000 (22:23 +0000)
  * Never use "touch" in make rules; it breaks on most sub-second
    supporting systems.  Use echo "" > $@ instead.
  * Forgot to close test makefiles before using them!

All the above worked fine on Linux but failed miserably on Solaris.

tests/scripts/features/conditionals
tests/scripts/features/export
tests/scripts/options/dash-B
tests/scripts/variables/automatic

index ab3d9d5..9aad1d1 100644 (file)
@@ -51,7 +51,6 @@ close(MAKEFILE);
 
 &run_make_with_options($makefile,"",&get_logfile,0);
 
-# Create the answer to what should be produced by this Makefile
 $answer = "arg1 NOT equal arg2
 arg2 equals arg5
 arg3 NOT equal arg4
@@ -59,8 +58,6 @@ variable is undefined
 arg4 is defined
 ";
 
-# COMPARE RESULTS
-
 &compare_output($answer,&get_logfile(1));
 
 
@@ -92,6 +89,8 @@ all:; @echo DEF=$(DEF) DEF2=$(DEF2)
 
 EOF
 
+close(MAKEFILE)
+
 &run_make_with_options($makefile2,"",&get_logfile,0);
 $answer = "DEF=yes DEF2=yes\n";
 &compare_output($answer,&get_logfile(1));
index 09aeac2..3d630a4 100644 (file)
@@ -131,6 +131,8 @@ all:
 
 EOF
 
+close(MAKEFILE);
+
 &run_make_with_options($makefile2,"",&get_logfile,0);
 $answer = "foo=f-ok bar=b-ok\nfoo=f-ok bar=b-ok\n";
 &compare_output($answer,&get_logfile(1));
@@ -164,6 +166,8 @@ all:
 
 EOF
 
+close(MAKEFILE);
+
 &run_make_with_options($makefile3,"",&get_logfile,0);
 $answer = "foo=f-ok bar=b-ok\nfoo= bar=\n";
 &compare_output($answer,&get_logfile(1));
index 94932e5..32992b3 100644 (file)
@@ -18,7 +18,7 @@ all: foo
 
 foo: bar.x
        @echo cp $< $@
-       @touch $@
+       @echo "" > $@
 EOF
 
 close(MAKEFILE);
index cb17efe..42e8cba 100644 (file)
@@ -62,6 +62,8 @@ $(dir)/foo $(dir)/bar: $@.x $$@.x $$$@.x $$$$@.x $$(@D).x $$(@F).x
 $(dir)/x.z $(dir)/y.z: $(dir)/%.z : $@.% $$@.% $$$@.% $$$$@.% $$(@D).% $$(@F).%
 EOF
 
+close(MAKEFILE);
+
 &run_make_with_options($makefile2, "$dir/foo $dir/bar", &get_logfile);
 $answer = ".x\n$dir/foo.x\n\$.x\n\$@.x\n$dir.x\nfoo.x\n$dir/bar.x\nbar.x\n";
 &compare_output($answer, &get_logfile(1));