From: Sylvestre Ledru Date: Fri, 3 Apr 2026 10:07:44 +0000 (+0200) Subject: tests: expr: add short-circuit tests with parenthesized branches X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=793f45e916cb12bf47c4c8dbc8cecfaf3510b1c6;p=thirdparty%2Fcoreutils.git tests: expr: add short-circuit tests with parenthesized branches * tests/expr/expr.pl: Add tests to verify that short-circuit evaluation of | and & correctly skips parenthesized dead branches, including nested parenthesized expressions containing division by zero. https://github.com/uutils/coreutils/pull/11395 https://github.com/coreutils/coreutils/pull/238 --- diff --git a/tests/expr/expr.pl b/tests/expr/expr.pl index fcf994601f..b582a85fd1 100755 --- a/tests/expr/expr.pl +++ b/tests/expr/expr.pl @@ -69,6 +69,12 @@ my @Tests = ['andand', '0 \& 1 / 0', {OUT => '0'}, {EXIT => 1}], ['oror', '1 \| 1 / 0', {OUT => '1'}, {EXIT => 0}], + # Short-circuit must also skip parenthesized dead branches. + ['or-paren', '1 \| \( 1 / 0 \)', {OUT => '1'}, {EXIT => 0}], + ['and-paren', '0 \& \( 1 / 0 \)', {OUT => '0'}, {EXIT => 1}], + ['or-nested', '1 \| \( 0 \& \( 1 / 0 \) \)', {OUT => '1'}, {EXIT => 0}], + ['and-nested', '0 \& \( 1 \| \( 1 / 0 \) \)', {OUT => '0'}, {EXIT => 1}], + # In 5.1.3 and earlier, this would output the empty string. ['orempty', '"" \| ""', {OUT => '0'}, {EXIT => 1}],