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))
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to