Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.busybox.net/busybox.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDenys Vlasenko <vda.linux@googlemail.com>2023-06-13 16:17:14 +0300
committerDenys Vlasenko <vda.linux@googlemail.com>2023-06-13 16:21:22 +0300
commit8ccb3f7b1375862f8ef82cd9d225da986b80f054 (patch)
tree23f0d99fd8f327c8be4d3fb6b783a77c25f965af
parenta4f30f3c70550ee6ceea6768864bfb2e3a99a887 (diff)
shell: add a few yet-failing arithmentic tests
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
-rw-r--r--shell/ash_test/ash-arith/arith-assign-in-varexp.right3
-rwxr-xr-xshell/ash_test/ash-arith/arith-assign-in-varexp.tests8
-rw-r--r--shell/ash_test/ash-arith/arith-comma1.right3
-rwxr-xr-xshell/ash_test/ash-arith/arith-comma1.tests6
-rw-r--r--shell/ash_test/ash-arith/arith-precedence1.right1
-rwxr-xr-xshell/ash_test/ash-arith/arith-precedence1.tests2
-rw-r--r--shell/ash_test/ash-arith/arith-ternary1.right5
-rwxr-xr-xshell/ash_test/ash-arith/arith-ternary1.tests12
-rw-r--r--shell/ash_test/ash-arith/arith-ternary2.right1
-rwxr-xr-xshell/ash_test/ash-arith/arith-ternary2.tests2
10 files changed, 43 insertions, 0 deletions
diff --git a/shell/ash_test/ash-arith/arith-assign-in-varexp.right b/shell/ash_test/ash-arith/arith-assign-in-varexp.right
new file mode 100644
index 000000000..06ac80a64
--- /dev/null
+++ b/shell/ash_test/ash-arith/arith-assign-in-varexp.right
@@ -0,0 +1,3 @@
+20:20
+a=b=10
+b=10
diff --git a/shell/ash_test/ash-arith/arith-assign-in-varexp.tests b/shell/ash_test/ash-arith/arith-assign-in-varexp.tests
new file mode 100755
index 000000000..920aaa779
--- /dev/null
+++ b/shell/ash_test/ash-arith/arith-assign-in-varexp.tests
@@ -0,0 +1,8 @@
+exec 2>&1
+a='b=10'
+b=3
+# The variables should evaluate left-to-right,
+# thus b is set to 10 _before_ addition
+echo 20:$((a + b))
+echo "a=$a"
+echo "b=$b"
diff --git a/shell/ash_test/ash-arith/arith-comma1.right b/shell/ash_test/ash-arith/arith-comma1.right
new file mode 100644
index 000000000..be1264cc0
--- /dev/null
+++ b/shell/ash_test/ash-arith/arith-comma1.right
@@ -0,0 +1,3 @@
+10:10
+a=b=10
+b=10
diff --git a/shell/ash_test/ash-arith/arith-comma1.tests b/shell/ash_test/ash-arith/arith-comma1.tests
new file mode 100755
index 000000000..f86304303
--- /dev/null
+++ b/shell/ash_test/ash-arith/arith-comma1.tests
@@ -0,0 +1,6 @@
+exec 2>&1
+a='b=10'
+b=3
+echo 10:$((a,b))
+echo "a=$a"
+echo "b=$b"
diff --git a/shell/ash_test/ash-arith/arith-precedence1.right b/shell/ash_test/ash-arith/arith-precedence1.right
new file mode 100644
index 000000000..7f407b5d2
--- /dev/null
+++ b/shell/ash_test/ash-arith/arith-precedence1.right
@@ -0,0 +1 @@
+4:4
diff --git a/shell/ash_test/ash-arith/arith-precedence1.tests b/shell/ash_test/ash-arith/arith-precedence1.tests
new file mode 100755
index 000000000..964ae4ee2
--- /dev/null
+++ b/shell/ash_test/ash-arith/arith-precedence1.tests
@@ -0,0 +1,2 @@
+exec 2>&1
+echo 4:"$((0 ? 1,2 : 3,4))"
diff --git a/shell/ash_test/ash-arith/arith-ternary1.right b/shell/ash_test/ash-arith/arith-ternary1.right
new file mode 100644
index 000000000..c968f1181
--- /dev/null
+++ b/shell/ash_test/ash-arith/arith-ternary1.right
@@ -0,0 +1,5 @@
+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
new file mode 100755
index 000000000..5a54e34b6
--- /dev/null
+++ b/shell/ash_test/ash-arith/arith-ternary1.tests
@@ -0,0 +1,12 @@
+exec 2>&1
+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
new file mode 100644
index 000000000..aa54bd925
--- /dev/null
+++ b/shell/ash_test/ash-arith/arith-ternary2.right
@@ -0,0 +1 @@
+5:5
diff --git a/shell/ash_test/ash-arith/arith-ternary2.tests b/shell/ash_test/ash-arith/arith-ternary2.tests
new file mode 100755
index 000000000..eefc8e7ce
--- /dev/null
+++ b/shell/ash_test/ash-arith/arith-ternary2.tests
@@ -0,0 +1,2 @@
+exec 2>&1
+echo 5:$((1?2?3?4?5:6:7:8:9))