f8278412e5affae847d3ecba407901279704e08c
[pspp] / tests / libpspp / zip.at
1 dnl PSPP - a program for statistical analysis.
2 dnl Copyright (C) 2017 Free Software Foundation, Inc.
3 dnl 
4 dnl This program is free software: you can redistribute it and/or modify
5 dnl it under the terms of the GNU General Public License as published by
6 dnl the Free Software Foundation, either version 3 of the License, or
7 dnl (at your option) any later version.
8 dnl 
9 dnl This program is distributed in the hope that it will be useful,
10 dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
11 dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12 dnl GNU General Public License for more details.
13 dnl 
14 dnl You should have received a copy of the GNU General Public License
15 dnl along with this program.  If not, see <http://www.gnu.org/licenses/>.
16 dnl
17 AT_BANNER([zip])
18
19 AT_SETUP([Basic zip - unzip test])
20 AT_KEYWORDS([compression])
21
22 AT_CHECK([dnl
23 here=`pwd`
24 dir1=$here/original
25 dir2=$here/recovered
26
27 mkdir -p $dir1
28
29 # Generate files of differing sizes with random data in them
30 names=""
31 s=1;
32 while test $s -le 8192 ; do
33         name=$dir1/$s
34         dd if=/dev/urandom of=$name count=1 bs=$s 2> /dev/null
35         s=$(($s * 2));
36         bn=`basename $name`;
37         names="$names $bn";
38 done
39
40 (cd $dir1 && $abs_top_builddir/tests/libpspp/zip-test w foo.zip $names)
41
42
43 mkdir -p $dir2
44 cp $dir1/foo.zip $dir2
45 cd $dir2 
46 $abs_top_builddir/tests/libpspp/zip-test r foo.zip $names
47
48 # Compare the files to their originals
49 for f in $names; do
50  diff $dir1/$f $dir2/$f;
51  if test $? -ne 0 ; then exit 1; fi;
52 done
53
54 exit 0
55 ])
56
57
58 AT_CLEANUP
59