From 586a6263e9d97494139b4285c81ee5907c9d7252 Mon Sep 17 00:00:00 2001 From: Sergey Poznyakoff Date: Fri, 7 Nov 2014 11:47:44 +0200 Subject: [PATCH] Add testcase for the previous commit. * tests/sparse05.at: New file. * tests/Makefile.am: Add sparse05.at * tests/testsuite.at: Include sparse05.at --- tests/Makefile.am | 1 + tests/sparse05.at | 46 ++++++++++++++++++++++++++++++++++++++++++++++ tests/testsuite.at | 1 + 3 files changed, 48 insertions(+) create mode 100644 tests/sparse05.at diff --git a/tests/Makefile.am b/tests/Makefile.am index c71d294..2d861cc 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -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 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 diff --git a/tests/testsuite.at b/tests/testsuite.at index f28e86c..be95e72 100644 --- a/tests/testsuite.at +++ b/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]) -- 2.45.2