summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorDamien George <damien.p.george@gmail.com>2015-10-13 18:24:36 +0100
committerDamien George <damien.p.george@gmail.com>2015-10-13 18:24:36 +0100
commit2ec835f572cdee78c6c1ffd300bd159e0e35598a (patch)
tree2e9c8abcec52ecbcb279261337292528b50bc198
parent59a41e8fcdb80c1ee025ba782c69a8077b214602 (diff)
downloadmicropython-2ec835f572cdee78c6c1ffd300bd159e0e35598a.tar.gz
micropython-2ec835f572cdee78c6c1ffd300bd159e0e35598a.zip
tests: Add more tests for viper 16/32-bit load/store, and ellipsis.
-rw-r--r--tests/micropython/viper_misc.py6
-rw-r--r--tests/micropython/viper_misc.py.exp1
-rw-r--r--tests/micropython/viper_ptr16_load.py10
-rw-r--r--tests/micropython/viper_ptr16_load.py.exp1
-rw-r--r--tests/micropython/viper_ptr16_store.py19
-rw-r--r--tests/micropython/viper_ptr16_store.py.exp4
-rw-r--r--tests/micropython/viper_ptr32_load.py10
-rw-r--r--tests/micropython/viper_ptr32_load.py.exp1
-rw-r--r--tests/micropython/viper_ptr32_store.py10
-rw-r--r--tests/micropython/viper_ptr32_store.py.exp1
10 files changed, 61 insertions, 2 deletions
diff --git a/tests/micropython/viper_misc.py b/tests/micropython/viper_misc.py
index e8b96b9c14..8bf6cc638f 100644
--- a/tests/micropython/viper_misc.py
+++ b/tests/micropython/viper_misc.py
@@ -18,6 +18,12 @@ def viper_ret_none() -> int:
return None
print(viper_ret_none())
+# return Ellipsis as object
+@micropython.viper
+def viper_ret_ellipsis() -> object:
+ return ...
+print(viper_ret_ellipsis())
+
# 3 args
@micropython.viper
def viper_3args(a:int, b:int, c:int) -> int:
diff --git a/tests/micropython/viper_misc.py.exp b/tests/micropython/viper_misc.py.exp
index 7859d39e53..4800050d15 100644
--- a/tests/micropython/viper_misc.py.exp
+++ b/tests/micropython/viper_misc.py.exp
@@ -1,6 +1,7 @@
6
3
0
+Ellipsis
6
7
20
diff --git a/tests/micropython/viper_ptr16_load.py b/tests/micropython/viper_ptr16_load.py
index 81a413c406..0b865eb9e7 100644
--- a/tests/micropython/viper_ptr16_load.py
+++ b/tests/micropython/viper_ptr16_load.py
@@ -16,7 +16,17 @@ def memadd(src:ptr16, n:int) -> int:
sum += src[i]
return sum
+@micropython.viper
+def memadd2(src_in) -> int:
+ src = ptr16(src_in)
+ n = int(len(src_in)) >> 1
+ sum = 0
+ for i in range(n):
+ sum += src[i]
+ return sum
+
b = bytearray(b'1234')
print(b)
print(get(b), get1(b))
print(memadd(b, 2))
+print(memadd2(b))
diff --git a/tests/micropython/viper_ptr16_load.py.exp b/tests/micropython/viper_ptr16_load.py.exp
index caf4754893..2d86b974c4 100644
--- a/tests/micropython/viper_ptr16_load.py.exp
+++ b/tests/micropython/viper_ptr16_load.py.exp
@@ -1,3 +1,4 @@
bytearray(b'1234')
12849 13363
26212
+26212
diff --git a/tests/micropython/viper_ptr16_store.py b/tests/micropython/viper_ptr16_store.py
index 94cde2bc65..5a5f25d170 100644
--- a/tests/micropython/viper_ptr16_store.py
+++ b/tests/micropython/viper_ptr16_store.py
@@ -5,15 +5,32 @@ def set(dest:ptr16, val:int):
dest[0] = val
@micropython.viper
+def set1(dest:ptr16, val:int):
+ dest[1] = val
+
+@micropython.viper
def memset(dest:ptr16, val:int, n:int):
for i in range(n):
dest[i] = val
+@micropython.viper
+def memset2(dest_in, val:int):
+ dest = ptr16(dest_in)
+ n = int(len(dest_in)) >> 1
+ for i in range(n):
+ dest[i] = val
+
b = bytearray(4)
print(b)
set(b, 0x4242)
print(b)
-memset(b, 0x4343, len(b) // 2)
+set1(b, 0x4343)
+print(b)
+
+memset(b, 0x4444, len(b) // 2)
+print(b)
+
+memset2(b, 0x4545)
print(b)
diff --git a/tests/micropython/viper_ptr16_store.py.exp b/tests/micropython/viper_ptr16_store.py.exp
index 639a43f8f6..31a6dfbe33 100644
--- a/tests/micropython/viper_ptr16_store.py.exp
+++ b/tests/micropython/viper_ptr16_store.py.exp
@@ -1,3 +1,5 @@
bytearray(b'\x00\x00\x00\x00')
bytearray(b'BB\x00\x00')
-bytearray(b'CCCC')
+bytearray(b'BBCC')
+bytearray(b'DDDD')
+bytearray(b'EEEE')
diff --git a/tests/micropython/viper_ptr32_load.py b/tests/micropython/viper_ptr32_load.py
index d552b9df67..4d8b3846de 100644
--- a/tests/micropython/viper_ptr32_load.py
+++ b/tests/micropython/viper_ptr32_load.py
@@ -15,7 +15,17 @@ def memadd(src:ptr32, n:int) -> int:
sum += src[i]
return sum
+@micropython.viper
+def memadd2(src_in) -> int:
+ src = ptr32(src_in)
+ n = int(len(src_in)) >> 2
+ sum = 0
+ for i in range(n):
+ sum += src[i]
+ return sum
+
b = bytearray(b'\x12\x12\x12\x12\x34\x34\x34\x34')
print(b)
print(hex(get(b)), hex(get1(b)))
print(hex(memadd(b, 2)))
+print(hex(memadd2(b)))
diff --git a/tests/micropython/viper_ptr32_load.py.exp b/tests/micropython/viper_ptr32_load.py.exp
index e7ce2d972d..7ea37f1ca7 100644
--- a/tests/micropython/viper_ptr32_load.py.exp
+++ b/tests/micropython/viper_ptr32_load.py.exp
@@ -1,3 +1,4 @@
bytearray(b'\x12\x12\x12\x124444')
0x12121212 0x34343434
0x46464646
+0x46464646
diff --git a/tests/micropython/viper_ptr32_store.py b/tests/micropython/viper_ptr32_store.py
index b63bac9ee3..973086e4ad 100644
--- a/tests/micropython/viper_ptr32_store.py
+++ b/tests/micropython/viper_ptr32_store.py
@@ -13,6 +13,13 @@ def memset(dest:ptr32, val:int, n:int):
for i in range(n):
dest[i] = val
+@micropython.viper
+def memset2(dest_in, val:int):
+ dest = ptr32(dest_in)
+ n = int(len(dest_in)) >> 2
+ for i in range(n):
+ dest[i] = val
+
b = bytearray(8)
print(b)
@@ -24,3 +31,6 @@ print(b)
memset(b, 0x44444444, len(b) // 4)
print(b)
+
+memset2(b, 0x45454545)
+print(b)
diff --git a/tests/micropython/viper_ptr32_store.py.exp b/tests/micropython/viper_ptr32_store.py.exp
index 13b9f418f8..de8d0ec572 100644
--- a/tests/micropython/viper_ptr32_store.py.exp
+++ b/tests/micropython/viper_ptr32_store.py.exp
@@ -2,3 +2,4 @@ bytearray(b'\x00\x00\x00\x00\x00\x00\x00\x00')
bytearray(b'BBBB\x00\x00\x00\x00')
bytearray(b'BBBBCCCC')
bytearray(b'DDDDDDDD')
+bytearray(b'EEEEEEEE')