pkgsrc - initial commit
[pkgsrc.git] / archivers / libarchive / files / tar / test / test-deep-dir.sh
1 #!/bin/sh
2 # Copyright (c) 2007 Tim Kientzle
3 # All rights reserved.
4 #
5 # Redistribution and use in source and binary forms, with or without
6 # modification, are permitted provided that the following conditions
7 # are met:
8 # 1. Redistributions of source code must retain the above copyright
9 #    notice, this list of conditions and the following disclaimer.
10 # 2. Redistributions in binary form must reproduce the above copyright
11 #    notice, this list of conditions and the following disclaimer in the
12 #    documentation and/or other materials provided with the distribution.
13 #
14 # THIS SOFTWARE IS PROVIDED BY THE AUTHOR(S) ``AS IS'' AND ANY EXPRESS OR
15 # IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
16 # OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
17 # IN NO EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY DIRECT, INDIRECT,
18 # INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
19 # NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
20 # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
21 # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
22 # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
23 # THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
24 #
25 # $FreeBSD: src/usr.bin/tar/test/test-deep-dir.sh,v 1.1 2007/03/11 10:36:42 kientzle Exp $
26
27 # Stress the deep directory logic; the actual depth here seems to
28 # be limited by the shell.  This should be restructured to get around
29 # that limit (possibly by using perl to build the deep tree?)
30 echo Deep directory tests
31
32 # Basic test configuration
33 . `dirname $0`/config.sh
34
35 # Create a deep dir (shell seems to be limited by PATH_MAX)
36 mkdir original
37 cd original
38 I=0
39 while [ $I -lt 200 ]
40 do
41     mkdir a$I
42     cd a$I
43     I=$(($I + 1))
44 done
45 while [ $I -gt 0 ] ; do cd ..; I=$(($I - 1)); done
46 cd ..
47
48 # Copy this using bsdtar
49 echo "  tar -c | tar -x"
50 mkdir copy
51 (cd original; ${BSDTAR} -cf - .) | (cd copy; ${BSDTAR} -xf -)
52 diff -r original copy || echo XXX FAILURE XXX
53
54 # Copy gtar->bsdtar
55 echo "  gtar -c | tar -x"
56 mkdir copy-gtar
57 (cd original; ${GTAR} -cf - .) | (cd copy-gtar; ${BSDTAR} -xf -)
58 diff -r original copy-gtar || echo XXX FAILURE XXX
59 cd ..
60