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_str("frzstr")
|
||||||
freeze_as_mpy("frzmpy")
|
freeze_as_mpy("frzmpy")
|
||||||
|
freeze_mpy("$(MPY_DIR)/tests/frozen")
|
||||||
|
@ -96,3 +96,8 @@ import frzmpy3
|
|||||||
from frzqstr import returns_NULL
|
from frzqstr import returns_NULL
|
||||||
|
|
||||||
print(returns_NULL())
|
print(returns_NULL())
|
||||||
|
|
||||||
|
# test for freeze_mpy
|
||||||
|
import frozentest
|
||||||
|
|
||||||
|
print(frozentest.__file__)
|
||||||
|
@ -199,3 +199,13 @@ X
|
|||||||
'\x1b'
|
'\x1b'
|
||||||
b'\x00\xff'
|
b'\x00\xff'
|
||||||
NULL
|
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)
|
ts_outfile = get_timestamp(outfile)
|
||||||
mpy_files.append(outfile)
|
mpy_files.append(outfile)
|
||||||
else:
|
else:
|
||||||
assert kind == manifestfile.KIND_FREEZE_MPY
|
assert result.kind == manifestfile.KIND_FREEZE_MPY
|
||||||
mpy_files.append(full_path)
|
mpy_files.append(result.full_path)
|
||||||
ts_outfile = timestamp
|
ts_outfile = result.timestamp
|
||||||
ts_newest = max(ts_newest, ts_outfile)
|
ts_newest = max(ts_newest, ts_outfile)
|
||||||
|
|
||||||
# Check if output file needs generating
|
# 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
|
`opt` is the optimisation level to pass to mpy-cross when compiling .py
|
||||||
to .mpy.
|
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):
|
def freeze_as_str(self, path):
|
||||||
"""
|
"""
|
||||||
Freeze the given `path` and all .py scripts within it as a string,
|
Freeze the given `path` and all .py scripts within it as a string,
|
||||||
which will be compiled upon import.
|
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):
|
def freeze_as_mpy(self, path, script=None, opt=None):
|
||||||
"""
|
"""
|
||||||
Freeze the input (see above) by first compiling the .py scripts to
|
Freeze the input (see above) by first compiling the .py scripts to
|
||||||
.mpy files, then freezing the resulting .mpy files.
|
.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):
|
def freeze_mpy(self, path, script=None, opt=None):
|
||||||
"""
|
"""
|
||||||
Freeze the input (see above), which must be .mpy files that are
|
Freeze the input (see above), which must be .mpy files that are
|
||||||
frozen directly.
|
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__.
|
# Generate a temporary file with a line appended to the end that adds __version__.
|
||||||
|
Loading…
Reference in New Issue
Block a user