bug-tar
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[GNU tar 1.34] testsuite: 151 failed


From: Robert Hyerle
Subject: [GNU tar 1.34] testsuite: 151 failed
Date: Mon, 25 Apr 2022 19:06:00 +0200

The “tricky timestamps” (time01.ac) fails on MacOS/Darwin.

I downloaded, checked the signature, and then tried the generic build:

./configure
make build
make check

and test 151 failed: ERROR: 202 tests were run, 1 failed unexpectedly. 36 tests were skipped.

I tested built/checked initially using my (generic) Darwin environment.  Seeing the funny modification times (cause of all the errors), I set up my path to use the GNU coreutils version of “touch”. Not much difference: with the GNU version the “@“ timestamps were not excluded from the test.

All the errors involved timestamps prior to UNIX “beginning of time” (Jan 1 1970) (“BOT”).  I fiddled around with creating files manually.  Some “before BOT” files had coherent timestamps, some not.  Fractional timestamps seem to be more problematic.  N.B. it is very hard to tell reliably using commands what *really* is going on: ls, touch, tar may have problems, the underlying lib’s (e.g. “stat”) may have problems, the underlying representation of timestamps in the filesystem may not store values as one might expect? …

Note that extracting the archive produced by the test produces an identical “ls” as the “ls” of the original directory!

Some cases involving BOT checked correctly: those without fractional values and those with very small fractional increments (.0000000001).  So, problems only with fractions before BOT?

Here is some context:

uname -a: Darwin muir.remulac.fr 21.3.0 Darwin Kernel Version 21.3.0: Wed Jan  5 21:37:58 PST 2022; root:xnu-8019.80.24~20/RELEASE_X86_64 x86_64
stock Darwin commands in the PATH except for coreutils/{readlink,touch).
Note: a few warnings during the build about shifting negative integers and character conversions (but it looks like the code handles this).

Files attached:

tar-1.34/tests/testsuite.dir/151/testsuite.log
dir.ls: ls -l -T 151/pax/dir (generated test files)
extract.ls: ls -l -T extract (i.e. after "gtar -x -f 151/pax/archive.tar", ls the extracted files)
dir.list: sorted filenames of the generated test files
log.list: sorted filenames of the file found to not be matching (“Mod time differs”)
errors.list: “diff -y dir.list log.list” (easy to see the pattern of the errors!)

dir-darwin.list (same as dir.list, but using the Darwin version of “touch”)
log-darwin.list (same as log.list, but using the Darwin version of “touch”)
errors-darwin.diff (same as errors.list, but using the Darwin version of “touch”)

At this point, I appear to have a working version of gnu-tar except for non-functional “-d” option for old files, but who knows?  Tests were skipped!
What I’m more sure about is that files with timestamps before BOT on MacOS are something to avoid!

I’d be happy to perform other tests on my “platform” if someone takes up this issue, but I’m done with the investigation for now.

Good Luck!

— robert

Attachment: testsuite.log
Description: Binary data

Attachment: dir.ls
Description: Binary data

Attachment: extract.ls
Description: Binary data

Attachment: dir.list
Description: Binary data

Attachment: log.list
Description: Binary data

Attachment: errors.diff
Description: Binary data

Attachment: dir-darwin.list
Description: Binary data

Attachment: log-darwin.list
Description: Binary data

Attachment: errors-darwin.diff
Description: Binary data

Attachment: signature.asc
Description: Message signed with OpenPGP


reply via email to

[Prev in Thread] Current Thread [Next in Thread]