Browse Source

Add testcase for the previous commit.

* tests/sparse05.at: New file.
* tests/Makefile.am: Add sparse05.at
* tests/testsuite.at: Include sparse05.at
Sergey Poznyakoff 10 years ago
parent
commit
586a6263e9
3 changed files with 48 additions and 0 deletions
  1. 1 0
      tests/Makefile.am
  2. 46 0
      tests/sparse05.at
  3. 1 0
      tests/testsuite.at

+ 1 - 0
tests/Makefile.am

@@ -200,6 +200,7 @@ TESTSUITE_AT = \
  sparse02.at\
  sparse03.at\
  sparse04.at\
+ sparse05.at\
  sparsemv.at\
  sparsemvp.at\
  spmvp00.at\

+ 46 - 0
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 <http://www.gnu.org/licenses/>.
+
+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 <[email protected]>
+# 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

+ 1 - 0
tests/testsuite.at

@@ -353,6 +353,7 @@ m4_include([sparse01.at])
 m4_include([sparse02.at])
 m4_include([sparse03.at])
 m4_include([sparse04.at])
+m4_include([sparse05.at])
 m4_include([sparsemv.at])
 m4_include([spmvp00.at])
 m4_include([spmvp01.at])