summaryrefslogtreecommitdiff
path: root/tests/micropython/heapalloc_bytesio2.py
diff options
context:
space:
mode:
authorPaul Sokolovsky <pfalcon@users.sourceforge.net>2017-06-05 23:54:21 +0300
committerPaul Sokolovsky <pfalcon@users.sourceforge.net>2017-06-09 17:33:01 +0300
commit07241cd37a732e4219257e6b2fc67a84085b37f6 (patch)
tree7c41bb31dfaffd45e11dd0ed21a52cb145b71542 /tests/micropython/heapalloc_bytesio2.py
parentb24ccfc639416c9427640b5f38e64a1476c1c704 (diff)
py/objstringio: If created from immutable object, follow copy on write policy.
Don't create copy of immutable object's contents until .write() is called on BytesIO.
Diffstat (limited to 'tests/micropython/heapalloc_bytesio2.py')
-rw-r--r--tests/micropython/heapalloc_bytesio2.py20
1 files changed, 20 insertions, 0 deletions
diff --git a/tests/micropython/heapalloc_bytesio2.py b/tests/micropython/heapalloc_bytesio2.py
new file mode 100644
index 000000000..cd76f5807
--- /dev/null
+++ b/tests/micropython/heapalloc_bytesio2.py
@@ -0,0 +1,20 @@
+# Creating BytesIO from immutable object should not immediately
+# copy its content.
+try:
+ import uio
+ import micropython
+ micropython.mem_total
+except (ImportError, AttributeError):
+ print("SKIP")
+ raise SystemExit
+
+
+data = b"1234" * 256
+
+before = micropython.mem_total()
+
+buf = uio.BytesIO(data)
+
+after = micropython.mem_total()
+
+print(after - before < len(data))