tests/micropython: Split viper_misc test into two files.
So it can run on targets with low memory, eg esp8266. Also enable the viper_4args() sub-test, which is now supported. Signed-off-by: Damien George <damien@micropython.org>
This commit is contained in:
parent
d99ebb310c
commit
41ed01f139
|
@ -1,3 +1,5 @@
|
||||||
|
# Miscellaneous viper tests.
|
||||||
|
|
||||||
import micropython
|
import micropython
|
||||||
|
|
||||||
|
|
||||||
|
@ -52,8 +54,7 @@ def viper_4args(a: int, b: int, c: int, d: int) -> int:
|
||||||
return a + b + c + d
|
return a + b + c + d
|
||||||
|
|
||||||
|
|
||||||
# viper call with 4 args not yet supported
|
print(viper_4args(1, 2, 3, 4))
|
||||||
# print(viper_4args(1, 2, 3, 4))
|
|
||||||
|
|
||||||
|
|
||||||
# a local (should have automatic type int)
|
# a local (should have automatic type int)
|
||||||
|
@ -73,96 +74,3 @@ def viper_no_annotation(x, y):
|
||||||
|
|
||||||
|
|
||||||
print(viper_no_annotation(4, 5))
|
print(viper_no_annotation(4, 5))
|
||||||
|
|
||||||
|
|
||||||
# a for loop
|
|
||||||
@micropython.viper
|
|
||||||
def viper_for(a: int, b: int) -> int:
|
|
||||||
total = 0
|
|
||||||
for x in range(a, b):
|
|
||||||
total += x
|
|
||||||
return total
|
|
||||||
|
|
||||||
|
|
||||||
print(viper_for(10, 10000))
|
|
||||||
|
|
||||||
|
|
||||||
# accessing a global
|
|
||||||
@micropython.viper
|
|
||||||
def viper_access_global():
|
|
||||||
global gl
|
|
||||||
gl = 1
|
|
||||||
return gl
|
|
||||||
|
|
||||||
|
|
||||||
print(viper_access_global(), gl)
|
|
||||||
|
|
||||||
|
|
||||||
# calling print with object and int types
|
|
||||||
@micropython.viper
|
|
||||||
def viper_print(x, y: int):
|
|
||||||
print(x, y + 1)
|
|
||||||
|
|
||||||
|
|
||||||
viper_print(1, 2)
|
|
||||||
|
|
||||||
|
|
||||||
# convert constants to objects in tuple
|
|
||||||
@micropython.viper
|
|
||||||
def viper_tuple_consts(x):
|
|
||||||
return (x, 1, False, True)
|
|
||||||
|
|
||||||
|
|
||||||
print(viper_tuple_consts(0))
|
|
||||||
|
|
||||||
|
|
||||||
# making a tuple from an object and an int
|
|
||||||
@micropython.viper
|
|
||||||
def viper_tuple(x, y: int):
|
|
||||||
return (x, y + 1)
|
|
||||||
|
|
||||||
|
|
||||||
print(viper_tuple(1, 2))
|
|
||||||
|
|
||||||
|
|
||||||
# making a list from an object and an int
|
|
||||||
@micropython.viper
|
|
||||||
def viper_list(x, y: int):
|
|
||||||
return [x, y + 1]
|
|
||||||
|
|
||||||
|
|
||||||
print(viper_list(1, 2))
|
|
||||||
|
|
||||||
|
|
||||||
# making a set from an object and an int
|
|
||||||
@micropython.viper
|
|
||||||
def viper_set(x, y: int):
|
|
||||||
return {x, y + 1}
|
|
||||||
|
|
||||||
|
|
||||||
print(sorted(list(viper_set(1, 2))))
|
|
||||||
|
|
||||||
|
|
||||||
# raising an exception
|
|
||||||
@micropython.viper
|
|
||||||
def viper_raise(x: int):
|
|
||||||
raise OSError(x)
|
|
||||||
|
|
||||||
|
|
||||||
try:
|
|
||||||
viper_raise(1)
|
|
||||||
except OSError as e:
|
|
||||||
print(repr(e))
|
|
||||||
|
|
||||||
|
|
||||||
# calling GC after defining the function
|
|
||||||
@micropython.viper
|
|
||||||
def viper_gc() -> int:
|
|
||||||
return 1
|
|
||||||
|
|
||||||
|
|
||||||
print(viper_gc())
|
|
||||||
import gc
|
|
||||||
|
|
||||||
gc.collect()
|
|
||||||
print(viper_gc())
|
|
||||||
|
|
|
@ -3,15 +3,6 @@
|
||||||
0
|
0
|
||||||
Ellipsis
|
Ellipsis
|
||||||
6
|
6
|
||||||
|
10
|
||||||
7
|
7
|
||||||
20
|
20
|
||||||
49994955
|
|
||||||
1 1
|
|
||||||
1 3
|
|
||||||
(0, 1, False, True)
|
|
||||||
(1, 3)
|
|
||||||
[1, 3]
|
|
||||||
[1, 3]
|
|
||||||
OSError(1,)
|
|
||||||
1
|
|
||||||
1
|
|
||||||
|
|
|
@ -0,0 +1,96 @@
|
||||||
|
# Miscellaneous viper tests.
|
||||||
|
|
||||||
|
import micropython
|
||||||
|
|
||||||
|
|
||||||
|
# a for loop
|
||||||
|
@micropython.viper
|
||||||
|
def viper_for(a: int, b: int) -> int:
|
||||||
|
total = 0
|
||||||
|
for x in range(a, b):
|
||||||
|
total += x
|
||||||
|
return total
|
||||||
|
|
||||||
|
|
||||||
|
print(viper_for(10, 10000))
|
||||||
|
|
||||||
|
|
||||||
|
# accessing a global
|
||||||
|
@micropython.viper
|
||||||
|
def viper_access_global():
|
||||||
|
global gl
|
||||||
|
gl = 1
|
||||||
|
return gl
|
||||||
|
|
||||||
|
|
||||||
|
print(viper_access_global(), gl)
|
||||||
|
|
||||||
|
|
||||||
|
# calling print with object and int types
|
||||||
|
@micropython.viper
|
||||||
|
def viper_print(x, y: int):
|
||||||
|
print(x, y + 1)
|
||||||
|
|
||||||
|
|
||||||
|
viper_print(1, 2)
|
||||||
|
|
||||||
|
|
||||||
|
# convert constants to objects in tuple
|
||||||
|
@micropython.viper
|
||||||
|
def viper_tuple_consts(x):
|
||||||
|
return (x, 1, False, True)
|
||||||
|
|
||||||
|
|
||||||
|
print(viper_tuple_consts(0))
|
||||||
|
|
||||||
|
|
||||||
|
# making a tuple from an object and an int
|
||||||
|
@micropython.viper
|
||||||
|
def viper_tuple(x, y: int):
|
||||||
|
return (x, y + 1)
|
||||||
|
|
||||||
|
|
||||||
|
print(viper_tuple(1, 2))
|
||||||
|
|
||||||
|
|
||||||
|
# making a list from an object and an int
|
||||||
|
@micropython.viper
|
||||||
|
def viper_list(x, y: int):
|
||||||
|
return [x, y + 1]
|
||||||
|
|
||||||
|
|
||||||
|
print(viper_list(1, 2))
|
||||||
|
|
||||||
|
|
||||||
|
# making a set from an object and an int
|
||||||
|
@micropython.viper
|
||||||
|
def viper_set(x, y: int):
|
||||||
|
return {x, y + 1}
|
||||||
|
|
||||||
|
|
||||||
|
print(sorted(list(viper_set(1, 2))))
|
||||||
|
|
||||||
|
|
||||||
|
# raising an exception
|
||||||
|
@micropython.viper
|
||||||
|
def viper_raise(x: int):
|
||||||
|
raise OSError(x)
|
||||||
|
|
||||||
|
|
||||||
|
try:
|
||||||
|
viper_raise(1)
|
||||||
|
except OSError as e:
|
||||||
|
print(repr(e))
|
||||||
|
|
||||||
|
|
||||||
|
# calling GC after defining the function
|
||||||
|
@micropython.viper
|
||||||
|
def viper_gc() -> int:
|
||||||
|
return 1
|
||||||
|
|
||||||
|
|
||||||
|
print(viper_gc())
|
||||||
|
import gc
|
||||||
|
|
||||||
|
gc.collect()
|
||||||
|
print(viper_gc())
|
|
@ -0,0 +1,10 @@
|
||||||
|
49994955
|
||||||
|
1 1
|
||||||
|
1 3
|
||||||
|
(0, 1, False, True)
|
||||||
|
(1, 3)
|
||||||
|
[1, 3]
|
||||||
|
[1, 3]
|
||||||
|
OSError(1,)
|
||||||
|
1
|
||||||
|
1
|
Loading…
Reference in New Issue