summaryrefslogtreecommitdiffstats
path: root/tools
diff options
context:
space:
mode:
authorjilles <jilles@FreeBSD.org>2009-12-30 15:59:40 +0000
committerjilles <jilles@FreeBSD.org>2009-12-30 15:59:40 +0000
commit5633dfdd793156d4840d74159870011c9976760c (patch)
treef5054dd6c532d790c525d529066238c628112fa2 /tools
parent99c441f44f73a5a229fa7e84121b3612a01be887 (diff)
downloadFreeBSD-src-5633dfdd793156d4840d74159870011c9976760c.zip
FreeBSD-src-5633dfdd793156d4840d74159870011c9976760c.tar.gz
sh: arith: Return only 0 and 1 from && and ||.
This agrees with C, POSIX and other shells.
Diffstat (limited to 'tools')
-rw-r--r--tools/regression/bin/sh/expansion/arith1.030
1 files changed, 30 insertions, 0 deletions
diff --git a/tools/regression/bin/sh/expansion/arith1.0 b/tools/regression/bin/sh/expansion/arith1.0
new file mode 100644
index 0000000..118ba22
--- /dev/null
+++ b/tools/regression/bin/sh/expansion/arith1.0
@@ -0,0 +1,30 @@
+# $FreeBSD$
+
+failures=0
+
+check() {
+ if [ $(($1)) != $2 ]; then
+ failures=$((failures+1))
+ echo "For $1, expected $2 actual $(($1))"
+ fi
+}
+
+check "0&&0" 0
+check "1&&0" 0
+check "0&&1" 0
+check "1&&1" 1
+check "2&&2" 1
+check "1&&2" 1
+check "1<<40&&1<<40" 1
+check "1<<40&&4" 1
+
+check "0||0" 0
+check "1||0" 1
+check "0||1" 1
+check "1||1" 1
+check "2||2" 1
+check "1||2" 1
+check "1<<40||1<<40" 1
+check "1<<40||4" 1
+
+exit $((failures != 0))
OpenPOWER on IntegriCloud