1# Process this file with autom4te to create testsuite. -*- Autotest -*-
2
3# Test suite for GNU tar.
4# Copyright (C) 2004, 2005, 2006 Free Software Foundation, Inc.
5
6# This program is free software; you can redistribute it and/or modify
7# it under the terms of the GNU General Public License as published by
8# the Free Software Foundation; either version 2, or (at your option)
9# any later version.
10
11# This program is distributed in the hope that it will be useful,
12# but WITHOUT ANY WARRANTY; without even the implied warranty of
13# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14# GNU General Public License for more details.
15
16# You should have received a copy of the GNU General Public License
17# along with this program; if not, write to the Free Software
18# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
19# 02110-1301, USA.
20
21# Problem: GNU multivolume archives are not able to continue on members
22# with filenames longer than 100 characters. Versions of tar <= 1.14
23# were not checking filename lengths and produced malformed multivolume
24# headers.
25# References: <20040809214854.GB32706@suse.de>
26# http://lists.gnu.org/archive/html/bug-tar/2004-08/msg00012.html
27# <200604270859.47241.Juergen.Vollmer@informatik-vollmer.de>
28# 
29
30AT_SETUP([MV archive & long filenames])
31AT_KEYWORDS([multivolume multiv multiv03])
32
33AT_TAR_CHECK([
34AFILE=`awk 'BEGIN { for (i = 0; i < 100; i++) printf "a"; exit; }'`
35BFILE=`awk 'BEGIN { for (i = 0; i < 101; i++) printf "b"; exit; }'`
36
37cat > ../experr <<EOF
38tar: $BFILE: file name too long to be stored in a GNU multivolume header, truncated
39tar: \`$BFILE' is possibly continued on this volume: header contains truncated name
40EOF
41
42cat > ../expout <<EOF
43$AFILE
44separator-1
45separator-2
46EOF
47
48genfile --length 15360 --file $AFILE
49
50exec <&-
51
52tar -M -L 10 -c -f arch.1 -f arch.2 $AFILE || exit 1
53tar -tM -f arch.1 -f arch.2 || exit 1
54
55echo separator-1
56
57genfile --length 15360 --file $BFILE
58tar -M -L 10 -c -f arch.1 -f arch.2 $BFILE || exit 1
59
60echo separator-2
61mv $BFILE bfile
62tar -M -x -f arch.1 -f arch.2 || exit 1
63cmp $BFILE bfile
64],
65[0],
66[expout],
67[experr],
68[],[],[gnu, oldgnu])
69
70AT_CLEANUP
71
72