tests: Add some more tests to improve coverage of py/parse.c.
This commit is contained in:
parent
ae1be76d40
commit
35a759dc1d
|
@ -15,3 +15,7 @@ print(msg[:7], msg[-5:])
|
||||||
|
|
||||||
# check that unknown errno is still rendered
|
# check that unknown errno is still rendered
|
||||||
print(str(OSError(9999)))
|
print(str(OSError(9999)))
|
||||||
|
|
||||||
|
# this tests a failed constant lookup in errno
|
||||||
|
errno = uerrno
|
||||||
|
print(errno.__name__)
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
<class 'int'>
|
<class 'int'>
|
||||||
[Errno ] EIO
|
[Errno ] EIO
|
||||||
9999
|
9999
|
||||||
|
uerrno
|
||||||
|
|
|
@ -29,3 +29,9 @@ print(123 // 7, 123 % 7)
|
||||||
print(-123 // 7, -123 % 7)
|
print(-123 // 7, -123 % 7)
|
||||||
print(123 // -7, 123 % -7)
|
print(123 // -7, 123 % -7)
|
||||||
print(-123 // -7, -123 % -7)
|
print(-123 // -7, -123 % -7)
|
||||||
|
|
||||||
|
# won't fold so an exception can be raised at runtime
|
||||||
|
try:
|
||||||
|
1 << -1
|
||||||
|
except ValueError:
|
||||||
|
print('ValueError')
|
||||||
|
|
|
@ -29,6 +29,10 @@ test_syntax(" a\n")
|
||||||
# malformed integer literal (parser error)
|
# malformed integer literal (parser error)
|
||||||
test_syntax("123z")
|
test_syntax("123z")
|
||||||
|
|
||||||
|
# input doesn't match the grammar (parser error)
|
||||||
|
test_syntax('1 or 2 or')
|
||||||
|
test_syntax('{1:')
|
||||||
|
|
||||||
# can't assign to literals
|
# can't assign to literals
|
||||||
test_syntax("1 = 2")
|
test_syntax("1 = 2")
|
||||||
test_syntax("'' = 1")
|
test_syntax("'' = 1")
|
||||||
|
|
|
@ -9,3 +9,4 @@ c = 'a very long str that will not be interned'
|
||||||
d = b'bytes'
|
d = b'bytes'
|
||||||
e = b'a very long bytes that will not be interned'
|
e = b'a very long bytes that will not be interned'
|
||||||
f = 123456789012345678901234567890
|
f = 123456789012345678901234567890
|
||||||
|
g = 123
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
----------------
|
----------------
|
||||||
[ 4] rule(1) (n=8)
|
[ 4] rule(1) (n=9)
|
||||||
tok(4)
|
tok(4)
|
||||||
[ 4] rule(22) (n=4)
|
[ 4] rule(22) (n=4)
|
||||||
id(i)
|
id(i)
|
||||||
|
@ -25,6 +25,9 @@
|
||||||
[ 11] rule(5) (n=2)
|
[ 11] rule(5) (n=2)
|
||||||
id(f)
|
id(f)
|
||||||
[ 11] literal \.\+
|
[ 11] literal \.\+
|
||||||
|
[ 12] rule(5) (n=2)
|
||||||
|
id(g)
|
||||||
|
int(123)
|
||||||
----------------
|
----------------
|
||||||
File cmdline/cmd_parsetree.py, code block '<module>' (descriptor: \.\+, bytecode @\.\+ bytes)
|
File cmdline/cmd_parsetree.py, code block '<module>' (descriptor: \.\+, bytecode @\.\+ bytes)
|
||||||
Raw bytecode (code_info_size=\\d\+, bytecode_size=\\d\+):
|
Raw bytecode (code_info_size=\\d\+, bytecode_size=\\d\+):
|
||||||
|
@ -42,6 +45,7 @@ arg names:
|
||||||
bc=27 line=9
|
bc=27 line=9
|
||||||
bc=32 line=10
|
bc=32 line=10
|
||||||
bc=37 line=11
|
bc=37 line=11
|
||||||
|
bc=42 line=12
|
||||||
00 BUILD_TUPLE 0
|
00 BUILD_TUPLE 0
|
||||||
02 GET_ITER_STACK
|
02 GET_ITER_STACK
|
||||||
03 FOR_ITER 12
|
03 FOR_ITER 12
|
||||||
|
@ -59,8 +63,10 @@ arg names:
|
||||||
34 STORE_NAME e
|
34 STORE_NAME e
|
||||||
37 LOAD_CONST_OBJ \.\+
|
37 LOAD_CONST_OBJ \.\+
|
||||||
39 STORE_NAME f
|
39 STORE_NAME f
|
||||||
42 LOAD_CONST_NONE
|
42 LOAD_CONST_SMALL_INT 123
|
||||||
43 RETURN_VALUE
|
45 STORE_NAME g
|
||||||
|
48 LOAD_CONST_NONE
|
||||||
|
49 RETURN_VALUE
|
||||||
mem: total=\\d\+, current=\\d\+, peak=\\d\+
|
mem: total=\\d\+, current=\\d\+, peak=\\d\+
|
||||||
stack: \\d\+ out of \\d\+
|
stack: \\d\+ out of \\d\+
|
||||||
GC: total: \\d\+, used: \\d\+, free: \\d\+
|
GC: total: \\d\+, used: \\d\+, free: \\d\+
|
||||||
|
|
Loading…
Reference in New Issue