diff options
author | Damien George <damien@micropython.org> | 2020-07-26 14:30:56 +1000 |
---|---|---|
committer | Damien George <damien@micropython.org> | 2020-07-26 22:04:31 +1000 |
commit | 0c0cef9870e8215d67c79fefa6582849842001f9 (patch) | |
tree | 3cf521c219c21e1b9bcff607a4fbe64d05f3fb8b /tests/import/mpy_invalid.py | |
parent | 952de5cb77208f519a88752cd5de43337686f7f4 (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.py | 76 |
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() |