]> Dogcows Code - chaz/tar/commitdiff
Add testcase for the previous commit.
authorSergey Poznyakoff <gray@gnu.org>
Fri, 7 Nov 2014 09:47:44 +0000 (11:47 +0200)
committerSergey Poznyakoff <gray@gnu.org>
Fri, 7 Nov 2014 09:47:44 +0000 (11:47 +0200)
* tests/sparse05.at: New file.
* tests/Makefile.am: Add sparse05.at
* tests/testsuite.at: Include sparse05.at

tests/Makefile.am
tests/sparse05.at [new file with mode: 0644]
tests/testsuite.at

index c71d294bba559ec43dc7e5c54b7d5b6f279373f6..2d861ccca4aae07d972e612c93a7e3f32406eccc 100644 (file)
@@ -200,6 +200,7 @@ TESTSUITE_AT = \
  sparse02.at\
  sparse03.at\
  sparse04.at\
+ sparse05.at\
  sparsemv.at\
  sparsemvp.at\
  spmvp00.at\
diff --git a/tests/sparse05.at b/tests/sparse05.at
new file mode 100644 (file)
index 0000000..72f3274
--- /dev/null
@@ -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 <praiskup@redhat.com>
+# 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
index f28e86c27c477226a068e279835512abdd659909..be95e72b2ef99e629240987f3d03d395a3334066 100644 (file)
@@ -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])
This page took 0.023599 seconds and 4 git commands to generate.