summary refs log tree commit diff stats
path: root/tests/vm
diff options
context:
space:
mode:
authorEXetoC <exetoc@gmail.com>2014-03-31 14:50:44 +0200
committerEXetoC <exetoc@gmail.com>2014-03-31 14:50:44 +0200
commit52c6956d1ae0cbc0d5f75f95047a9ea58220b358 (patch)
treef9cabf15fdf33de2d759551db8554922c54acacc /tests/vm
parentb919ab790b7ed1cf6ca65c582b255cce2ea1618a (diff)
downloadNim-52c6956d1ae0cbc0d5f75f95047a9ea58220b358.tar.gz
Add underflow/overflow tests.
Diffstat (limited to 'tests/vm')
-rw-r--r--tests/vm/toverflowopcaddimmint.nim11
-rw-r--r--tests/vm/toverflowopcaddint.nim12
-rwxr-xr-xtests/vm/toverflowopcmulintbin0 -> 159438 bytes
-rw-r--r--tests/vm/toverflowopcmulint.nim11
-rw-r--r--tests/vm/toverflowopcsubimmint.nim10
-rw-r--r--tests/vm/toverflowopcsubint.nim12
6 files changed, 56 insertions, 0 deletions
diff --git a/tests/vm/toverflowopcaddimmint.nim b/tests/vm/toverflowopcaddimmint.nim
new file mode 100644
index 000000000..c36b9ed9b
--- /dev/null
+++ b/tests/vm/toverflowopcaddimmint.nim
@@ -0,0 +1,11 @@
+discard """
+  errormsg: "over- or underflow"
+"""
+
+static:
+  proc p =
+    var
+      x = int64.high
+    discard x + 1
+    assert false
+  p()
diff --git a/tests/vm/toverflowopcaddint.nim b/tests/vm/toverflowopcaddint.nim
new file mode 100644
index 000000000..6d96afc78
--- /dev/null
+++ b/tests/vm/toverflowopcaddint.nim
@@ -0,0 +1,12 @@
+discard """
+  errormsg: "over- or underflow"
+"""
+
+static:
+  proc p =
+    var
+      x = int64.high
+      y = 1
+    discard x + y
+    assert false
+  p()
diff --git a/tests/vm/toverflowopcmulint b/tests/vm/toverflowopcmulint
new file mode 100755
index 000000000..220d9a87c
--- /dev/null
+++ b/tests/vm/toverflowopcmulint
Binary files differdiff --git a/tests/vm/toverflowopcmulint.nim b/tests/vm/toverflowopcmulint.nim
new file mode 100644
index 000000000..81b3234ba
--- /dev/null
+++ b/tests/vm/toverflowopcmulint.nim
@@ -0,0 +1,11 @@
+discard """
+  errormsg: "over- or underflow"
+"""
+
+static:
+  proc p =
+    var
+      x = 1 shl 62
+    discard x * 2
+    assert false
+  p()
diff --git a/tests/vm/toverflowopcsubimmint.nim b/tests/vm/toverflowopcsubimmint.nim
new file mode 100644
index 000000000..09d6f745b
--- /dev/null
+++ b/tests/vm/toverflowopcsubimmint.nim
@@ -0,0 +1,10 @@
+discard """
+  errormsg: "over- or underflow"
+"""
+
+static:
+  proc p =
+    var x = int64.low
+    discard x - 1
+    assert false
+  p()
diff --git a/tests/vm/toverflowopcsubint.nim b/tests/vm/toverflowopcsubint.nim
new file mode 100644
index 000000000..8d114f200
--- /dev/null
+++ b/tests/vm/toverflowopcsubint.nim
@@ -0,0 +1,12 @@
+discard """
+  errormsg: "over- or underflow"
+"""
+
+static:
+  proc p =
+    var
+      x = int64.low
+      y = 1
+    discard x - y
+    assert false
+  p()