mirror of
https://github.com/python/cpython.git
synced 2025-08-16 14:50:43 +00:00
bpo-44131: Test Py_FrozenMain() (GH-26126)
* Add test_frozenmain to test_embed * Add Programs/test_frozenmain.py * Add Programs/freeze_test_frozenmain.py * Add Programs/test_frozenmain.h * Add make regen-test-frozenmain * Add test_frozenmain command to Programs/_testembed * _testembed.c: add error(msg) function
This commit is contained in:
parent
f32c7950e0
commit
eaede0ded7
10 changed files with 203 additions and 32 deletions
|
@ -74,14 +74,12 @@ def makefreeze(base, dict, debug=0, entry_point=None, fail_import=()):
|
|||
# Write a C initializer for a module containing the frozen python code.
|
||||
# The array is called M_<mod>.
|
||||
|
||||
def writecode(outfp, mod, str):
|
||||
outfp.write('unsigned char M_%s[] = {' % mod)
|
||||
for i in range(0, len(str), 16):
|
||||
outfp.write('\n\t')
|
||||
for c in bytes(str[i:i+16]):
|
||||
outfp.write('%d,' % c)
|
||||
outfp.write('\n};\n')
|
||||
|
||||
## def writecode(outfp, mod, str):
|
||||
## outfp.write('unsigned char M_%s[%d] = "%s";\n' % (mod, len(str),
|
||||
## '\\"'.join(map(lambda s: repr(s)[1:-1], str.split('"')))))
|
||||
def writecode(fp, mod, data):
|
||||
print('unsigned char M_%s[] = {' % mod, file=fp)
|
||||
indent = ' ' * 4
|
||||
for i in range(0, len(data), 16):
|
||||
print(indent, file=fp, end='')
|
||||
for c in bytes(data[i:i+16]):
|
||||
print('%d,' % c, file=fp, end='')
|
||||
print('', file=fp)
|
||||
print('};', file=fp)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue