X-Git-Url: https://git.dogcows.com/gitweb?p=chaz%2Ftar;a=blobdiff_plain;f=tests%2Fsparse05.at;fp=tests%2Fsparse05.at;h=72f32745cdd7291f7f888a874af683b6a798a84a;hp=0000000000000000000000000000000000000000;hb=586a6263e9d97494139b4285c81ee5907c9d7252;hpb=ec94fbdf458adb2af803eefdd1a9c9bbb432bb21 diff --git a/tests/sparse05.at b/tests/sparse05.at new file mode 100644 index 0000000..72f3274 --- /dev/null +++ b/tests/sparse05.at @@ -0,0 +1,46 @@ +# Process this file with autom4te to create testsuite. -*- Autotest -*- +# +# Test suite for GNU tar. +# Copyright 2014 Free Software Foundation, Inc. + +# This file is part of GNU tar. + +# GNU tar is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. + +# GNU tar is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +AT_SETUP([listing sparse files bigger than 2^33 B]) +AT_KEYWORDS([sparse sparse05]) + +# Description: If an archive in POSIX.1-2001 archive contained a sparse file +# member whose real size (excluding zero blocks) is bigger than 2^33 bytes, +# tar 1.28 would incorrectly list the real member size. +# Reported by: Pavel Raiskup +# References: <1359119879.15037.4.camel@raiskup>, +# http://lists.gnu.org/archive/html/bug-tar/2013-01/msg00001.html + +AT_TAR_CHECK([ +(echo 0 =2560 +for i in `seq 1 999`; do + echo 10M =2560 +done) | genfile --sparse --file BIGFILE --block-size 4K - || AT_SKIP_TEST +tar -f - -c --sparse --posix BIGFILE | tar tvf - | awk '{ print $3, $(NF) }' +], +[0], +[20961034240 BIGFILE +], +[], +[], +[], +[pax]) + +AT_CLEANUP