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
|
||||
print(str(OSError(9999)))
|
||||
|
||||
# this tests a failed constant lookup in errno
|
||||
errno = uerrno
|
||||
print(errno.__name__)
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
<class 'int'>
|
||||
[Errno ] EIO
|
||||
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)
|
||||
|
||||
# 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)
|
||||
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
|
||||
test_syntax("1 = 2")
|
||||
test_syntax("'' = 1")
|
||||
|
|
|
@ -9,3 +9,4 @@ 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
|
||||
g = 123
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
----------------
|
||||
[ 4] rule(1) (n=8)
|
||||
[ 4] rule(1) (n=9)
|
||||
tok(4)
|
||||
[ 4] rule(22) (n=4)
|
||||
id(i)
|
||||
|
@ -25,6 +25,9 @@
|
|||
[ 11] rule(5) (n=2)
|
||||
id(f)
|
||||
[ 11] literal \.\+
|
||||
[ 12] rule(5) (n=2)
|
||||
id(g)
|
||||
int(123)
|
||||
----------------
|
||||
File cmdline/cmd_parsetree.py, code block '<module>' (descriptor: \.\+, bytecode @\.\+ bytes)
|
||||
Raw bytecode (code_info_size=\\d\+, bytecode_size=\\d\+):
|
||||
|
@ -42,6 +45,7 @@ arg names:
|
|||
bc=27 line=9
|
||||
bc=32 line=10
|
||||
bc=37 line=11
|
||||
bc=42 line=12
|
||||
00 BUILD_TUPLE 0
|
||||
02 GET_ITER_STACK
|
||||
03 FOR_ITER 12
|
||||
|
@ -59,8 +63,10 @@ arg names:
|
|||
34 STORE_NAME e
|
||||
37 LOAD_CONST_OBJ \.\+
|
||||
39 STORE_NAME f
|
||||
42 LOAD_CONST_NONE
|
||||
43 RETURN_VALUE
|
||||
42 LOAD_CONST_SMALL_INT 123
|
||||
45 STORE_NAME g
|
||||
48 LOAD_CONST_NONE
|
||||
49 RETURN_VALUE
|
||||
mem: total=\\d\+, current=\\d\+, peak=\\d\+
|
||||
stack: \\d\+ out of \\d\+
|
||||
GC: total: \\d\+, used: \\d\+, free: \\d\+
|
||||
|
|
Loading…
Reference in New Issue