I pushed this:
commit 17fb87ae68b887a8d752ffb338badbc0d027046a
Author: Ben Pfaff <[email protected]>
Date: Fri Mar 6 08:18:49 2026 -0800
MATRIX: Skip test for too-large matrices on 32-bit.
Reported by Friedrich Beckmann:
https://lists.gnu.org/archive/html/pspp-dev/2026-03/msg00029.html
Friedrich already committed a simpler fix for this, but I had written this
one up before I noticed, and I think that this one is more thorough, so I
am committing it anyway.
diff --git a/tests/language/commands/matrix.at
b/tests/language/commands/matrix.at
index c657434c93..53ccdacf48 100644
--- a/tests/language/commands/matrix.at
+++ b/tests/language/commands/matrix.at
@@ -5131,13 +5131,31 @@ AT_CLEANUP
dnl Check that attempting to allocate huge matrices fails gracefully
AT_SETUP([MATRIX - very large matrices])
-AT_SKIP_IF([test "$(getconf LONG_BIT 2>/dev/null)" -lt 64])
AT_DATA([matrix.sps], [dnl
MATRIX.
PRINT 2:230000000000.
END MATRIX.
])
+# On 32-bit architectures this test will fail with a different error message
+# since 230000000000 is greater than SIZE_MAX there. Skip the test in that
+# case.
+#
+# The error for 32-bit looks like this:
+#
+# matrix.sps:2.7-2.20: error: MATRIX: All operands of : must be scalars in the
+# supported integer range.
+# 2 | PRINT 2:230000000000.
+# | ^~~~~~~~~~~~~~
+#
+# matrix.sps:2.9-2.20: note: MATRIX: This operand with value 2.3e+11 is outside
+# the supported integer range from -2147483648 to 2147483647.
+# 2 | PRINT 2:230000000000.
+# | ^~~~~~~~~~~~
+
+AT_CHECK([pspp matrix.sps], [1], [stdout])
+AT_SKIP_IF([grep 'must be scalars' stdout])
+
AT_CHECK([pspp matrix.sps], [1], [dnl
matrix.sps:2.7-2.20: error: MATRIX: Matrix cannot be allocated. Too large?
2 | PRINT 2:230000000000.
On Wed, Mar 4, 2026 at 8:35 PM Ben Pfaff <[email protected]> wrote:
>
> Yes, this is a 32/64 bit issue. It's reasonable to skip the test.
>
> On Wed, Mar 4, 2026 at 4:44 PM Friedrich Beckmann
> <[email protected]> wrote:
> >
> > Hi Ben,
> >
> > the builders on Debian have build:
> >
> > https://buildd.debian.org/status/package.php?p=pspp
> >
> > On i386 and armhf this one test fails. Is that something
> > about 32/64 Bit?
> >
> > 945: MATRIX - very large matrices FAILED (matrix.at:5140)
> >
> > ## ---------------------- ##
> > ## Detailed failed tests. ##
> > ## ---------------------- ##
> >
> > # -*- compilation -*-
> > 945. matrix.at:5133: testing MATRIX - very large matrices ...
> > ./matrix.at:5140: pspp matrix.sps
> > --- - 2026-03-05 00:17:18.086052139 +0000
> > +++
> > /build/reproducible-path/pspp-2.1.0/tests/testsuite.dir/at-groups/945/stdout
> > 2026-03-05 00:17:18.081319178 +0000
> > @@ -1,4 +1,10 @@
> > -matrix.sps:2.7-2.20: error: MATRIX: Matrix cannot be allocated. Too large?
> > +matrix.sps:2.7-2.20: error: MATRIX: All operands of : must be scalars in
> > the
> > +supported integer range.
> > 2 | PRINT 2:230000000000.
> > | ^~~~~~~~~~~~~~
> >
> > +matrix.sps:2.9-2.20: note: MATRIX: This operand with value 2.3e+11 is
> > outside
> > +the supported integer range from -2147483648 to 2147483647.
> > + 2 | PRINT 2:230000000000.
> > + | ^~~~~~~~~~~~
> > +
> > 945. matrix.at:5133: 945. MATRIX - very large matrices (matrix.at:5133):
> > FAILED (matrix.at:5140)
> >