unix/variants/coverage: Add test for manifest freeze_mpy().
This uses the frozentest.mpy that is also used by ports/minimal. Also fixes two bugs that these new tests picked up: - File extension matching in manifestfile.py. - Handling of freeze_mpy results in makemanifest. This work was funded through GitHub Sponsors. Signed-off-by: Jim Mussared <jim.mussared@gmail.com>
This commit is contained in:
parent
6ecdf1a240
commit
920da9c5e3
|
@ -1,2 +1,3 @@
|
|||
freeze_as_str("frzstr")
|
||||
freeze_as_mpy("frzmpy")
|
||||
freeze_mpy("$(MPY_DIR)/tests/frozen")
|
||||
|
|
|
@ -96,3 +96,8 @@ import frzmpy3
|
|||
from frzqstr import returns_NULL
|
||||
|
||||
print(returns_NULL())
|
||||
|
||||
# test for freeze_mpy
|
||||
import frozentest
|
||||
|
||||
print(frozentest.__file__)
|
||||
|
|
|
@ -199,3 +199,13 @@ X
|
|||
'\x1b'
|
||||
b'\x00\xff'
|
||||
NULL
|
||||
uPy
|
||||
a long string that is not interned
|
||||
a string that has unicode αβγ chars
|
||||
b'bytes 1234\x01'
|
||||
123456789
|
||||
0
|
||||
1
|
||||
2
|
||||
3
|
||||
frozentest.py
|
||||
|
|
|
@ -210,9 +210,9 @@ def main():
|
|||
ts_outfile = get_timestamp(outfile)
|
||||
mpy_files.append(outfile)
|
||||
else:
|
||||
assert kind == manifestfile.KIND_FREEZE_MPY
|
||||
mpy_files.append(full_path)
|
||||
ts_outfile = timestamp
|
||||
assert result.kind == manifestfile.KIND_FREEZE_MPY
|
||||
mpy_files.append(result.full_path)
|
||||
ts_outfile = result.timestamp
|
||||
ts_newest = max(ts_newest, ts_outfile)
|
||||
|
||||
# Check if output file needs generating
|
||||
|
|
|
@ -394,28 +394,37 @@ class ManifestFile:
|
|||
`opt` is the optimisation level to pass to mpy-cross when compiling .py
|
||||
to .mpy.
|
||||
"""
|
||||
self._freeze_internal(path, script, exts=(".py", ".mpy"), kind=KIND_FREEZE_AUTO, opt=opt)
|
||||
self._freeze_internal(
|
||||
path,
|
||||
script,
|
||||
exts=(
|
||||
".py",
|
||||
".mpy",
|
||||
),
|
||||
kind=KIND_FREEZE_AUTO,
|
||||
opt=opt,
|
||||
)
|
||||
|
||||
def freeze_as_str(self, path):
|
||||
"""
|
||||
Freeze the given `path` and all .py scripts within it as a string,
|
||||
which will be compiled upon import.
|
||||
"""
|
||||
self._search(path, None, None, exts=(".py"), kind=KIND_FREEZE_AS_STR)
|
||||
self._search(path, None, None, exts=(".py",), kind=KIND_FREEZE_AS_STR)
|
||||
|
||||
def freeze_as_mpy(self, path, script=None, opt=None):
|
||||
"""
|
||||
Freeze the input (see above) by first compiling the .py scripts to
|
||||
.mpy files, then freezing the resulting .mpy files.
|
||||
"""
|
||||
self._freeze_internal(path, script, exts=(".py"), kind=KIND_FREEZE_AS_MPY, opt=opt)
|
||||
self._freeze_internal(path, script, exts=(".py",), kind=KIND_FREEZE_AS_MPY, opt=opt)
|
||||
|
||||
def freeze_mpy(self, path, script=None, opt=None):
|
||||
"""
|
||||
Freeze the input (see above), which must be .mpy files that are
|
||||
frozen directly.
|
||||
"""
|
||||
self._freeze_internal(path, script, exts=(".mpy"), kind=KIND_FREEZE_MPY, opt=opt)
|
||||
self._freeze_internal(path, script, exts=(".mpy",), kind=KIND_FREEZE_MPY, opt=opt)
|
||||
|
||||
|
||||
# Generate a temporary file with a line appended to the end that adds __version__.
|
||||
|
|
Loading…
Reference in New Issue