Paul,

Thanks for the quick reply.

I hacked the testcases script to extract test39, removed the test framework 
stuff, added test case separators and ran it with -x as requested.  The log is 
attached below.

I installed the binary in /usr/local/bin despite the test failure to ensure 
that the test script picked up the gnu tar rather than the default AIX one.

Let me know if you require anything else.

  Jez

bash-4.2# echo $PATH
/usr/local/bin:/usr/bin/:/etc:/usr/sbin:/usr/ucb:/usr/vac/bin:/usr/bin/X11:/sbin:/usr/java6/jre/bin:/usr/java6/bin
bash-4.2# type tar
tar is /usr/local/bin/tar
bash-4.2# ls -l /usr/local/bin/tar ../src/tar
-rwxr-xr-x    1 root     system       758725 Jul 24 20:02 ../src/tar
-rwxr-xr-x    1 root     system       758725 Jul 24 20:20 /usr/local/bin/tar
bash-4.2# diff /usr/local/bin/tar ../src/tar
bash-4.2# oslevel
7.1.0.0
uname -svrp
AIX 1 7 powerpc

bash-4.2# cat test39.log
+ rm -rf gnu
+ mkdir gnu
+ cd gnu
+ echo 
*********************************************************************************
*********************************************************************************
+ TEST_TAR_FORMAT=gnu
+ export TEST_TAR_FORMAT
+ TAR_OPTIONS=-H gnu
+ export TAR_OPTIONS
+ rm -rf *
+ echo 
=================================================================================
=================================================================================
+ mkdir src dst1 dst2 dst3
+ echo file1
+ 1> src/file1
+ ln -s target1 dst1/file1
+ echo target1
+ 1> dst1/target1
+ echo target1
+ 1> target1
+ tar -cf archive.tar -C src .
+ tar -xf archive.tar -C dst1 --warning=no-timestamp
+ diff src/file1 dst1/file1
+ diff target1 dst1/target1
+ echo 
=================================================================================
=================================================================================
+ ln -s target1 dst2/file1
+ echo target1
+ 1> dst2/target1
+ tar --overwrite -xf archive.tar -C dst2 --warning=no-timestamp
+ diff src/file1 dst2/file1
+ diff target1 dst2/target1
1c1
< target1
---
> file1
+ echo 
=================================================================================
=================================================================================
+ ln -s target1 dst3/file1
+ echo target1
+ 1> dst3/target1
+ tar --overwrite -xhf archive.tar -C dst3 --warning=no-timestamp
+ diff src/file1 dst3/file1
+ diff src/file1 dst3/target1
+ echo 
*********************************************************************************
*********************************************************************************
+ TEST_TAR_FORMAT=gnu
+ export TEST_TAR_FORMAT
+ TAR_OPTIONS=-H gnu
+ export TAR_OPTIONS
+ rm -rf archive.tar dst1 dst2 dst3 src target1
+ mkdir src dst1 dst2 dst3
+ echo file1
+ 1> src/file1
+ ln -s target1 dst1/file1
+ echo target1
+ 1> dst1/target1
+ echo target1
+ 1> target1
+ echo 
=================================================================================
=================================================================================
+ tar -cf archive.tar -C src .
+ tar -xf archive.tar -C dst1 --warning=no-timestamp
+ diff src/file1 dst1/file1
+ diff target1 dst1/target1
+ ln -s target1 dst2/file1
+ echo target1
+ 1> dst2/target1
+ tar --overwrite -xf archive.tar -C dst2 --warning=no-timestamp
+ diff src/file1 dst2/file1
+ diff target1 dst2/target1
1c1
< target1
---
> file1
+ echo 
=================================================================================
=================================================================================
+ ln -s target1 dst3/file1
+ echo target1
+ 1> dst3/target1
+ tar --overwrite -xhf archive.tar -C dst3 --warning=no-timestamp
+ diff src/file1 dst3/file1
+ diff src/file1 dst3/target1
+ echo 
*********************************************************************************
*********************************************************************************
+ TEST_TAR_FORMAT=gnu
+ export TEST_TAR_FORMAT
+ TAR_OPTIONS=-H gnu
+ export TAR_OPTIONS
+ rm -rf archive.tar dst1 dst2 dst3 src target1
+ mkdir src dst1 dst2 dst3
+ echo file1
+ 1> src/file1
+ ln -s target1 dst1/file1
+ echo target1
+ 1> dst1/target1
+ echo target1
+ 1> target1
+ echo 
=================================================================================
=================================================================================
+ tar -cf archive.tar -C src .
+ tar -xf archive.tar -C dst1 --warning=no-timestamp
+ diff src/file1 dst1/file1
+ diff target1 dst1/target1
+ echo 
=================================================================================
=================================================================================
+ ln -s target1 dst2/file1
+ echo target1
+ 1> dst2/target1
+ tar --overwrite -xf archive.tar -C dst2 --warning=no-timestamp
+ diff src/file1 dst2/file1
+ diff target1 dst2/target1
1c1
< target1
---
> file1
+ echo 
=================================================================================
=================================================================================
+ ln -s target1 dst3/file1
+ echo target1
+ 1> dst3/target1
+ tar --overwrite -xhf archive.tar -C dst3 --warning=no-timestamp
+ diff src/file1 dst3/file1
+ diff src/file1 dst3/target1
bash-4.2# 


On 25 Jul 2012, at 05:53, Paul Eggert wrote:

> On 07/24/2012 11:20 AM, Jez Wain wrote:
>> I've had a quick look at the test scenario, but cannot see any obvious 
>> reason.
> 
> Can you reproduce the problem with just the shell script
> that failed?  If so, can you run it with 'sh -x' so
> that we know which 'diff' command produced output?

Reply via email to