root@x104:[/data/prj/gnu/
coreutils/coreutils-8.20]cd tests
root@x104:[/data/prj/gnu/coreutils/coreutils-8.20/tests]truss -f -o /tmp/tr m>
cd .. && make check TESTS=tests/tail-2/F-vs-missing.sh SUBDIRS=.
make[1]: Entering directory `/data/prj/gnu/coreutils/coreutils-8.20'
  GEN    public-submodule-commit
make  check-recursive
make[2]: Entering directory `/data/prj/gnu/coreutils/coreutils-8.20'
Making check in .
make[3]: Entering directory `/data/prj/gnu/coreutils/coreutils-8.20'
make  check-TESTS check-local
make[4]: Entering directory `/data/prj/gnu/coreutils/coreutils-8.20'
make[5]: Entering directory `/data/prj/gnu/coreutils/coreutils-8.20'
PASS: tests/tail-2/F-vs-missing.sh
=============
1 test passed
=============
make[5]: Leaving directory `/data/prj/gnu/coreutils/coreutils-8.20'
  GEN    check-README
  GEN    check-duplicate-no-install
  GEN    sc-avoid-builtin
  GEN    sc-avoid-io
  GEN    sc-avoid-non-zero
  GEN    sc-avoid-path
  GEN    sc-avoid-timezone
  GEN    sc-avoid-zeroes
  GEN    sc-exponent-grouping
  GEN    sc-lower-case-var
  GEN    sc-use-small-caps-NUL
  GEN    check-texinfo
make[4]: Leaving directory `/data/prj/gnu/coreutils/coreutils-8.20'
make[3]: Leaving directory `/data/prj/gnu/coreutils/coreutils-8.20'
make[2]: Leaving directory `/data/prj/gnu/coreutils/coreutils-8.20'
make[1]: Leaving directory `/data/prj/gnu/coreutils/coreutils-8.20'
root@x104:[/data/prj/gnu/coreutils/coreutils-8.20/tests]

So, for directory ./tests it passes; from . it does not :)
=========
root@x104:[/data/prj/gnu/coreutils/coreutils-8.20/tests]cd ..
root@x104:[/data/prj/gnu/coreutils/coreutils-8.20]truss -f -o /tmp/tr make check TESTS=tail-2/F-vs-missing.sh
  GEN    public-submodule-commit
make  check-recursive
make[1]: Entering directory `/data/prj/gnu/coreutils/coreutils-8.20'
Making check in po
make[2]: Entering directory `/data/prj/gnu/coreutils/coreutils-8.20/po'
make[2]: Leaving directory `/data/prj/gnu/coreutils/coreutils-8.20/po'
Making check in .
make[2]: Entering directory `/data/prj/gnu/coreutils/coreutils-8.20'
make  check-TESTS check-local
make[3]: Entering directory `/data/prj/gnu/coreutils/coreutils-8.20'
make[4]: Entering directory `/data/prj/gnu/coreutils/coreutils-8.20'
cat: tail-2/F-vs-missing.log: No such file or directory
================================================
   GNU coreutils 8.20: ./tests/test-suite.log  
================================================

1 of 1 test failed. 

.. contents:: :depth: 2


======================================
1 of 1 test failed
See ./tests/test-suite.log
Please report to bug-coreutils@gnu.org
======================================
make[4]: *** [tests/test-suite.log] Error 1
make[4]: Leaving directory `/data/prj/gnu/coreutils/coreutils-8.20'
make[3]: *** [check-TESTS] Error 2
make[3]: Leaving directory `/data/prj/gnu/coreutils/coreutils-8.20'
make[2]: *** [check-am] Error 2
make[2]: Leaving directory `/data/prj/gnu/coreutils/coreutils-8.20'
make[1]: *** [check-recursive] Error 1
make[1]: Leaving directory `/data/prj/gnu/coreutils/coreutils-8.20'
make: *** [check] Error 2
root@x104:[/data/prj/gnu/coreutils/coreutils-8.20]

Suggestions?


On Thu, Nov 15, 2012 at 6:39 PM, Paul Eggert <eggert@cs.ucla.edu> wrote:
There are a lot of failures there, though none seem to
be all that serious for real-world use.  Probably the best
thing to do is to go through them one by one.  The first
failure is in tests/tail-2/F-vs-missing.sh, and the log
says:

+ rm -rf /data/prj/gnu/coreutils/coreutils-8.20/gt-F-vs-missing.sh.f7EB
rm: cannot remove '/data/prj/gnu/coreutils/coreutils-8.20/gt-F-vs-missing.sh.f7EB': File exists

This indicates that coreutils 'rm -rf' somehow missed some
files under that directory, and then tried to remove the
directory without removing the files, or perhaps the kernel
didn't remove the files, or something like that.

Can you please 'truss' the test and see what system calls
were executed near the point of failure?  One way to do that
would be something like this:

   cd tests
   truss -f -o /tmp/tr make check TESTS=tail-2/F-vs-missing.sh

and then look near the end of /tmp/tr.