|
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:
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 |
testsuite.log
Description: Binary data
dir.ls
Description: Binary data
extract.ls
Description: Binary data
dir.list
Description: Binary data
log.list
Description: Binary data
errors.diff
Description: Binary data
dir-darwin.list
Description: Binary data
log-darwin.list
Description: Binary data
errors-darwin.diff
Description: Binary data
signature.asc
Description: Message signed with OpenPGP
[Prev in Thread] | Current Thread | [Next in Thread] |