summaryrefslogtreecommitdiffstatshomepage
path: root/tests
diff options
context:
space:
mode:
authorRami Ali <flowergrass@users.noreply.github.com>2016-12-28 15:29:21 +1100
committerDamien George <damien.p.george@gmail.com>2016-12-28 16:11:54 +1100
commit65574f817a949fea2316c335da866c1b8d20f1fb (patch)
tree382e7a3cbfb788f1e60aff9c26776bfaa1e3790c /tests
parentea6a958393eff6999040dd3852d505ae78b96f5b (diff)
downloadmicropython-65574f817a949fea2316c335da866c1b8d20f1fb.tar.gz
micropython-65574f817a949fea2316c335da866c1b8d20f1fb.zip
tests/basics: Add tests to improve coverage of binary.c.
Diffstat (limited to 'tests')
-rw-r--r--tests/basics/array_micropython.py12
-rw-r--r--tests/basics/array_micropython.py.exp2
-rw-r--r--tests/basics/struct1.py4
-rw-r--r--tests/basics/struct_micropython.py20
-rw-r--r--tests/basics/struct_micropython.py.exp1
5 files changed, 39 insertions, 0 deletions
diff --git a/tests/basics/array_micropython.py b/tests/basics/array_micropython.py
new file mode 100644
index 0000000000..8e904bdfea
--- /dev/null
+++ b/tests/basics/array_micropython.py
@@ -0,0 +1,12 @@
+# test MicroPython-specific features of array.array
+import array
+
+# arrays of objects
+a = array.array('O')
+a.append(1)
+print(a[0])
+
+# arrays of pointers
+a = array.array('P')
+a.append(1)
+print(a[0])
diff --git a/tests/basics/array_micropython.py.exp b/tests/basics/array_micropython.py.exp
new file mode 100644
index 0000000000..6ed281c757
--- /dev/null
+++ b/tests/basics/array_micropython.py.exp
@@ -0,0 +1,2 @@
+1
+1
diff --git a/tests/basics/struct1.py b/tests/basics/struct1.py
index 0eae9e3b4f..d89519a2fa 100644
--- a/tests/basics/struct1.py
+++ b/tests/basics/struct1.py
@@ -61,6 +61,10 @@ print(struct.unpack(">q", b"\xf2\x34\x56\x78\x90\x12\x34\x56"))
print(struct.unpack("<I", b"\xff\xff\xff\xff"))
print(struct.unpack("<Q", b"\xff\xff\xff\xff\xff\xff\xff\xff"))
+# check small int overflow
+print(struct.unpack("<i", b'\xff\xff\xff\x7f'))
+print(struct.unpack("<q", b'\xff\xff\xff\xff\xff\xff\xff\x7f'))
+
# network byte order
print(struct.pack('!i', 123))
diff --git a/tests/basics/struct_micropython.py b/tests/basics/struct_micropython.py
new file mode 100644
index 0000000000..e3b0ea5086
--- /dev/null
+++ b/tests/basics/struct_micropython.py
@@ -0,0 +1,20 @@
+# test MicroPython-specific features of struct
+
+try:
+ import ustruct as struct
+except:
+ try:
+ import struct
+ except ImportError:
+ import sys
+ print("SKIP")
+ sys.exit()
+
+class A():
+ pass
+
+# pack and unpack objects
+o = A()
+s = struct.pack("<O", o)
+o2 = struct.unpack("<O", s)
+print(o is o2[0])
diff --git a/tests/basics/struct_micropython.py.exp b/tests/basics/struct_micropython.py.exp
new file mode 100644
index 0000000000..0ca95142bb
--- /dev/null
+++ b/tests/basics/struct_micropython.py.exp
@@ -0,0 +1 @@
+True