svn commit: r202017 - stable/8/tools/regression/bin/sh/expansion

Jilles Tjoelker jilles at FreeBSD.org
Sun Jan 10 16:58:12 UTC 2010


Author: jilles
Date: Sun Jan 10 16:58:12 2010
New Revision: 202017
URL: http://svn.freebsd.org/changeset/base/202017

Log:
  MFC r210428: sh: Add a regression test that tries out all arithmetic ops.
  
  The gaps in the numbering sequence cannot really be avoided, as HEAD changes
  are not necessarily merged in the same order as they are made (if they are
  merged at all).

Added:
  stable/8/tools/regression/bin/sh/expansion/arith2.0
     - copied unchanged from r201428, head/tools/regression/bin/sh/expansion/arith2.0
Modified:
Directory Properties:
  stable/8/tools/regression/bin/sh/   (props changed)

Copied: stable/8/tools/regression/bin/sh/expansion/arith2.0 (from r201428, head/tools/regression/bin/sh/expansion/arith2.0)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ stable/8/tools/regression/bin/sh/expansion/arith2.0	Sun Jan 10 16:58:12 2010	(r202017, copy of r201428, head/tools/regression/bin/sh/expansion/arith2.0)
@@ -0,0 +1,76 @@
+# $FreeBSD$
+
+failures=0
+
+check() {
+	if [ $(($1)) != $2 ]; then
+		failures=$((failures+1))
+		echo "For $1, expected $2 actual $(($1))"
+	fi
+}
+
+# variables
+unset v
+check "v=2" 2
+check "v" 2
+check "$(($v))" 2
+check "v+=1" 3
+check "v" 3
+
+# constants
+check "4611686018427387904" 4611686018427387904
+check "0x4000000000000000" 4611686018427387904
+check "0400000000000000000000" 4611686018427387904
+check "0x4Ab0000000000000" 5381801554707742720
+
+# try out all operators
+v=42
+check "!v" 0
+check "!!v" 1
+check "!0" 1
+check "~0" -1
+check "~(-1)" 0
+check "-0" 0
+check "-v" -42
+check "v*v" 1764
+check "v/2" 21
+check "v%10" 2
+check "v+v" 84
+check "v-4" 38
+check "v<<1" 84
+check "v>>1" 21
+check "v<43" 1
+check "v>42" 0
+check "v<=43" 1
+check "v>=43" 0
+check "v==41" 0
+check "v!=42" 0
+check "v&3" 2
+check "v^3" 41
+check "v|3" 43
+check "v>=40&&v<=44" 1
+check "v<40||v>44" 0
+check "(v=42)&&(v+=1)==43" 1
+check "v" 43
+check "(v=42)&&(v-=1)==41" 1
+check "v" 41
+check "(v=42)&&(v*=2)==84" 1
+check "v" 84
+check "(v=42)&&(v/=10)==4" 1
+check "v" 4
+check "(v=42)&&(v%=10)==2" 1
+check "v" 2
+check "(v=42)&&(v<<=1)==84" 1
+check "v" 84
+check "(v=42)&&(v>>=2)==10" 1
+check "v" 10
+check "(v=42)&&(v&=32)==32" 1
+check "v" 32
+check "(v=42)&&(v^=32)==10" 1
+check "v" 10
+check "(v=42)&&(v|=32)==42" 1
+check "v" 42
+
+# missing: ternary, comma
+
+exit $((failures != 0))


More information about the svn-src-all mailing list