(main): When testing mode is enabled, use a built-in output driver
[pspp] / tests / command / flip.sh
1 #!/bin/sh
2
3 # This program tests the flip command
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 LANG=C
21 export LANG
22
23 cleanup()
24 {
25      cd /
26      rm -rf $TEMPDIR
27 }
28
29
30 fail()
31 {
32     echo $activity
33     echo FAILED
34     cleanup;
35     exit 1;
36 }
37
38
39 no_result()
40 {
41     echo $activity
42     echo NO RESULT;
43     cleanup;
44     exit 2;
45 }
46
47 pass()
48 {
49     cleanup;
50     exit 0;
51 }
52
53 mkdir -p $TEMPDIR
54
55 cd $TEMPDIR
56
57 activity="create flip.stat"
58 cat > $TEMPDIR/flip.stat <<EOF
59 * Test FLIP with NEWNAME or, equivalently, with a variable named CASE_LBL.
60 data list notable /N 1 (a) A B C D 2-9.
61 list.
62 begin data.
63 v 1 2 3 4 5
64 w 6 7 8 910
65 x1112131415
66 y1617181920
67 z2122232425
68 end data.
69 flip newnames=n.
70 list.
71 flip.
72 list.
73
74 * Test FLIP without NEWNAME.
75 data list list notable /v1 to v10.
76 format all(f2).
77 begin data.
78 1 2 3 4 5 6 7 8 9 10
79 4 5 6 7 8 9 10 11 12 13
80 end data.
81
82 list.
83
84 flip.
85 list. 
86 EOF
87 if [ $? -ne 0 ] ; then no_result ; fi
88
89
90 activity="run program"
91 $SUPERVISOR $PSPP --testing-mode $TEMPDIR/flip.stat
92 if [ $? -ne 0 ] ; then no_result ; fi
93
94 activity="compare output"
95 perl -pi -e 's/^\s*$//g' $TEMPDIR/pspp.list
96 diff  -b  $TEMPDIR/pspp.list - << EOF
97 N  A  B  C  D
98 - -- -- -- --
99 v  1  2  3  4 
100 w  6  7  8  9 
101 x 11 12 13 14 
102 y 16 17 18 19 
103 z 21 22 23 24 
104 CASE_LBL        V        W        X        Y        Z
105 -------- -------- -------- -------- -------- --------
106 A            1.00     6.00    11.00    16.00    21.00 
107 B            2.00     7.00    12.00    17.00    22.00 
108 C            3.00     8.00    13.00    18.00    23.00 
109 D            4.00     9.00    14.00    19.00    24.00 
110 CASE_LBL        A        B        C        D
111 -------- -------- -------- -------- --------
112 V            1.00     2.00     3.00     4.00 
113 W            6.00     7.00     8.00     9.00 
114 X           11.00    12.00    13.00    14.00 
115 Y           16.00    17.00    18.00    19.00 
116 Z           21.00    22.00    23.00    24.00 
117 v1 v2 v3 v4 v5 v6 v7 v8 v9 v10
118 -- -- -- -- -- -- -- -- -- ---
119  1  2  3  4  5  6  7  8  9  10 
120  4  5  6  7  8  9 10 11 12  13 
121 CASE_LBL   VAR000   VAR001
122 -------- -------- --------
123 v1           1.00     4.00 
124 v2           2.00     5.00 
125 v3           3.00     6.00 
126 v4           4.00     7.00 
127 v5           5.00     8.00 
128 v6           6.00     9.00 
129 v7           7.00    10.00 
130 v8           8.00    11.00 
131 v9           9.00    12.00 
132 v10         10.00    13.00 
133 EOF
134 if [ $? -ne 0 ] ; then fail ; fi
135
136
137 pass;