summaryrefslogtreecommitdiff
path: root/tests/import/mpy_invalid.py
diff options
context:
space:
mode:
authorDamien George <damien@micropython.org>2020-07-26 14:30:56 +1000
committerDamien George <damien@micropython.org>2020-07-26 22:04:31 +1000
commit0c0cef9870e8215d67c79fefa6582849842001f9 (patch)
tree3cf521c219c21e1b9bcff607a4fbe64d05f3fb8b /tests/import/mpy_invalid.py
parent952de5cb77208f519a88752cd5de43337686f7f4 (diff)
tests: Move .mpy import tests from import/ to micropython/ dir.
These tests are specific to MicroPython so have a better home in the micropython/ test subdir, and putting them here allows them to be run by all targets, not just those that have access to the local filesystem (eg the unix port). Signed-off-by: Damien George <damien@micropython.org>
Diffstat (limited to 'tests/import/mpy_invalid.py')
-rw-r--r--tests/import/mpy_invalid.py76
1 files changed, 0 insertions, 76 deletions
diff --git a/tests/import/mpy_invalid.py b/tests/import/mpy_invalid.py
deleted file mode 100644
index d6d01e7f1..000000000
--- a/tests/import/mpy_invalid.py
+++ /dev/null
@@ -1,76 +0,0 @@
-# test importing of invalid .mpy files
-
-import sys, uio
-
-try:
- uio.IOBase
- import uos
-
- uos.mount
-except (ImportError, AttributeError):
- print("SKIP")
- raise SystemExit
-
-
-class UserFile(uio.IOBase):
- def __init__(self, data):
- self.data = data
- self.pos = 0
-
- def read(self):
- return self.data
-
- def readinto(self, buf):
- n = 0
- while n < len(buf) and self.pos < len(self.data):
- buf[n] = self.data[self.pos]
- n += 1
- self.pos += 1
- return n
-
- def ioctl(self, req, arg):
- return 0
-
-
-class UserFS:
- def __init__(self, files):
- self.files = files
-
- def mount(self, readonly, mksfs):
- pass
-
- def umount(self):
- pass
-
- def stat(self, path):
- if path in self.files:
- return (32768, 0, 0, 0, 0, 0, 0, 0, 0, 0)
- raise OSError
-
- def open(self, path, mode):
- return UserFile(self.files[path])
-
-
-# these are the test .mpy files
-user_files = {
- "/mod0.mpy": b"", # empty file
- "/mod1.mpy": b"M", # too short header
- "/mod2.mpy": b"M\x00\x00\x00", # bad version
- "/mod3.mpy": b"M\x00\x00\x00\x7f", # qstr window too large
-}
-
-# create and mount a user filesystem
-uos.mount(UserFS(user_files), "/userfs")
-sys.path.append("/userfs")
-
-# import .mpy files from the user filesystem
-for i in range(len(user_files)):
- mod = "mod%u" % i
- try:
- __import__(mod)
- except ValueError as er:
- print(mod, "ValueError", er)
-
-# unmount and undo path addition
-uos.umount("/userfs")
-sys.path.pop()