summaryrefslogtreecommitdiffstatshomepage
path: root/tests/basics
diff options
context:
space:
mode:
authorDamien George <damien.p.george@gmail.com>2015-01-29 00:44:11 +0000
committerDamien George <damien.p.george@gmail.com>2015-01-29 00:44:11 +0000
commit12c66be2b8baab093c7be5e2108d2767c9779a69 (patch)
tree7db0c4259eaae84cea25d79b3856fc08d863cef1 /tests/basics
parent81e70a88a7a4adb33c4a5d049c83f42d94e6332b (diff)
downloadmicropython-12c66be2b8baab093c7be5e2108d2767c9779a69.tar.gz
micropython-12c66be2b8baab093c7be5e2108d2767c9779a69.zip
tests: Add some tests to improve coverage.
Used gcov to find some parts of vm.c, runtime.c, obj.c that were not covered by any tests. Still need to use gcov more thoroughly.
Diffstat (limited to 'tests/basics')
-rw-r--r--tests/basics/builtin_hash.py11
-rw-r--r--tests/basics/del_global.py18
-rw-r--r--tests/basics/del_name.py2
-rw-r--r--tests/basics/fun_largestate.py4
-rw-r--r--tests/basics/int1.py3
-rw-r--r--tests/basics/int_small.py9
-rw-r--r--tests/basics/unary_op.py5
7 files changed, 51 insertions, 1 deletions
diff --git a/tests/basics/builtin_hash.py b/tests/basics/builtin_hash.py
index c4c7019b47..0abfe980e1 100644
--- a/tests/basics/builtin_hash.py
+++ b/tests/basics/builtin_hash.py
@@ -1,5 +1,16 @@
# test builtin hash function
+print(hash(False))
+print(hash(True))
+print({():1}) # hash tuple
+print({1 << 66:1}) # hash big int
+print(hash in {hash:1}) # hash function
+
+try:
+ hash([])
+except TypeError:
+ print("TypeError")
+
class A:
def __hash__(self):
return 123
diff --git a/tests/basics/del_global.py b/tests/basics/del_global.py
new file mode 100644
index 0000000000..24ecec8e84
--- /dev/null
+++ b/tests/basics/del_global.py
@@ -0,0 +1,18 @@
+# del global
+
+def do_del():
+ global x
+ del x
+
+x = 1
+print(x)
+do_del()
+try:
+ print(x)
+except NameError:
+ print("NameError")
+try:
+ do_del()
+except: # NameError:
+ # FIXME uPy returns KeyError for this
+ print("NameError")
diff --git a/tests/basics/del_name.py b/tests/basics/del_name.py
index f75a2f5dc6..c92be54d3b 100644
--- a/tests/basics/del_name.py
+++ b/tests/basics/del_name.py
@@ -1,4 +1,4 @@
-# del global
+# del name
x = 1
print(x)
diff --git a/tests/basics/fun_largestate.py b/tests/basics/fun_largestate.py
index c83f730dcb..f13619295f 100644
--- a/tests/basics/fun_largestate.py
+++ b/tests/basics/fun_largestate.py
@@ -129,5 +129,9 @@ def f():
x125 = 1
x126 = 1
+f()
+
def g():
x = [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,]
+
+g()
diff --git a/tests/basics/int1.py b/tests/basics/int1.py
index 01e0b0b407..89d4fd9d4b 100644
--- a/tests/basics/int1.py
+++ b/tests/basics/int1.py
@@ -1,3 +1,6 @@
+print(int(False))
+print(int(True))
+
print(int(0))
print(int(1))
print(int(+1))
diff --git a/tests/basics/int_small.py b/tests/basics/int_small.py
index 1b2c983e23..496e830d26 100644
--- a/tests/basics/int_small.py
+++ b/tests/basics/int_small.py
@@ -49,6 +49,15 @@ print(a)
# This would overflow
#a -= 1
+# negative shifts are not allowed
+try:
+ a << -1
+except ValueError:
+ print("ValueError")
+try:
+ a >> -1
+except ValueError:
+ print("ValueError")
# Shifts to big amounts are undefined behavior in C and is CPU-specific
diff --git a/tests/basics/unary_op.py b/tests/basics/unary_op.py
index 9846285d55..3084c273e7 100644
--- a/tests/basics/unary_op.py
+++ b/tests/basics/unary_op.py
@@ -1,3 +1,8 @@
+x = 1
+print(+x)
+print(-x)
+print(~x)
+
print(not None)
print(not False)
print(not True)