diff options
author | Denys Vlasenko | 2023-06-14 11:05:48 +0200 |
---|---|---|
committer | Denys Vlasenko | 2023-06-14 11:07:30 +0200 |
commit | 46dccd2ec0eafd850b2168d4dfe4e74949fd3424 (patch) | |
tree | cb853ae6459c7fd7c48fbcaa42d46056fe77c03f /shell/ash_test | |
parent | a02450ff0bfa45618e72fc7103ea3a8f0e7fff80 (diff) | |
download | busybox-46dccd2ec0eafd850b2168d4dfe4e74949fd3424.zip busybox-46dccd2ec0eafd850b2168d4dfe4e74949fd3424.tar.gz |
shell/math: fix nested ?: and do not parse variables in not-taken branch
Fixes arith-ternary1.tests and arith-ternary_nested.tests
function old new delta
evaluate_string 1043 1101 +58
arith_apply 1087 1137 +50
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 2/0 up/down: 108/0) Total: 108 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Diffstat (limited to 'shell/ash_test')
-rw-r--r-- | shell/ash_test/ash-arith/arith-ternary1.right | 3 | ||||
-rwxr-xr-x | shell/ash_test/ash-arith/arith-ternary1.tests | 7 | ||||
-rw-r--r-- | shell/ash_test/ash-arith/arith-ternary2.right | 4 | ||||
-rwxr-xr-x | shell/ash_test/ash-arith/arith-ternary2.tests | 7 | ||||
-rw-r--r-- | shell/ash_test/ash-arith/arith-ternary_nested.right | 1 | ||||
-rwxr-xr-x | shell/ash_test/ash-arith/arith-ternary_nested.tests | 2 |
6 files changed, 12 insertions, 12 deletions
diff --git a/shell/ash_test/ash-arith/arith-ternary1.right b/shell/ash_test/ash-arith/arith-ternary1.right index c968f11..6b751d7 100644 --- a/shell/ash_test/ash-arith/arith-ternary1.right +++ b/shell/ash_test/ash-arith/arith-ternary1.right @@ -1,5 +1,2 @@ 42:42 a=0 -6:6 -a=b=+err+ -b=6 diff --git a/shell/ash_test/ash-arith/arith-ternary1.tests b/shell/ash_test/ash-arith/arith-ternary1.tests index 5a54e34..3532ce5 100755 --- a/shell/ash_test/ash-arith/arith-ternary1.tests +++ b/shell/ash_test/ash-arith/arith-ternary1.tests @@ -3,10 +3,3 @@ a=0 # The not-taken branch should not evaluate echo 42:$((1 ? 42 : (a+=2))) echo "a=$a" - -a='b=+err+' -b=5 -# The not-taken branch should not even parse variables -echo 6:$((0 ? a : ++b)) -echo "a=$a" -echo "b=$b" diff --git a/shell/ash_test/ash-arith/arith-ternary2.right b/shell/ash_test/ash-arith/arith-ternary2.right index aa54bd9..a549b1b 100644 --- a/shell/ash_test/ash-arith/arith-ternary2.right +++ b/shell/ash_test/ash-arith/arith-ternary2.right @@ -1 +1,3 @@ -5:5 +6:6 +a=b=+err+ +b=6 diff --git a/shell/ash_test/ash-arith/arith-ternary2.tests b/shell/ash_test/ash-arith/arith-ternary2.tests index eefc8e7..cb31639 100755 --- a/shell/ash_test/ash-arith/arith-ternary2.tests +++ b/shell/ash_test/ash-arith/arith-ternary2.tests @@ -1,2 +1,7 @@ exec 2>&1 -echo 5:$((1?2?3?4?5:6:7:8:9)) +a='b=+err+' +b=5 +# The not-taken branch should not parse variables +echo 6:$((0 ? a : ++b)) +echo "a=$a" +echo "b=$b" diff --git a/shell/ash_test/ash-arith/arith-ternary_nested.right b/shell/ash_test/ash-arith/arith-ternary_nested.right new file mode 100644 index 0000000..aa54bd9 --- /dev/null +++ b/shell/ash_test/ash-arith/arith-ternary_nested.right @@ -0,0 +1 @@ +5:5 diff --git a/shell/ash_test/ash-arith/arith-ternary_nested.tests b/shell/ash_test/ash-arith/arith-ternary_nested.tests new file mode 100755 index 0000000..eefc8e7 --- /dev/null +++ b/shell/ash_test/ash-arith/arith-ternary_nested.tests @@ -0,0 +1,2 @@ +exec 2>&1 +echo 5:$((1?2?3?4?5:6:7:8:9)) |