summaryrefslogtreecommitdiffstatshomepage
path: root/tests/basics
diff options
context:
space:
mode:
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)