Subject: Re: bug#20597: GNU tar fails test suite

From: [email-masked] (Ludovic Courtès)
Date: Tue, 19 May 2015 17:42:45 +0200

Andrew Patterson <[email-masked]> skribis:

> When trying to build tar using the installation medium, the build fails
> when running the test suite.

I suppose this is Guix 0.8.2 on top of another distribution, right?  Did
you install from source or from the binary tarball?  Did you enable
substitutes (info "(guix) Substitutes")?

I just rebuilt it on my laptop (on GuixSD) and
/gnu/store/hs7ldmg9ix8irdw5gj4vr55ml8m08723-tar-1.28 (x86_64-linux)
builds fine; same on Hydra.

> ## ---------------------- ##
> ## Detailed failed tests. ##
> ## ---------------------- ##
>
> #                             -*- compilation -*-
> 161. remfiles08a.at:28: testing remove-files deleting two subdirs in -c/non-incr. mode ...
> ./remfiles08a.at:31:
> mkdir gnu
> (cd gnu
> TEST_TAR_FORMAT=gnu
> export TEST_TAR_FORMAT
> TAR_OPTIONS="-H gnu"
> export TAR_OPTIONS
> rm -rf *
>
> mkdir foo
> mkdir bar
> echo foo/foo_file > foo/foo_file
> echo bar/bar_file > bar/bar_file
> decho A
> tar -cvf foo.tar --remove-files -C foo . -C ../bar .
> decho B
> find .
> )
> --- -	2015-05-17 06:46:28.337894209 +0000
> +++ /tmp/nix-build-tar-1.28.drv-0/tar-1.28/tests/testsuite.dir/at-groups/161/stdout	2015-05-17 06:46:28.329525786 +0000
> @@ -6,4 +6,5 @@
>  B
>  .
>  ./foo.tar
> +./bar

Sounds like ‘bar’ is expected to be removed but is not.

> 161. remfiles08a.at:28: 161. remove-files deleting two subdirs in -c/non-incr. mode (remfiles08a.at:28): FAILED (remfiles08a.at:31)
>
> #                             -*- compilation -*-
> 163. remfiles08c.at:28: testing remove-files deleting two subdirs in -r mode ...
> ./remfiles08c.at:31:
> mkdir gnu
> (cd gnu
> TEST_TAR_FORMAT=gnu
> export TEST_TAR_FORMAT
> TAR_OPTIONS="-H gnu"
> export TAR_OPTIONS
> rm -rf *
>
>
> test -z "`sort < /dev/null 2>&1`" || exit 77
>
> mkdir foo
> mkdir bar
> echo foo/foo_file > foo/foo_file
> echo bar/bar_file > bar/bar_file
> tar -cf foo.tar -C foo . -C ../bar .
> decho A
> find . | sort
> decho B
> tar -rvf foo.tar --remove-files -C foo . -C ../bar .
> decho C
> find .
> )
> --- -	2015-05-17 06:46:28.468176642 +0000
> +++ /tmp/nix-build-tar-1.28.drv-0/tar-1.28/tests/testsuite.dir/at-groups/163/stdout	2015-05-17 06:46:28.457525791 +0000
> @@ -13,4 +13,5 @@
>  C
>  .
>  ./foo.tar
> +./bar
>  
> 163. remfiles08c.at:28: 163. remove-files deleting two subdirs in -r mode (remfiles08c.at:28): FAILED (remfiles08c.at:31)

Same story here.

I don’t fully understand the tests, but they seem to be testing a
deterministic property.

Now, there are several tests creating files/directories call ‘bar’; they
may run in parallel, and it’s not clear to me whether or not they’re
using separate directories.

Does the build succeed if you run it another time with:

  guix build tar -K -c 1

Thanks in advance,
Ludo’.