Skip to content

Commit 49307a7

Browse files
committed
Python: Add 3-only library tests.
1 parent 0558b58 commit 49307a7

File tree

138 files changed

+3118
-0
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

138 files changed

+3118
-0
lines changed
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
| 8 | ControlFlowNode for ExceptStmt | builtin-class AttributeError |
2+
| 10 | ControlFlowNode for ExceptStmt | builtin-class IndexError |
3+
| 12 | ControlFlowNode for ExceptStmt | builtin-class KeyError |
4+
| 14 | ControlFlowNode for ExceptStmt | builtin-class BaseException |
5+
| 23 | ControlFlowNode for ExceptStmt | builtin-class AttributeError |
6+
| 25 | ControlFlowNode for ExceptStmt | builtin-class IndexError |
7+
| 27 | ControlFlowNode for ExceptStmt | builtin-class KeyError |
8+
| 38 | ControlFlowNode for ExceptStmt | builtin-class AttributeError |
9+
| 40 | ControlFlowNode for ExceptStmt | builtin-class IndexError |
10+
| 42 | ControlFlowNode for ExceptStmt | builtin-class KeyError |
11+
| 57 | ControlFlowNode for ExceptStmt | builtin-class OSError |
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
2+
import python
3+
4+
from ExceptFlowNode ex, Object obj
5+
where ex.handledException(obj, _, _)
6+
select ex.getLocation().getStartLine(), ex.toString(), obj.toString()
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
| 4 | ControlFlowNode for Subscript | builtin-class IndexError |
2+
| 4 | ControlFlowNode for Subscript | builtin-class KeyError |
3+
| 5 | ControlFlowNode for Attribute | builtin-class AttributeError |
4+
| 7 | ControlFlowNode for Raise | builtin-class Exception |
5+
| 19 | ControlFlowNode for Subscript | builtin-class IndexError |
6+
| 19 | ControlFlowNode for Subscript | builtin-class KeyError |
7+
| 20 | ControlFlowNode for Attribute | builtin-class AttributeError |
8+
| 22 | ControlFlowNode for Raise | builtin-class Exception |
9+
| 30 | ControlFlowNode for Pass | builtin-class Exception |
10+
| 34 | ControlFlowNode for Subscript | builtin-class IndexError |
11+
| 34 | ControlFlowNode for Subscript | builtin-class KeyError |
12+
| 35 | ControlFlowNode for Attribute | builtin-class AttributeError |
13+
| 37 | ControlFlowNode for Raise | builtin-class Exception |
14+
| 53 | ControlFlowNode for Attribute() | builtin-class OSError |
15+
| 54 | ControlFlowNode for Attribute() | builtin-class OSError |
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
2+
import python
3+
4+
from RaisingNode r
5+
select r.getLocation().getStartLine(), r.toString(), r.getARaisedType().toString()
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
| 4 | ControlFlowNode for Subscript | 10 | ControlFlowNode for ExceptStmt |
2+
| 4 | ControlFlowNode for Subscript | 12 | ControlFlowNode for ExceptStmt |
3+
| 5 | ControlFlowNode for Attribute | 8 | ControlFlowNode for ExceptStmt |
4+
| 6 | ControlFlowNode for a() | 8 | ControlFlowNode for ExceptStmt |
5+
| 6 | ControlFlowNode for a() | 10 | ControlFlowNode for ExceptStmt |
6+
| 6 | ControlFlowNode for a() | 12 | ControlFlowNode for ExceptStmt |
7+
| 6 | ControlFlowNode for a() | 14 | ControlFlowNode for ExceptStmt |
8+
| 7 | ControlFlowNode for Raise | 14 | ControlFlowNode for ExceptStmt |
9+
| 19 | ControlFlowNode for Subscript | 25 | ControlFlowNode for ExceptStmt |
10+
| 19 | ControlFlowNode for Subscript | 27 | ControlFlowNode for ExceptStmt |
11+
| 20 | ControlFlowNode for Attribute | 23 | ControlFlowNode for ExceptStmt |
12+
| 21 | ControlFlowNode for a() | 23 | ControlFlowNode for ExceptStmt |
13+
| 21 | ControlFlowNode for a() | 25 | ControlFlowNode for ExceptStmt |
14+
| 21 | ControlFlowNode for a() | 27 | ControlFlowNode for ExceptStmt |
15+
| 21 | ControlFlowNode for a() | 30 | ControlFlowNode for Pass |
16+
| 22 | ControlFlowNode for Raise | 30 | ControlFlowNode for Pass |
17+
| 34 | ControlFlowNode for Subscript | 40 | ControlFlowNode for ExceptStmt |
18+
| 34 | ControlFlowNode for Subscript | 42 | ControlFlowNode for ExceptStmt |
19+
| 35 | ControlFlowNode for Attribute | 38 | ControlFlowNode for ExceptStmt |
20+
| 36 | ControlFlowNode for a() | 38 | ControlFlowNode for ExceptStmt |
21+
| 36 | ControlFlowNode for a() | 40 | ControlFlowNode for ExceptStmt |
22+
| 36 | ControlFlowNode for a() | 42 | ControlFlowNode for ExceptStmt |
23+
| 53 | ControlFlowNode for Attribute() | 57 | ControlFlowNode for ExceptStmt |
24+
| 54 | ControlFlowNode for Attribute() | 57 | ControlFlowNode for ExceptStmt |
25+
| 56 | ControlFlowNode for Attribute() | 57 | ControlFlowNode for ExceptStmt |
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
2+
import python
3+
4+
from ControlFlowNode r, ControlFlowNode s
5+
where s = r.getAnExceptionalSuccessor() and
6+
not r.(RaisingNode).unlikelySuccessor(s)
7+
select r.getLocation().getStartLine(), r.toString(), s.getLocation().getStartLine(), s.toString()
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
| 6 | ControlFlowNode for a() |
2+
| 21 | ControlFlowNode for a() |
3+
| 36 | ControlFlowNode for a() |
4+
| 51 | ControlFlowNode for open() |
5+
| 56 | ControlFlowNode for Attribute() |
6+
| 58 | ControlFlowNode for Attribute() |
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
2+
import python
3+
4+
from RaisingNode r
5+
where r.raisesUnknownType()
6+
select r.getLocation().getStartLine(), r.toString()
Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
2+
def f(a, x):
3+
try:
4+
a[x]
5+
a.b
6+
a(x)
7+
raise Exception()
8+
except AttributeError:
9+
pass
10+
except IndexError:
11+
pass
12+
except KeyError:
13+
pass
14+
except:
15+
pass
16+
17+
def g(a, x):
18+
try:
19+
a[x]
20+
a.b
21+
a(x)
22+
raise Exception()
23+
except AttributeError:
24+
pass
25+
except IndexError:
26+
pass
27+
except KeyError:
28+
pass
29+
finally:
30+
pass
31+
32+
def h(a, x):
33+
try:
34+
a[x]
35+
a.b
36+
a(x)
37+
raise Exception()
38+
except AttributeError:
39+
pass
40+
except IndexError:
41+
pass
42+
except KeyError:
43+
pass
44+
45+
#I/O stuff.
46+
47+
def doesnt_raise():
48+
pass
49+
50+
def io():
51+
f12 = open("filename")
52+
try:
53+
f12.read("IOError could occur")
54+
f12.write("IOError could occur")
55+
doesnt_raise("Potential false positive here")
56+
f12.close()
57+
except IOError:
58+
f12.close()
59+
Lines changed: 202 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,202 @@
1+
| 2 | ControlFlowNode for C | class C | 2 |
2+
| 2 | ControlFlowNode for ClassExpr | class C | 2 |
3+
| 2 | ControlFlowNode for object | builtin-class object | 2 |
4+
| 4 | ControlFlowNode for None | NoneType None | 4 |
5+
| 4 | ControlFlowNode for z | NoneType None | 4 |
6+
| 5 | ControlFlowNode for IntegerLiteral | int 1 | 5 |
7+
| 5 | ControlFlowNode for i | int 1 | 5 |
8+
| 7 | ControlFlowNode for FunctionExpr | Function __init__ | 7 |
9+
| 7 | ControlFlowNode for __init__ | Function __init__ | 7 |
10+
| 8 | ControlFlowNode for self | self | 7 |
11+
| 9 | ControlFlowNode for self | self | 7 |
12+
| 10 | ControlFlowNode for Attribute | int 1 | 10 |
13+
| 10 | ControlFlowNode for IntegerLiteral | int 1 | 10 |
14+
| 10 | ControlFlowNode for self | self | 7 |
15+
| 13 | ControlFlowNode for FunctionExpr | Function f | 13 |
16+
| 13 | ControlFlowNode for f | Function f | 13 |
17+
| 15 | ControlFlowNode for C | class C | 2 |
18+
| 15 | ControlFlowNode for C() | C() | 15 |
19+
| 15 | ControlFlowNode for c | C() | 15 |
20+
| 16 | ControlFlowNode for c | C() | 15 |
21+
| 17 | ControlFlowNode for Attribute | int 2 | 17 |
22+
| 17 | ControlFlowNode for IntegerLiteral | int 2 | 17 |
23+
| 17 | ControlFlowNode for c | C() | 15 |
24+
| 19 | ControlFlowNode for c | C() | 15 |
25+
| 20 | ControlFlowNode for c | C() | 15 |
26+
| 21 | ControlFlowNode for Attribute | int 1 | 10 |
27+
| 21 | ControlFlowNode for c | C() | 15 |
28+
| 22 | ControlFlowNode for c | C() | 15 |
29+
| 23 | ControlFlowNode for Attribute | int 2 | 17 |
30+
| 23 | ControlFlowNode for c | C() | 15 |
31+
| 26 | ControlFlowNode for FunctionExpr | Function g | 26 |
32+
| 26 | ControlFlowNode for g | Function g | 26 |
33+
| 28 | ControlFlowNode for None | NoneType None | 28 |
34+
| 28 | ControlFlowNode for d1 | NoneType None | 28 |
35+
| 30 | ControlFlowNode for List | List | 30 |
36+
| 30 | ControlFlowNode for d1 | List | 30 |
37+
| 31 | ControlFlowNode for FloatLiteral | float 0.7 | 31 |
38+
| 31 | ControlFlowNode for Subscript | float 0.7 | 31 |
39+
| 31 | ControlFlowNode for d1 | List | 30 |
40+
| 31 | ControlFlowNode for d1 | NoneType None | 28 |
41+
| 32 | ControlFlowNode for d1 | List | 30 |
42+
| 32 | ControlFlowNode for d1 | NoneType None | 28 |
43+
| 35 | ControlFlowNode for FunctionExpr | Function h | 35 |
44+
| 35 | ControlFlowNode for h | Function h | 35 |
45+
| 37 | ControlFlowNode for None | NoneType None | 37 |
46+
| 37 | ControlFlowNode for d2 | NoneType None | 37 |
47+
| 39 | ControlFlowNode for List | List | 39 |
48+
| 39 | ControlFlowNode for d2 | List | 39 |
49+
| 40 | ControlFlowNode for IntegerLiteral | int 3 | 40 |
50+
| 40 | ControlFlowNode for Subscript | int 3 | 40 |
51+
| 40 | ControlFlowNode for d2 | List | 39 |
52+
| 40 | ControlFlowNode for d2 | NoneType None | 37 |
53+
| 41 | ControlFlowNode for d2 | List | 39 |
54+
| 41 | ControlFlowNode for d2 | NoneType None | 37 |
55+
| 44 | ControlFlowNode for FunctionExpr | Function j | 44 |
56+
| 44 | ControlFlowNode for j | Function j | 44 |
57+
| 45 | ControlFlowNode for Attribute | Function __init__ | 7 |
58+
| 45 | ControlFlowNode for C | class C | 2 |
59+
| 46 | ControlFlowNode for Attribute | int 1 | 5 |
60+
| 46 | ControlFlowNode for C | class C | 2 |
61+
| 47 | ControlFlowNode for Attribute | NoneType None | 4 |
62+
| 47 | ControlFlowNode for C | class C | 2 |
63+
| 50 | ControlFlowNode for FunctionExpr | Function k | 50 |
64+
| 50 | ControlFlowNode for k | Function k | 50 |
65+
| 51 | ControlFlowNode for C | class C | 2 |
66+
| 51 | ControlFlowNode for C() | C() | 51 |
67+
| 51 | ControlFlowNode for c1 | C() | 51 |
68+
| 52 | ControlFlowNode for C | class C | 2 |
69+
| 52 | ControlFlowNode for C() | C() | 52 |
70+
| 52 | ControlFlowNode for c2 | C() | 52 |
71+
| 53 | ControlFlowNode for C | class C | 2 |
72+
| 53 | ControlFlowNode for C() | C() | 53 |
73+
| 53 | ControlFlowNode for c3 | C() | 53 |
74+
| 54 | ControlFlowNode for Attribute | int 10 | 54 |
75+
| 54 | ControlFlowNode for IntegerLiteral | int 10 | 54 |
76+
| 54 | ControlFlowNode for c1 | C() | 51 |
77+
| 56 | ControlFlowNode for Attribute | int 20 | 56 |
78+
| 56 | ControlFlowNode for IntegerLiteral | int 20 | 56 |
79+
| 56 | ControlFlowNode for c2 | C() | 52 |
80+
| 57 | ControlFlowNode for Attribute | int 10 | 54 |
81+
| 57 | ControlFlowNode for c1 | C() | 51 |
82+
| 58 | ControlFlowNode for Attribute | int 1 | 10 |
83+
| 58 | ControlFlowNode for Attribute | int 20 | 56 |
84+
| 58 | ControlFlowNode for c2 | C() | 52 |
85+
| 59 | ControlFlowNode for Attribute | int 1 | 10 |
86+
| 59 | ControlFlowNode for c3 | C() | 53 |
87+
| 60 | ControlFlowNode for Attribute | int 30 | 60 |
88+
| 60 | ControlFlowNode for IntegerLiteral | int 30 | 60 |
89+
| 60 | ControlFlowNode for c3 | C() | 53 |
90+
| 62 | ControlFlowNode for ClassExpr | class D | 62 |
91+
| 62 | ControlFlowNode for D | class D | 62 |
92+
| 62 | ControlFlowNode for object | builtin-class object | 62 |
93+
| 64 | ControlFlowNode for FunctionExpr | Function meth1 | 64 |
94+
| 64 | ControlFlowNode for meth1 | Function meth1 | 64 |
95+
| 65 | ControlFlowNode for Attribute | int 0 | 65 |
96+
| 65 | ControlFlowNode for IntegerLiteral | int 0 | 65 |
97+
| 65 | ControlFlowNode for self | self | 64 |
98+
| 65 | ControlFlowNode for self | self | 70 |
99+
| 66 | ControlFlowNode for Attribute | int 1 | 66 |
100+
| 66 | ControlFlowNode for IntegerLiteral | int 1 | 66 |
101+
| 66 | ControlFlowNode for self | self | 64 |
102+
| 66 | ControlFlowNode for self | self | 70 |
103+
| 67 | ControlFlowNode for Attribute | int 0 | 65 |
104+
| 67 | ControlFlowNode for self | self | 64 |
105+
| 67 | ControlFlowNode for self | self | 70 |
106+
| 68 | ControlFlowNode for Attribute | int 1 | 66 |
107+
| 68 | ControlFlowNode for self | self | 64 |
108+
| 68 | ControlFlowNode for self | self | 70 |
109+
| 70 | ControlFlowNode for FunctionExpr | Function meth2 | 70 |
110+
| 70 | ControlFlowNode for meth2 | Function meth2 | 70 |
111+
| 71 | ControlFlowNode for Attribute | float 7.0 | 71 |
112+
| 71 | ControlFlowNode for FloatLiteral | float 7.0 | 71 |
113+
| 71 | ControlFlowNode for self | self | 70 |
114+
| 72 | ControlFlowNode for Attribute | int 2 | 72 |
115+
| 72 | ControlFlowNode for IntegerLiteral | int 2 | 72 |
116+
| 72 | ControlFlowNode for self | self | 70 |
117+
| 73 | ControlFlowNode for Attribute() | NoneType None | 64 |
118+
| 73 | ControlFlowNode for self | self | 70 |
119+
| 74 | ControlFlowNode for Attribute | int 0 | 65 |
120+
| 74 | ControlFlowNode for self | self | 70 |
121+
| 75 | ControlFlowNode for Attribute | int 1 | 66 |
122+
| 75 | ControlFlowNode for self | self | 70 |
123+
| 76 | ControlFlowNode for Attribute | int 2 | 72 |
124+
| 76 | ControlFlowNode for self | self | 70 |
125+
| 78 | ControlFlowNode for ClassExpr | class E | 78 |
126+
| 78 | ControlFlowNode for E | class E | 78 |
127+
| 78 | ControlFlowNode for object | builtin-class object | 78 |
128+
| 80 | ControlFlowNode for FunctionExpr | Function __init__ | 80 |
129+
| 80 | ControlFlowNode for __init__ | Function __init__ | 80 |
130+
| 82 | ControlFlowNode for Attribute | int 0 | 82 |
131+
| 82 | ControlFlowNode for IntegerLiteral | int 0 | 82 |
132+
| 82 | ControlFlowNode for self | self | 80 |
133+
| 84 | ControlFlowNode for Attribute | int 1 | 84 |
134+
| 84 | ControlFlowNode for IntegerLiteral | int 1 | 84 |
135+
| 84 | ControlFlowNode for self | self | 80 |
136+
| 86 | ControlFlowNode for E | class E | 78 |
137+
| 86 | ControlFlowNode for E() | E() | 86 |
138+
| 90 | ControlFlowNode for ClassExpr | class F | 90 |
139+
| 90 | ControlFlowNode for F | class F | 90 |
140+
| 90 | ControlFlowNode for object | builtin-class object | 90 |
141+
| 92 | ControlFlowNode for FunctionExpr | Function meth1 | 92 |
142+
| 92 | ControlFlowNode for meth1 | Function meth1 | 92 |
143+
| 93 | ControlFlowNode for IntegerLiteral | int 0 | 93 |
144+
| 93 | ControlFlowNode for Str | str u'a' | 93 |
145+
| 93 | ControlFlowNode for self | self | 92 |
146+
| 93 | ControlFlowNode for self | self | 98 |
147+
| 93 | ControlFlowNode for setattr | Builtin-function setattr | 93 |
148+
| 93 | ControlFlowNode for setattr() | NoneType None | 93 |
149+
| 94 | ControlFlowNode for IntegerLiteral | int 1 | 94 |
150+
| 94 | ControlFlowNode for Str | str u'b' | 94 |
151+
| 94 | ControlFlowNode for self | self | 92 |
152+
| 94 | ControlFlowNode for self | self | 98 |
153+
| 94 | ControlFlowNode for setattr | Builtin-function setattr | 94 |
154+
| 94 | ControlFlowNode for setattr() | NoneType None | 94 |
155+
| 95 | ControlFlowNode for Str | str u'a' | 95 |
156+
| 95 | ControlFlowNode for getattr | Builtin-function getattr | 95 |
157+
| 95 | ControlFlowNode for getattr() | int 0 | 93 |
158+
| 95 | ControlFlowNode for self | self | 92 |
159+
| 95 | ControlFlowNode for self | self | 98 |
160+
| 96 | ControlFlowNode for Str | str u'b' | 96 |
161+
| 96 | ControlFlowNode for getattr | Builtin-function getattr | 96 |
162+
| 96 | ControlFlowNode for getattr() | int 1 | 94 |
163+
| 96 | ControlFlowNode for self | self | 92 |
164+
| 96 | ControlFlowNode for self | self | 98 |
165+
| 98 | ControlFlowNode for FunctionExpr | Function meth2 | 98 |
166+
| 98 | ControlFlowNode for meth2 | Function meth2 | 98 |
167+
| 99 | ControlFlowNode for FloatLiteral | float 7.0 | 99 |
168+
| 99 | ControlFlowNode for Str | str u'a' | 99 |
169+
| 99 | ControlFlowNode for self | self | 98 |
170+
| 99 | ControlFlowNode for setattr | Builtin-function setattr | 99 |
171+
| 99 | ControlFlowNode for setattr() | NoneType None | 99 |
172+
| 100 | ControlFlowNode for IntegerLiteral | int 2 | 100 |
173+
| 100 | ControlFlowNode for Str | str u'c' | 100 |
174+
| 100 | ControlFlowNode for self | self | 98 |
175+
| 100 | ControlFlowNode for setattr | Builtin-function setattr | 100 |
176+
| 100 | ControlFlowNode for setattr() | NoneType None | 100 |
177+
| 101 | ControlFlowNode for Attribute() | NoneType None | 92 |
178+
| 101 | ControlFlowNode for self | self | 98 |
179+
| 102 | ControlFlowNode for Str | str u'a' | 102 |
180+
| 102 | ControlFlowNode for getattr | Builtin-function getattr | 102 |
181+
| 102 | ControlFlowNode for getattr() | int 0 | 93 |
182+
| 102 | ControlFlowNode for self | self | 98 |
183+
| 103 | ControlFlowNode for Str | str u'b' | 103 |
184+
| 103 | ControlFlowNode for getattr | Builtin-function getattr | 103 |
185+
| 103 | ControlFlowNode for getattr() | int 1 | 94 |
186+
| 103 | ControlFlowNode for self | self | 98 |
187+
| 104 | ControlFlowNode for Str | str u'c' | 104 |
188+
| 104 | ControlFlowNode for getattr | Builtin-function getattr | 104 |
189+
| 104 | ControlFlowNode for getattr() | int 2 | 100 |
190+
| 104 | ControlFlowNode for self | self | 98 |
191+
| 106 | ControlFlowNode for ClassExpr | class G | 106 |
192+
| 106 | ControlFlowNode for G | class G | 106 |
193+
| 106 | ControlFlowNode for object | builtin-class object | 106 |
194+
| 108 | ControlFlowNode for FunctionExpr | Function __init__ | 108 |
195+
| 108 | ControlFlowNode for __init__ | Function __init__ | 108 |
196+
| 109 | ControlFlowNode for IntegerLiteral | int 0 | 109 |
197+
| 109 | ControlFlowNode for Str | str u'x' | 109 |
198+
| 109 | ControlFlowNode for self | self | 108 |
199+
| 109 | ControlFlowNode for setattr | Builtin-function setattr | 109 |
200+
| 109 | ControlFlowNode for setattr() | NoneType None | 109 |
201+
| 111 | ControlFlowNode for G | class G | 106 |
202+
| 111 | ControlFlowNode for G() | G() | 111 |

0 commit comments

Comments
 (0)