3ef691f376b672facb32463112c4ac9d86337f74
[pspp-builds.git] / tests / bugs / crosstabs.sh
1 #!/bin/sh
2
3 # This program tests for a bug which crashed pspp when doing a crosstabs
4
5 TEMPDIR=/tmp/pspp-tst-$$
6 TESTFILE=$TEMPDIR/`basename $0`.sps
7
8 # ensure that top_builddir  are absolute
9 if [ -z "$top_builddir" ] ; then top_builddir=. ; fi
10 if [ -z "$top_srcdir" ] ; then top_srcdir=. ; fi
11 top_builddir=`cd $top_builddir; pwd`
12 PSPP=$top_builddir/src/ui/terminal/pspp
13
14 # ensure that top_srcdir is absolute
15 top_srcdir=`cd $top_srcdir; pwd`
16
17 STAT_CONFIG_PATH=$top_srcdir/config
18 export STAT_CONFIG_PATH
19
20
21 cleanup()
22 {
23      if [ x"$PSPP_TEST_NO_CLEANUP" != x ] ; then 
24         echo "NOT cleaning $TEMPDIR" 
25         return ; 
26      fi
27      cd /
28      rm -rf $TEMPDIR
29 }
30
31
32 fail()
33 {
34     echo $activity
35     echo FAILED
36     cleanup;
37     exit 1;
38 }
39
40
41 no_result()
42 {
43     echo $activity
44     echo NO RESULT;
45     cleanup;
46     exit 2;
47 }
48
49 pass()
50 {
51     cleanup;
52     exit 0;
53 }
54
55 mkdir -p $TEMPDIR
56
57 cd $TEMPDIR
58
59 activity="create program"
60 cat > $TEMPDIR/ct.stat <<EOF
61 DATA LIST FIXED
62      / x   1-2
63        y   3
64        z   4.
65
66 BEGIN DATA.
67 0111 
68 0222 
69 0311 
70 0412 
71 0521 
72 0612 
73 0711 
74 0811 
75 0912 
76 END DATA.
77
78 LIST.
79
80
81 CROSSTABS TABLES  y by z.
82
83 EOF
84 if [ $? -ne 0 ] ; then no_result ; fi
85
86
87 $SUPERVISOR $PSPP --testing-mode $TEMPDIR/ct.stat
88 if [ $? -ne 0 ] ; then fail ; fi
89
90
91 pass;