tests: Add a coverage test for printing the parse-tree.
This commit is contained in:
parent
ebb8413178
commit
cdec7ba30e
|
@ -0,0 +1,11 @@
|
||||||
|
# cmdline: -v -v -v
|
||||||
|
# test printing of the parse-tree
|
||||||
|
|
||||||
|
for i in ():
|
||||||
|
pass
|
||||||
|
a = None
|
||||||
|
b = 'str'
|
||||||
|
c = 'a very long str that will not be interned'
|
||||||
|
d = b'bytes'
|
||||||
|
e = b'a very long bytes that will not be interned'
|
||||||
|
f = 123456789012345678901234567890
|
|
@ -0,0 +1,67 @@
|
||||||
|
----------------
|
||||||
|
[ 4] rule(2) (n=8)
|
||||||
|
tok(5)
|
||||||
|
[ 4] rule(78) (n=4)
|
||||||
|
id(i)
|
||||||
|
[ 4] rule(131) (n=1)
|
||||||
|
NULL
|
||||||
|
[ 5] rule(42) (n=0)
|
||||||
|
NULL
|
||||||
|
[ 6] rule(32) (n=2)
|
||||||
|
id(a)
|
||||||
|
tok(15)
|
||||||
|
[ 7] rule(32) (n=2)
|
||||||
|
id(b)
|
||||||
|
str(str)
|
||||||
|
[ 8] rule(32) (n=2)
|
||||||
|
id(c)
|
||||||
|
[ 8] literal str(a very long str that will not be interned)
|
||||||
|
[ 9] rule(32) (n=2)
|
||||||
|
id(d)
|
||||||
|
bytes(bytes)
|
||||||
|
[ 10] rule(32) (n=2)
|
||||||
|
id(e)
|
||||||
|
[ 10] literal bytes(a very long bytes that will not be interned)
|
||||||
|
[ 11] rule(32) (n=2)
|
||||||
|
id(f)
|
||||||
|
[ 11] literal \.\+
|
||||||
|
----------------
|
||||||
|
File cmdline/cmd_parsetree.py, code block '<module>' (descriptor: \.\+, bytecode @\.\+ bytes)
|
||||||
|
Raw bytecode (code_info_size=\\d\+, bytecode_size=\\d\+):
|
||||||
|
########
|
||||||
|
\.\+5b
|
||||||
|
arg names:
|
||||||
|
(N_STATE 2)
|
||||||
|
(N_EXC_STACK 0)
|
||||||
|
bc=-1 line=1
|
||||||
|
bc=0 line=4
|
||||||
|
bc=9 line=5
|
||||||
|
bc=12 line=6
|
||||||
|
bc=16 line=7
|
||||||
|
bc=22 line=8
|
||||||
|
bc=27 line=9
|
||||||
|
bc=32 line=10
|
||||||
|
bc=37 line=11
|
||||||
|
00 BUILD_TUPLE 0
|
||||||
|
02 GET_ITER
|
||||||
|
03 FOR_ITER 12
|
||||||
|
06 STORE_NAME i
|
||||||
|
09 JUMP 3
|
||||||
|
12 LOAD_CONST_NONE
|
||||||
|
13 STORE_NAME a
|
||||||
|
16 LOAD_CONST_STRING 'str'
|
||||||
|
19 STORE_NAME b
|
||||||
|
22 LOAD_CONST_OBJ \.\+
|
||||||
|
24 STORE_NAME c
|
||||||
|
27 LOAD_CONST_OBJ \.\+
|
||||||
|
29 STORE_NAME d
|
||||||
|
32 LOAD_CONST_OBJ \.\+
|
||||||
|
34 STORE_NAME e
|
||||||
|
37 LOAD_CONST_OBJ \.\+
|
||||||
|
39 STORE_NAME f
|
||||||
|
42 LOAD_CONST_NONE
|
||||||
|
43 RETURN_VALUE
|
||||||
|
mem: total=\\d\+, current=\\d\+, peak=\\d\+
|
||||||
|
stack: \\d\+ out of \\d\+
|
||||||
|
GC: total: \\d\+, used: \\d\+, free: \\d\+
|
||||||
|
No. of 1-blocks: \\d\+, 2-blocks: \\d\+, max blk sz: \\d\+, max free sz: \\d\+
|
|
@ -0,0 +1,5 @@
|
||||||
|
try:
|
||||||
|
extra_coverage
|
||||||
|
print('coverage')
|
||||||
|
except NameError:
|
||||||
|
print('no')
|
|
@ -208,6 +208,7 @@ def run_tests(pyb, tests, args):
|
||||||
|
|
||||||
upy_byteorder = run_micropython(pyb, args, 'feature_check/byteorder.py')
|
upy_byteorder = run_micropython(pyb, args, 'feature_check/byteorder.py')
|
||||||
has_complex = run_micropython(pyb, args, 'feature_check/complex.py') == b'complex\n'
|
has_complex = run_micropython(pyb, args, 'feature_check/complex.py') == b'complex\n'
|
||||||
|
has_coverage = run_micropython(pyb, args, 'feature_check/coverage.py') == b'coverage\n'
|
||||||
cpy_byteorder = subprocess.check_output([CPYTHON3, 'feature_check/byteorder.py'])
|
cpy_byteorder = subprocess.check_output([CPYTHON3, 'feature_check/byteorder.py'])
|
||||||
skip_endian = (upy_byteorder != cpy_byteorder)
|
skip_endian = (upy_byteorder != cpy_byteorder)
|
||||||
|
|
||||||
|
@ -225,6 +226,9 @@ def run_tests(pyb, tests, args):
|
||||||
skip_tests.add('float/true_value.py')
|
skip_tests.add('float/true_value.py')
|
||||||
skip_tests.add('float/types.py')
|
skip_tests.add('float/types.py')
|
||||||
|
|
||||||
|
if not has_coverage:
|
||||||
|
skip_tests.add('cmdline/cmd_parsetree.py')
|
||||||
|
|
||||||
# Some tests shouldn't be run on a PC
|
# Some tests shouldn't be run on a PC
|
||||||
if pyb is None:
|
if pyb is None:
|
||||||
# unix build does not have the GIL so can't run thread mutation tests
|
# unix build does not have the GIL so can't run thread mutation tests
|
||||||
|
|
Loading…
Reference in New Issue