1ec5718c22342c66d78768bc942e03655644ff3d
[pspp-builds.git] / tests / command / sysfiles.sh
1 #!/bin/sh
2
3 # This program tests that system files can be read and written 
4 # including the long variable names.
5
6
7 TEMPDIR=/tmp/pspp-tst-$$
8 TESTFILE=$TEMPDIR/`basename $0`.sps
9
10 here=`pwd`;
11
12 # ensure that top_srcdir is absolute
13 cd $top_srcdir; top_srcdir=`pwd`
14
15 STAT_CONFIG_PATH=$top_srcdir/config
16 export STAT_CONFIG_PATH
17
18
19 cleanup()
20 {
21      cd /
22      rm -rf $TEMPDIR
23 }
24
25
26 fail()
27 {
28     echo $activity
29     echo FAILED
30     cleanup;
31     exit 1;
32 }
33
34
35 no_result()
36 {
37     echo $activity
38     echo NO RESULT;
39     cleanup;
40     exit 2;
41 }
42
43 pass()
44 {
45     cleanup;
46     exit 0;
47 }
48
49 mkdir -p $TEMPDIR
50
51 cd $TEMPDIR
52
53 activity="create program"
54 cat > $TESTFILE <<EOF
55 DATA LIST LIST NOTABLE / variable001 * variable002 * variable003 * variable004 * .
56 BEGIN DATA.
57     1.00     1.00    1.0     2.00
58     1.00     1.00    2.0    30.00
59     1.00     2.00    1.0     8.00
60     1.00     2.00    2.0    20.00
61     2.00     1.00    1.0     2.00
62     2.00     1.00    2.0    22.00
63     2.00     2.00    1.0     1.00
64     2.00     2.00    2.0     3.00
65 END DATA.
66
67 SAVE /OUTFILE='$TEMPDIR/foo.sav'.
68
69 GET /FILE='$TEMPDIR/foo.sav'.
70
71 LIST.
72
73 EOF
74 if [ $? -ne 0 ] ; then no_result ; fi
75
76
77 activity="run program"
78 $SUPERVISOR $here/../src/pspp -o raw-ascii $TESTFILE
79 if [ $? -ne 0 ] ; then no_result ; fi
80
81 activity="compare output"
82 perl -pi -e 's/^\s*$//g' $TEMPDIR/pspp.list
83 diff -b  -w $TEMPDIR/pspp.list - << EOF
84 variable001 variable002 variable003 variable004
85 ----------- ----------- ----------- -----------
86        1.00        1.00        1.00        2.00  
87        1.00        1.00        2.00       30.00 
88        1.00        2.00        1.00        8.00 
89        1.00        2.00        2.00       20.00 
90        2.00        1.00        1.00        2.00 
91        2.00        1.00        2.00       22.00 
92        2.00        2.00        1.00        1.00 
93        2.00        2.00        2.00        3.00 
94 EOF
95 if [ $? -ne 0 ] ; then fail ; fi
96
97 pass;