Free proper variable for var lists in q2c.
[pspp] / tests / bugs / get.sh
1 #!/bin/sh
2
3 # This program tests for a bug which caused
4 # the second procedure after GET FILE to corrupt its output
5
6
7 TEMPDIR=/tmp/pspp-tst-$$
8 TESTFILE=$TEMPDIR/`basename $0`.sps
9
10 # ensure that top_builddir  are absolute
11 if [ -z "$top_builddir" ] ; then top_builddir=. ; fi
12 if [ -z "$top_srcdir" ] ; then top_srcdir=. ; fi
13 top_builddir=`cd $top_builddir; pwd`
14
15 # ensure that top_srcdir is absolute
16 top_srcdir=`cd $top_srcdir; pwd`
17
18 STAT_CONFIG_PATH=$top_srcdir/config
19 export STAT_CONFIG_PATH
20
21
22 cleanup()
23 {
24      cd /
25      rm -rf $TEMPDIR
26 }
27
28
29 fail()
30 {
31     echo $activity
32     echo FAILED
33     cleanup;
34     exit 1;
35 }
36
37
38 no_result()
39 {
40     echo $activity
41     echo NO RESULT;
42     cleanup;
43     exit 2;
44 }
45
46 pass()
47 {
48     cleanup;
49     exit 0;
50 }
51
52 mkdir -p $TEMPDIR
53
54 cd $TEMPDIR
55
56 activity="create program"
57 cat > $TESTFILE <<EOF
58 DATA LIST LIST NOTABLE /LOCATION * EDITOR * SHELL * FREQ * .
59 BEGIN DATA.
60     1.00     1.00    1.0     2.00
61     1.00     1.00    2.0    30.00
62     1.00     2.00    1.0     8.00
63     1.00     2.00    2.0    20.00
64     2.00     1.00    1.0     2.00
65     2.00     1.00    2.0    22.00
66     2.00     2.00    1.0     1.00
67     2.00     2.00    2.0     3.00
68 END DATA.
69
70 SAVE /OUTFILE='$TEMPDIR/foo.sav'.
71
72 GET /FILE='$TEMPDIR/foo.sav'.
73
74 * This one's ok
75 LIST.
76
77 * But this one get rubbish
78 LIST.
79
80 EOF
81 if [ $? -ne 0 ] ; then no_result ; fi
82
83
84 activity="run program"
85 $SUPERVISOR $top_builddir/src/pspp -o raw-ascii $TESTFILE
86 if [ $? -ne 0 ] ; then no_result ; fi
87
88
89
90
91 activity="compare output"
92 perl -pi -e 's/^\s*$//g' $TEMPDIR/pspp.list
93 diff -b  -w $TEMPDIR/pspp.list - << EOF
94 LOCATION   EDITOR    SHELL     FREQ
95  -------- -------- -------- --------
96      1.00     1.00     1.00     2.00 
97      1.00     1.00     2.00    30.00 
98      1.00     2.00     1.00     8.00 
99      1.00     2.00     2.00    20.00 
100      2.00     1.00     1.00     2.00 
101      2.00     1.00     2.00    22.00 
102      2.00     2.00     1.00     1.00 
103      2.00     2.00     2.00     3.00 
104 LOCATION   EDITOR    SHELL     FREQ
105  -------- -------- -------- --------
106      1.00     1.00     1.00     2.00 
107      1.00     1.00     2.00    30.00 
108      1.00     2.00     1.00     8.00 
109      1.00     2.00     2.00    20.00 
110      2.00     1.00     1.00     2.00 
111      2.00     1.00     2.00    22.00 
112      2.00     2.00     1.00     1.00 
113      2.00     2.00     2.00     3.00 
114 EOF
115 if [ $? -ne 0 ] ; then fail ; fi
116
117 pass;