* bugs/compression.sh: Don't fail on big-endian system. Partial
authorBen Pfaff <blp@gnu.org>
Sun, 25 Nov 2007 19:11:39 +0000 (19:11 +0000)
committerBen Pfaff <blp@gnu.org>
Sun, 25 Nov 2007 19:11:39 +0000 (19:11 +0000)
fix for bug #21590.

* bugs/sysfile-info.sh: Disregard "Integer Format" and "Real
Format" lines in SYSFILE INFO output, to permit big-endian systems
to pass also.  Partial fix for bug #21590.

* float-format.c (assemble_number): Only store 32 bits for Z short
format.  Partial fix for bug #21590.

src/libpspp/ChangeLog
src/libpspp/float-format.c
tests/ChangeLog
tests/bugs/compression.sh
tests/command/sysfile-info.sh

index d237d1fe277ff4308af7292672f5aa1017730643..12c70f9d4a0e6f94371edb155041079db16cae42 100644 (file)
@@ -1,3 +1,8 @@
+2007-11-25  Ben Pfaff  <blp@gnu.org>
+
+       * float-format.c (assemble_number): Only store 32 bits for Z short
+       format.  Partial fix for bug #21590.
+
 2007-11-08  Ben Pfaff  <blp@gnu.org>
 
        * str.c (ds_read_stream): Change return value semantics to be more
index 50a4eae6005b071e1d61320621aa424614fd2654..332e2e7875e9138674cd4f9bb43303d5d3ce196f 100644 (file)
@@ -695,7 +695,7 @@ assemble_number (enum float_format type, struct fp *fp, void *number)
       break;
 
     case FLOAT_Z_SHORT:
-      put_uint64 (native_to_be32 (assemble_z (fp, 7, 24)), number);
+      put_uint32 (native_to_be32 (assemble_z (fp, 7, 24)), number);
       break;
     case FLOAT_Z_LONG:
       put_uint64 (native_to_be64 (assemble_z (fp, 7, 56)), number);
index 08f4350049d3b5b605027f04c22a28a38bb55b24..7ce9ce636f633e993b791469c729219e2748cefc 100644 (file)
@@ -1,3 +1,12 @@
+2007-11-25  Ben Pfaff  <blp@gnu.org>
+
+       * bugs/compression.sh: Don't fail on big-endian system.  Partial
+       fix for bug #21590.
+
+       * bugs/sysfile-info.sh: Disregard "Integer Format" and "Real
+       Format" lines in SYSFILE INFO output, to permit big-endian systems
+       to pass also.  Partial fix for bug #21590.
+
 2007-11-15  Ben Pfaff  <blp@gnu.org>
 
        * automake.mk: Add definition of CHARSETALIASDIR to
index 6556406411d238f3614ee8e5a844c957f3937b34..d2147237e2d8cb8ee1e1669c2ebf212facf766db 100755 (executable)
@@ -77,15 +77,22 @@ if [ $? -ne 0 ] ; then fail ; fi
 
 # Make sure the file really was compressed
 activity="inspect system file"
-dd if=$TEMPDIR/com.sav bs=1 skip=72 count=1 2> /dev/null | od > $TEMPDIR/file 
+dd if=$TEMPDIR/com.sav bs=1 skip=72 count=4 2> /dev/null | od > $TEMPDIR/file
 if [ $? -ne 0 ] ; then no_result ; fi
 
-activity="check compression byte"
-diff -b $TEMPDIR/file - <<EOF
-0000000 000001
-0000001
+activity="check compression setting"
+# Big-endian?
+diff -b $TEMPDIR/file - > /dev/null <<EOF
+0000000 000000 000001
+0000004
 EOF
-if [ $? -ne 0 ] ; then fail ; fi
-
-
-pass;
+if [ $? -ne 0 ] ; then pass ; fi
+# Little-endian?
+diff -b $TEMPDIR/file - > /dev/null <<EOF
+0000000 000001 000000
+0000004
+EOF
+if [ $? -ne 0 ] ; then pass ; fi
+# Otherwise error.
+cat $TEMPDIR/file
+fail
index f741ff85f1568031f55882c4398e05785f1f9417..3456fba2e33f0791a7d2960eb6eb7d0b427947b1 100755 (executable)
@@ -78,7 +78,7 @@ $SUPERVISOR $PSPP --testing-mode $TESTFILE
 if [ $? -ne 0 ] ; then no_result ; fi
 
 activity="filter output"
-egrep -v '^(Created|Endian): ' $TEMPDIR/pspp.list > $TEMPDIR/out-filtered
+egrep -v '^(Created|Endian|Integer Format|Real Format): ' $TEMPDIR/pspp.list > $TEMPDIR/out-filtered
 if [ $? -ne 0 ] ; then no_result ; fi
 
 activity="compare output"
@@ -94,8 +94,6 @@ diff -b -w $TEMPDIR/out-filtered - << EOF
 2.1 SYSFILE INFO.  
 File:           pro.sav
 Label:          No label.
-Integer Format: Little Endian.
-Real Format:    IEEE 754 LE.
 Variables:      2
 Cases:          3
 Type:           System File.