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:
Damien George 2023-02-09 15:32:15 +11:00
parent d99ebb310c
commit 41ed01f139
4 changed files with 110 additions and 105 deletions

View File

@ -1,3 +1,5 @@
# Miscellaneous viper tests.
import micropython
@ -52,8 +54,7 @@ def viper_4args(a: int, b: int, c: int, d: int) -> int:
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)
@ -73,96 +74,3 @@ def viper_no_annotation(x, y):
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())

View File

@ -3,15 +3,6 @@
0
Ellipsis
6
10
7
20
49994955
1 1
1 3
(0, 1, False, True)
(1, 3)
[1, 3]
[1, 3]
OSError(1,)
1
1

View File

@ -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())

View File

@ -0,0 +1,10 @@
49994955
1 1
1 3
(0, 1, False, True)
(1, 3)
[1, 3]
[1, 3]
OSError(1,)
1
1