mirror of
https://github.com/mirror/make.git
synced 2026-08-31 03:38:03 +08:00
Fix for complex situations where directories are declared as prerequisites.
Info on this fix from barkalow@reputation.com: thanks! Some updates/cleanups of some of the tests; added a forgotten -t test, etc.
This commit is contained in:
@@ -49,14 +49,8 @@ EOF
|
||||
|
||||
close(MAKEFILE);
|
||||
|
||||
&touch('b');
|
||||
# Sometimes, on my Solaris 2.5.1 box with a NetApp filesystem NFS-mounted,
|
||||
# just touching b first then a isn't good enough: the nsec field in the
|
||||
# stat result shows b is _newer_ than a once every 5 or 6 tries!!! I've
|
||||
# no idea what this is about, but that's why there's a sleep(1) here...
|
||||
sleep(1);
|
||||
&touch('a');
|
||||
sleep(1);
|
||||
&utouch(-20, 'b');
|
||||
&utouch(-10, 'a');
|
||||
&touch('c');
|
||||
|
||||
# TEST 2
|
||||
|
||||
38
tests/scripts/options/dash-t
Normal file
38
tests/scripts/options/dash-t
Normal file
@@ -0,0 +1,38 @@
|
||||
# -*-perl-*-
|
||||
|
||||
$description = "Test the -t option.\n";
|
||||
|
||||
$details = "Look out for regressions of prior bugs related to -t.\n";
|
||||
# That means, nobody has even tried to make the tests below comprehensive
|
||||
|
||||
# TEST 0
|
||||
# bug reported by Henning Makholm <henning@makholm.net> on 2001-11-03:
|
||||
# make 3.79.1 touches only interm-[ab] but reports final-[a] as
|
||||
# 'up to date' without touching them.
|
||||
# The 'obvious' fix didn't work for double-colon rules, so pay special
|
||||
# attention to them.
|
||||
|
||||
open(MAKEFILE, "> $makefile");
|
||||
print MAKEFILE <<'EOMAKE';
|
||||
final-a: interm-a ; echo >> $@
|
||||
final-b: interm-b ; echo >> $@
|
||||
interm-a:: orig1-a ; echo >> $@
|
||||
interm-a:: orig2-a ; echo >> $@
|
||||
interm-b:: orig1-b ; echo >> $@
|
||||
interm-b:: orig2-b ; echo >> $@
|
||||
EOMAKE
|
||||
close(MAKEFILE);
|
||||
|
||||
&utouch(-30, 'orig1-a','orig2-b');
|
||||
&utouch(-20, 'interm-a','interm-b');
|
||||
&utouch(-10, 'final-a','final-b');
|
||||
&touch('orig2-a','orig1-b');
|
||||
|
||||
&run_make_with_options($makefile, "-t final-a final-b", &get_logfile);
|
||||
$answer = "touch interm-a\ntouch final-a\ntouch interm-b\ntouch final-b\n";
|
||||
&compare_output($answer, &get_logfile(1));
|
||||
|
||||
unlink('orig1-a', 'orig2-a', 'interm-a', 'final-a');
|
||||
unlink('orig1-b', 'orig2-b', 'interm-b', 'final-b');
|
||||
|
||||
1;
|
||||
Reference in New Issue
Block a user