Sat Jul 30 21:54:23 2005 Ben Pfaff <blp@gnu.org>
[pspp-builds.git] / tests / bugs / crosstabs-crash.sh
1 #!/bin/sh
2
3 # This program tests for a bug which caused CROSSTABS to crash in
4 # integer mode.
5
6 TEMPDIR=/tmp/pspp-tst-$$
7 TESTFILE=$TEMPDIR/`basename $0`.sps
8
9 here=`pwd`;
10
11 # ensure that top_srcdir is absolute
12 cd $top_srcdir; top_srcdir=`pwd`
13
14 STAT_CONFIG_PATH=$top_srcdir/config
15 export STAT_CONFIG_PATH
16
17
18 cleanup()
19 {
20      cd /
21      rm -rf $TEMPDIR
22 }
23
24
25 fail()
26 {
27     echo $activity
28     echo FAILED
29     cleanup;
30     exit 1;
31 }
32
33
34 no_result()
35 {
36     echo $activity
37     echo NO RESULT;
38     cleanup;
39     exit 2;
40 }
41
42 pass()
43 {
44     cleanup;
45     exit 0;
46 }
47
48 mkdir -p $TEMPDIR
49
50 cd $TEMPDIR
51
52 activity="create program"
53 cat > $TESTFILE <<EOF
54 DATA LIST LIST /A * B * X * Y * .
55 BEGIN DATA.
56 2 3 4 5
57 END DATA.
58
59 CROSSTABS VARIABLES X (1,7) Y (1,7) /TABLES X BY Y.
60 EOF
61 if [ $? -ne 0 ] ; then no_result ; fi
62
63 $SUPERVISOR $here/../src/pspp -o raw-ascii $TESTFILE
64 if [ $? -ne 0 ] ; then no_result ; fi
65
66
67 diff -b -B -w $TEMPDIR/pspp.list - << EOF
68 1.1 DATA LIST.  Reading free-form data from the command file.
69 +--------+------+
70 |Variable|Format|
71 #========#======#
72 |A       |F8.0  |
73 |B       |F8.0  |
74 |X       |F8.0  |
75 |Y       |F8.0  |
76 +--------+------+
77
78 2.1 CROSSTABS.  Summary.
79 #===============#=====================================================#
80 #               #                        Cases                        #
81 #               #-----------------+-----------------+-----------------#
82 #               #      Valid      |     Missing     |      Total      #
83 #               #--------+--------+--------+--------+--------+--------#
84 #               #       N| Percent|       N| Percent|       N| Percent#
85 #---------------#--------+--------+--------+--------+--------+--------#
86 #X * Y          #       1|  100.0%|       0|    0.0%|       1|  100.0%#
87 #===============#========#========#========#========#========#========#
88
89 2.2 CROSSTABS.  X by Y [count].
90 #===============#==============================================================#========#
91 #               #                               Y                              |        #
92 #               #--------+--------+--------+--------+--------+--------+--------+        #
93 #              X#    1.00|    2.00|    3.00|    4.00|    5.00|    6.00|    7.00|  Total #
94 #---------------#--------+--------+--------+--------+--------+--------+--------+--------#
95 #           1.00#      .0|      .0|      .0|      .0|      .0|      .0|      .0|      .0#
96 #           2.00#      .0|      .0|      .0|      .0|      .0|      .0|      .0|      .0#
97 #           3.00#      .0|      .0|      .0|      .0|      .0|      .0|      .0|      .0#
98 #           4.00#      .0|      .0|      .0|      .0|     1.0|      .0|      .0|     1.0#
99 #           5.00#      .0|      .0|      .0|      .0|      .0|      .0|      .0|      .0#
100 #           6.00#      .0|      .0|      .0|      .0|      .0|      .0|      .0|      .0#
101 #           7.00#      .0|      .0|      .0|      .0|      .0|      .0|      .0|      .0#
102 #Total          #     .0%|     .0%|     .0%|     .0%|    1.0%|     .0%|     .0%|    1.0%#
103 #===============#========#========#========#========#========#========#========#========#
104
105 EOF
106 if [ $? -ne 0 ] ; then fail ; fi
107
108 pass;