Skip to content

Commit 2ec835f

Browse files
committed
tests: Add more tests for viper 16/32-bit load/store, and ellipsis.
1 parent 59a41e8 commit 2ec835f

10 files changed

+61
-2
lines changed

tests/micropython/viper_misc.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,12 @@ def viper_ret_none() -> int:
1818
return None
1919
print(viper_ret_none())
2020

21+
# return Ellipsis as object
22+
@micropython.viper
23+
def viper_ret_ellipsis() -> object:
24+
return ...
25+
print(viper_ret_ellipsis())
26+
2127
# 3 args
2228
@micropython.viper
2329
def viper_3args(a:int, b:int, c:int) -> int:

tests/micropython/viper_misc.py.exp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
6
22
3
33
0
4+
Ellipsis
45
6
56
7
67
20

tests/micropython/viper_ptr16_load.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,17 @@ def memadd(src:ptr16, n:int) -> int:
1616
sum += src[i]
1717
return sum
1818

19+
@micropython.viper
20+
def memadd2(src_in) -> int:
21+
src = ptr16(src_in)
22+
n = int(len(src_in)) >> 1
23+
sum = 0
24+
for i in range(n):
25+
sum += src[i]
26+
return sum
27+
1928
b = bytearray(b'1234')
2029
print(b)
2130
print(get(b), get1(b))
2231
print(memadd(b, 2))
32+
print(memadd2(b))
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
bytearray(b'1234')
22
12849 13363
33
26212
4+
26212

tests/micropython/viper_ptr16_store.py

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,16 +4,33 @@
44
def set(dest:ptr16, val:int):
55
dest[0] = val
66

7+
@micropython.viper
8+
def set1(dest:ptr16, val:int):
9+
dest[1] = val
10+
711
@micropython.viper
812
def memset(dest:ptr16, val:int, n:int):
913
for i in range(n):
1014
dest[i] = val
1115

16+
@micropython.viper
17+
def memset2(dest_in, val:int):
18+
dest = ptr16(dest_in)
19+
n = int(len(dest_in)) >> 1
20+
for i in range(n):
21+
dest[i] = val
22+
1223
b = bytearray(4)
1324
print(b)
1425

1526
set(b, 0x4242)
1627
print(b)
1728

18-
memset(b, 0x4343, len(b) // 2)
29+
set1(b, 0x4343)
30+
print(b)
31+
32+
memset(b, 0x4444, len(b) // 2)
33+
print(b)
34+
35+
memset2(b, 0x4545)
1936
print(b)
Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
11
bytearray(b'\x00\x00\x00\x00')
22
bytearray(b'BB\x00\x00')
3-
bytearray(b'CCCC')
3+
bytearray(b'BBCC')
4+
bytearray(b'DDDD')
5+
bytearray(b'EEEE')

tests/micropython/viper_ptr32_load.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,17 @@ def memadd(src:ptr32, n:int) -> int:
1515
sum += src[i]
1616
return sum
1717

18+
@micropython.viper
19+
def memadd2(src_in) -> int:
20+
src = ptr32(src_in)
21+
n = int(len(src_in)) >> 2
22+
sum = 0
23+
for i in range(n):
24+
sum += src[i]
25+
return sum
26+
1827
b = bytearray(b'\x12\x12\x12\x12\x34\x34\x34\x34')
1928
print(b)
2029
print(hex(get(b)), hex(get1(b)))
2130
print(hex(memadd(b, 2)))
31+
print(hex(memadd2(b)))
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
bytearray(b'\x12\x12\x12\x124444')
22
0x12121212 0x34343434
33
0x46464646
4+
0x46464646

tests/micropython/viper_ptr32_store.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,13 @@ def memset(dest:ptr32, val:int, n:int):
1313
for i in range(n):
1414
dest[i] = val
1515

16+
@micropython.viper
17+
def memset2(dest_in, val:int):
18+
dest = ptr32(dest_in)
19+
n = int(len(dest_in)) >> 2
20+
for i in range(n):
21+
dest[i] = val
22+
1623
b = bytearray(8)
1724
print(b)
1825

@@ -24,3 +31,6 @@ def memset(dest:ptr32, val:int, n:int):
2431

2532
memset(b, 0x44444444, len(b) // 4)
2633
print(b)
34+
35+
memset2(b, 0x45454545)
36+
print(b)

tests/micropython/viper_ptr32_store.py.exp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,3 +2,4 @@ bytearray(b'\x00\x00\x00\x00\x00\x00\x00\x00')
22
bytearray(b'BBBB\x00\x00\x00\x00')
33
bytearray(b'BBBBCCCC')
44
bytearray(b'DDDDDDDD')
5+
bytearray(b'EEEEEEEE')

0 commit comments

Comments
 (0)