mirror of
https://git.savannah.gnu.org/git/make.git
synced 2024-12-27 14:57:17 +00:00
* Fix some tests.
This commit is contained in:
parent
c800367385
commit
6ec7d1881c
3 changed files with 39 additions and 7 deletions
|
@ -116,6 +116,7 @@ check-regression:
|
||||||
if $(PERL) -v >/dev/null 2>&1; then \
|
if $(PERL) -v >/dev/null 2>&1; then \
|
||||||
case `cd $(srcdir); pwd` in `pwd`) : ;; \
|
case `cd $(srcdir); pwd` in `pwd`) : ;; \
|
||||||
*) test -d tests || mkdir tests; \
|
*) test -d tests || mkdir tests; \
|
||||||
|
rm -f srctests; \
|
||||||
if ln -s "$(srcdir)/tests" srctests; then \
|
if ln -s "$(srcdir)/tests" srctests; then \
|
||||||
for f in run_make_tests run_make_tests.pl test_driver.pl scripts; do \
|
for f in run_make_tests run_make_tests.pl test_driver.pl scripts; do \
|
||||||
rm -f tests/$$f; ln -s ../srctests/$$f tests; \
|
rm -f tests/$$f; ln -s ../srctests/$$f tests; \
|
||||||
|
|
|
@ -1,5 +1,15 @@
|
||||||
1999-09-15 Paul D. Smith <psmith@gnu.org>
|
1999-09-15 Paul D. Smith <psmith@gnu.org>
|
||||||
|
|
||||||
|
* test_driver.pl (touch): Rewrite this function. Previously it
|
||||||
|
used to use utime() to hard-set the time based on the current
|
||||||
|
local clock. This fails badly on networked filesystems where the
|
||||||
|
FS server clock is skewed from the local clock: normally modifying
|
||||||
|
a file causes it to get a mod time based on the _server's_ clock.
|
||||||
|
Hard-setting it based on the _local_ clock causes gratuitous
|
||||||
|
errors and makes the tests unreliable except on local filesystems.
|
||||||
|
The new function will simply modify the file, allowing the
|
||||||
|
filesystem to set the mod time as it sees fit.
|
||||||
|
|
||||||
* scripts/features/parallelism: The second test output could
|
* scripts/features/parallelism: The second test output could
|
||||||
change depending on how fast some scripts completed; use "sleep"
|
change depending on how fast some scripts completed; use "sleep"
|
||||||
to force the order we want.
|
to force the order we want.
|
||||||
|
|
|
@ -785,19 +785,40 @@ sub remove_directory_tree_inner
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# We used to use this behavior for this function:
|
||||||
|
#
|
||||||
|
#sub touch
|
||||||
|
#{
|
||||||
|
# local (@filenames) = @_;
|
||||||
|
# local ($now) = time;
|
||||||
|
# local ($file);
|
||||||
|
#
|
||||||
|
# foreach $file (@filenames)
|
||||||
|
# {
|
||||||
|
# utime ($now, $now, $file)
|
||||||
|
# || (open (TOUCHFD, ">> $file") && close (TOUCHFD))
|
||||||
|
# || &error ("Couldn't touch $file: $!\n", 1);
|
||||||
|
# }
|
||||||
|
# return 1;
|
||||||
|
#}
|
||||||
|
#
|
||||||
|
# But this behaves badly on networked filesystems where the time is
|
||||||
|
# skewed, because it sets the time of the file based on the _local_
|
||||||
|
# host. Normally when you modify a file, it's the _remote_ host that
|
||||||
|
# determines the modtime, based on _its_ clock. So, instead, now we open
|
||||||
|
# the file and write something into it to force the remote host to set
|
||||||
|
# the modtime correctly according to its clock.
|
||||||
|
#
|
||||||
|
|
||||||
sub touch
|
sub touch
|
||||||
{
|
{
|
||||||
local (@filenames) = @_;
|
local (@filenames) = @_;
|
||||||
local ($now) = time;
|
|
||||||
local ($file);
|
local ($file);
|
||||||
|
|
||||||
foreach $file (@filenames)
|
foreach $file (@filenames) {
|
||||||
{
|
(open(T, ">> $file") && print(T "\n") && close(T))
|
||||||
utime ($now, $now, $file)
|
|| &error("Couldn't touch $file: $!\n", 1);
|
||||||
|| (open (TOUCHFD, ">> $file") && close (TOUCHFD))
|
|
||||||
|| &error ("Couldn't touch $file: $!\n", 1);
|
|
||||||
}
|
}
|
||||||
return 1;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
# open a file, write some stuff to it, and close it.
|
# open a file, write some stuff to it, and close it.
|
||||||
|
|
Loading…
Reference in a new issue