-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

Hi,

> The bug is a simple typo in the new exprtok.h - it seems to have slipped in
> while refactoring the operator list to this new header file.
> 
> Attached is a patch that fixes the issue. I have also gone and verified that
> the same type of mistake didn't happen to other operators.

Attached is a test case for all expr operators as well.

It only tests operators as a unit, not arbitrary combinations of operators, 
because that's somewhat out of scope, but I tried to also to some sanity 
checks on the functions of the operators in addition to merely checking their 
existence ;).

- -nik

- -- 
PGP-Fingerprint: 3C9D 54A4 7575 C026 FB17  FD26 B79A 3C16 A0C4 F296

Dominik George · Mobil: +49-1520-1981389

Teckids e.V. · FrOSCon e.V. · OpenRheinRuhr e.V.
Fellowship of the FSFE · Piratenpartei Deutschland
Opencaching Deutschland e.V. · Debian Contributor

LPIC-3 Linux Enterprise Professional (Security)
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2

iQJOBAEBCAA4BQJXreRNMRpodHRwczovL3d3dy5kb21pbmlrLWdlb3JnZS5kZS9n
cGctcG9saWN5LnR4dC5hc2MACgkQt5o8FqDE8pZumw/9GEiBQqsFUfSZedTVDOCW
oeNRXWmhcmblwBcGPIz2hwPGGjz1ovE9dY84Z0qUq2LRATq2KYSTGA9A/P21JonJ
jtE9/1tQtdYNoF08N2rJrPpPDyEeMGxNs4iIuP+rSH9L96yLGErCIdjqWbXceTDA
h0AAt7nOiKtEl5HLmmek3RwRbzdg/MeFmSeyUz7a3AzLxGzrd/GZ1V8uw/fvliRH
Z2xKVmokBUNOSLH7xv7KswVDSLn7czU01o/65B27+nKmfnns5xduEbkz5w8j29ZW
Jkc5+LTFdMWakRvWUlrqU+jDAJP1egGC6tpD+CRvFrXpozzd5fotJq+zptbwqb4A
A9w9/nU9NA24ShtWOZ9tsDdl1I3jAAcEgy4Gq+rcqM6ukroJooiFgd//67uwIBRK
IixeyfY0A8ZVto86dvKALgg8BzHWoiUVFfDFjbdqCXJkQIQmhM0wncn0tT+Ljc98
z+0Q1YrBxk33UdbQRiysnITxHnDIvZx1+Qdha6BEN3pgn+bIlzrlszHjt34rm1ix
BP8Pbc44AVz1S+xM86Z5KXr0Ns+Jv8D5DP49GSf0mYFIpiFLI+rGVLorgPzJ2/BV
ajd4uIEzgCMBPbGRdIejL7MijA0D1ZVw0A1gauNb5Qhwltq8h/ZEhZqCtH9OnuRo
FAvyDFWvsCE0ff0c/YhZw8A=
=hCjl
-----END PGP SIGNATURE-----
--- check.t.old	2016-08-12 16:01:43.306225160 +0200
+++ check.t	2016-08-12 16:51:04.375659067 +0200
@@ -6423,6 +6423,92 @@
 stdin:
 	for s in s; do break; done; print -s s
 ---
+name: regression-68
+description:
+	Check that all expr operators work as expected
+stdin:
+	echo $(( a = 5 ))
+	echo $(( a++ ))
+	echo $(( a-- ))
+	echo $(( a == 5 )) $(( a == 6 ))
+	echo $(( a != 6 )) $(( a != 5 ))
+	echo $(( a *= 3 ))
+	echo $(( a /= 5 ))
+	echo $(( a %= 2 ))
+	echo $(( a += 9 ))
+	echo $(( a -= 5 ))
+	echo $(( a ^<= 1 ))
+	echo $(( a ^>= 2 ))
+	echo $(( a << 1 ))
+	echo $(( a >> 1 ))
+	echo $(( a &= 4 ))
+	echo $(( a ^= a ))
+	echo $(( a |= 5 ))
+	echo $(( 5 ^< 1 ))
+	echo $(( 5 ^> 1 ))
+	echo $(( 5 << 1 ))
+	echo $(( 5 >> 1 ))
+	echo $(( 5 <= 3 )) $(( 5 <= 2 )) $(( 5 <= 1 ))
+	echo $(( 5 >= 1 )) $(( 5 >= 2 )) $(( 5 >= 3 ))
+	echo $(( 5 < 3 )) $(( 5 < 2 )) $(( 5 < 1 ))
+	echo $(( 5 > 1 )) $(( 5 > 2 )) $(( 5 > 3 ))
+	echo $(( 1 && 1 )) $(( 1 && 0 )) $(( 0 && 1 )) $(( 0 && 0 ))
+	echo $(( 1 || 1 )) $(( 1 || 0 )) $(( 0 || 1 )) $(( 0 || 0 ))
+	echo $(( 5 * 3 ))
+	echo $(( 6 / 2 ))
+	echo $(( 5 % 5 )) $(( 5 % 4 )) $(( 5 % 1 )) $(( 5 % -1 )) $(( 5 % -2 ))
+	echo $(( 5 + 2 )) $(( 5 + 0 )) $(( 5 + -2 ))
+	echo $(( 5 - 2 )) $(( 5 - 0 )) $(( 5 - -2 ))
+	echo $(( 6 & 4 )) $(( 6 & 8 ))
+	echo $(( 4 ^ 2 )) $(( 4 ^ 4 ))
+	echo $(( 4 | 2 )) $(( 4 | 4 )) $(( 4 | 0 ))
+	echo $(( 1 ? 1 : 0 )) $(( 0 ? 1 : 0 ))
+	echo $(( 5, 2, 3 ))
+	echo $(( ~0 )) $(( ~1 )) $(( ~~1 )) 
+	echo $(( !0 )) $(( !1 )) $(( !!1 ))
+	echo $(( (5) ))
+expected-stdout:
+	5
+	6
+	5
+	1 0
+	1 0
+	15
+	3
+	1
+	10
+	5
+	10
+	-2147483646
+	4
+	2
+	6
+	0
+	5
+	10
+	-2147483646
+	10
+	2
+	1 1 0
+	1 1 0
+	1 0 0
+	1 0 0
+	1 0 0 0
+	1 1 1 0
+	15
+	3
+	0 1 0 0 1
+	7 5 3
+	3 5 7
+	4 0
+	6 0
+	6 0 0
+	1 0
+	3
+	-1 -2 1
+	1 0 1
+	5
+---
 name: readonly-0
 description:
 	Ensure readonly is honoured for assignments and unset

Reply via email to