mirror of
https://github.com/github/codeql.git
synced 2026-04-26 17:25:19 +02:00
Update tests
This commit is contained in:
@@ -1,119 +0,0 @@
|
||||
| f1_0 = open() | open | |
|
||||
| f1_1 = MethodCallsiteRefinement(f1_0) | open | |
|
||||
| f1_2 = MethodCallsiteRefinement(f1_1) | closed | exit |
|
||||
| f2_0 = open() | open | exit |
|
||||
| f3_0 = open() | open | |
|
||||
| f3_1 = MethodCallsiteRefinement(f3_0) | closed | exit |
|
||||
| f4_0 = with | closed | |
|
||||
| f4_1 = MethodCallsiteRefinement(f4_0) | closed | exit |
|
||||
| f5_0 = open() | open | |
|
||||
| f5_1 = MethodCallsiteRefinement(f5_0) | open | |
|
||||
| f5_2 = MethodCallsiteRefinement(f5_1) | closed | exit |
|
||||
| f5_3 = phi(f5_0, f5_1) | open | |
|
||||
| f6_0 = None | closed | |
|
||||
| f6_1 = open() | open | |
|
||||
| f6_2 = MethodCallsiteRefinement(f6_1) | open | |
|
||||
| f6_3 = phi(f6_0, f6_1, f6_2) | open | |
|
||||
| f6_4 = Pi(f6_2) [true] | open | |
|
||||
| f6_5 = MethodCallsiteRefinement(f6_4) | closed | |
|
||||
| f6_6 = Pi(f6_3) [true] | open | |
|
||||
| f6_7 = Pi(f6_2) [false] | closed | |
|
||||
| f6_8 = phi(f6_5, f6_7) | closed | exit |
|
||||
| f7_0 = None | closed | |
|
||||
| f7_1 = open() | open | |
|
||||
| f7_2 = MethodCallsiteRefinement(f7_1) | open | |
|
||||
| f7_3 = phi(f7_0, f7_1, f7_2) | open | |
|
||||
| f7_4 = Pi(f7_2) [true] | open | |
|
||||
| f7_5 = MethodCallsiteRefinement(f7_4) | closed | |
|
||||
| f7_6 = Pi(f7_3) [true] | open | |
|
||||
| f7_7 = Pi(f7_2) [false] | closed | |
|
||||
| f7_8 = phi(f7_5, f7_7) | closed | exit |
|
||||
| f8_0 = None | closed | |
|
||||
| f8_1 = open() | open | |
|
||||
| f8_2 = MethodCallsiteRefinement(f8_1) | open | |
|
||||
| f8_3 = phi(f8_0, f8_1, f8_2) | open | |
|
||||
| f8_4 = Pi(f8_2) [true] | closed | |
|
||||
| f8_5 = MethodCallsiteRefinement(f8_4) | closed | |
|
||||
| f8_6 = Pi(f8_3) [true] | closed | |
|
||||
| f8_7 = Pi(f8_2) [false] | open | |
|
||||
| f8_8 = phi(f8_5, f8_7) | open | exit |
|
||||
| f9_0 = None | closed | |
|
||||
| f9_1 = open() | open | |
|
||||
| f9_2 = MethodCallsiteRefinement(f9_1) | open | |
|
||||
| f9_3 = phi(f9_0, f9_1, f9_2) | open | |
|
||||
| f9_4 = Pi(f9_2) [true] | closed | |
|
||||
| f9_5 = MethodCallsiteRefinement(f9_4) | closed | |
|
||||
| f9_6 = Pi(f9_3) [true] | closed | |
|
||||
| f9_7 = Pi(f9_2) [false] | open | |
|
||||
| f9_8 = phi(f9_5, f9_7) | open | exit |
|
||||
| f10_0 = open() | open | |
|
||||
| f10_1 = MethodCallsiteRefinement(f10_0) | open | |
|
||||
| f10_2 = MethodCallsiteRefinement(f10_1) | open | |
|
||||
| f10_3 = MethodCallsiteRefinement(f10_2) | closed | |
|
||||
| f10_4 = phi(f10_0, f10_1, f10_2, f10_3) | open | |
|
||||
| f10_5 = MethodCallsiteRefinement(f10_4) | closed | |
|
||||
| f10_6 = phi(f10_3, f10_5) | closed | exit |
|
||||
| f11_0 = open() | open | |
|
||||
| f11_1 = MethodCallsiteRefinement(f11_0) | open | |
|
||||
| f11_2 = MethodCallsiteRefinement(f11_1) | open | |
|
||||
| f11_3 = MethodCallsiteRefinement(f11_2) | closed | |
|
||||
| f11_4 = phi(f11_0, f11_1, f11_2, f11_3) | open | |
|
||||
| f11_5 = MethodCallsiteRefinement(f11_4) | closed | |
|
||||
| f11_6 = phi(f11_3, f11_5) | closed | exit |
|
||||
| f12_0 = open() | open | |
|
||||
| f12_1 = MethodCallsiteRefinement(f12_0) | open | |
|
||||
| f12_2 = MethodCallsiteRefinement(f12_1) | open | |
|
||||
| f12_3 = MethodCallsiteRefinement(f12_2) | closed | |
|
||||
| f12_4 = phi(f12_0, f12_1, f12_2, f12_3) | open | |
|
||||
| f12_5 = MethodCallsiteRefinement(f12_4) | closed | |
|
||||
| f12_6 = phi(f12_3, f12_5) | closed | exit |
|
||||
| f13_0 = open() | open | |
|
||||
| f13_1 = MethodCallsiteRefinement(f13_0) | open | exit |
|
||||
| f14_0 = opener_func2() | open | |
|
||||
| f14_1 = MethodCallsiteRefinement(f14_0) | open | |
|
||||
| f14_2 = MethodCallsiteRefinement(f14_1) | closed | exit |
|
||||
| f15_0 = opener_func2() | open | |
|
||||
| f15_1 = ArgumentRefinement(f15_0) | closed | exit |
|
||||
| f16_0 = ScopeEntryDefinition | closed | |
|
||||
| f16_1 = open() | open | |
|
||||
| f16_2 = MethodCallsiteRefinement(f16_1) | open | |
|
||||
| f16_3 = MethodCallsiteRefinement(f16_2) | closed | |
|
||||
| f16_4 = phi(f16_0, f16_1, f16_2, f16_3) | open | |
|
||||
| f16_5 = phi(f16_3, f16_4) | open | exit |
|
||||
| f17_0 = open() | open | |
|
||||
| f17_1 = MethodCallsiteRefinement(f17_0) | open | |
|
||||
| f17_2 = MethodCallsiteRefinement(f17_1) | open | |
|
||||
| f17_3 = MethodCallsiteRefinement(f17_2) | closed | |
|
||||
| f17_4 = phi(f17_0, f17_1, f17_2, f17_3) | open | |
|
||||
| f17_5 = MethodCallsiteRefinement(f17_4) | closed | |
|
||||
| f17_6 = phi(f17_3, f17_5) | closed | exit |
|
||||
| f18_0 = open() | closed | |
|
||||
| f18_1 = MethodCallsiteRefinement(f18_0) | closed | exit |
|
||||
| f20_0 = open() | open | |
|
||||
| f20_1 = ArgumentRefinement(f20_0) | closed | exit |
|
||||
| f21_0 = open() | open | |
|
||||
| f21_1 = MethodCallsiteRefinement(f21_0) | open | |
|
||||
| f21_2 = MethodCallsiteRefinement(f21_1) | closed | |
|
||||
| f21_3 = phi(f21_1, f21_2) | open | |
|
||||
| f21_4 = phi(f21_0, f21_1, f21_2) | open | |
|
||||
| f21_5 = Pi(f21_3) [true] | open | |
|
||||
| f21_6 = MethodCallsiteRefinement(f21_5) | closed | |
|
||||
| f21_7 = Pi(f21_4) [true] | open | |
|
||||
| f21_8 = Pi(f21_3) [false] | closed | |
|
||||
| f21_9 = phi(f21_6, f21_8) | closed | exit |
|
||||
| f22_0 = open() | open | |
|
||||
| f22_1 = MethodCallsiteRefinement(f22_0) | open | |
|
||||
| f22_2 = MethodCallsiteRefinement(f22_1) | closed | |
|
||||
| f22_3 = phi(f22_1, f22_2) | open | |
|
||||
| f22_4 = phi(f22_0, f22_1, f22_2) | open | |
|
||||
| f22_5 = Pi(f22_3) [true] | closed | |
|
||||
| f22_6 = MethodCallsiteRefinement(f22_5) | closed | |
|
||||
| f22_7 = Pi(f22_4) [true] | closed | |
|
||||
| f22_8 = Pi(f22_3) [false] | open | |
|
||||
| f22_9 = phi(f22_6, f22_8) | open | exit |
|
||||
| f_0 = FunctionExpr | closed | exit |
|
||||
| file_0 = open() | open | |
|
||||
| file_1 = open() | open | |
|
||||
| file_2 = None | closed | |
|
||||
| file_3 = phi(file_0, file_1, file_2) | open | exit |
|
||||
| fp_0 = ParameterDefinition | closed | exit |
|
||||
@@ -1,14 +0,0 @@
|
||||
import python
|
||||
import Resources.FileOpen
|
||||
|
||||
from EssaVariable v, EssaDefinition def, string open, string exit
|
||||
where
|
||||
def = v.getDefinition() and
|
||||
v.getSourceVariable().getName().charAt(0) = "f" and
|
||||
(
|
||||
var_is_open(v, _) and open = "open"
|
||||
or
|
||||
not var_is_open(v, _) and open = "closed"
|
||||
) and
|
||||
if BaseFlow::reaches_exit(v) then exit = "exit" else exit = ""
|
||||
select v.getRepresentation() + " = " + v.getDefinition().getRepresentation(), open, exit
|
||||
@@ -1,9 +0,0 @@
|
||||
| resources_test.py:4:10:4:25 | open() | File may not be closed if an exception is raised. |
|
||||
| resources_test.py:9:10:9:25 | open() | File is opened but is not closed. |
|
||||
| resources_test.py:49:14:49:29 | open() | File is opened but is not closed. |
|
||||
| resources_test.py:58:14:58:29 | open() | File is opened but is not closed. |
|
||||
| resources_test.py:79:11:79:26 | open() | File may not be closed if an exception is raised. |
|
||||
| resources_test.py:108:11:108:20 | open() | File is opened but is not closed. |
|
||||
| resources_test.py:112:11:112:28 | opener_func2() | File may not be closed if an exception is raised. |
|
||||
| resources_test.py:129:15:129:24 | open() | File is opened but is not closed. |
|
||||
| resources_test.py:237:11:237:26 | open() | File is opened but is not closed. |
|
||||
@@ -1 +0,0 @@
|
||||
Resources/FileNotAlwaysClosed.ql
|
||||
@@ -3,10 +3,10 @@
|
||||
def not_close1():
|
||||
f1 = open("filename")
|
||||
f1.write("Error could occur")
|
||||
f1.close()
|
||||
f1.close() # $ notAlwaysClosed
|
||||
|
||||
def not_close2():
|
||||
f2 = open("filename")
|
||||
f2 = open("filename") # $ notAlwaysClosed
|
||||
|
||||
def closed3():
|
||||
f3 = open("filename")
|
||||
@@ -46,7 +46,7 @@ def closed7():
|
||||
def not_closed8():
|
||||
f8 = None
|
||||
try:
|
||||
f8 = open("filename")
|
||||
f8 = open("filename") # $ notAlwaysClosed
|
||||
f8.write("Error could occur")
|
||||
finally:
|
||||
if f8 is None:
|
||||
@@ -55,7 +55,7 @@ def not_closed8():
|
||||
def not_closed9():
|
||||
f9 = None
|
||||
try:
|
||||
f9 = open("filename")
|
||||
f9 = open("filename") # $ notAlwaysClosed
|
||||
f9.write("Error could occur")
|
||||
finally:
|
||||
if not f9:
|
||||
@@ -76,7 +76,7 @@ def closed10():
|
||||
|
||||
#Not closed by handling the wrong exception
|
||||
def not_closed11():
|
||||
f11 = open("filename")
|
||||
f11 = open("filename") # $ notAlwaysClosed
|
||||
try:
|
||||
f11.write("IOError could occur")
|
||||
f11.write("IOError could occur")
|
||||
@@ -84,11 +84,11 @@ def not_closed11():
|
||||
except AttributeError:
|
||||
f11.close()
|
||||
|
||||
def doesnt_raise():
|
||||
def doesnt_raise(*args):
|
||||
pass
|
||||
|
||||
def mostly_closed12():
|
||||
f12 = open("filename")
|
||||
f12 = open("filename") # $ SPURIOUS:notAlwaysClosed
|
||||
try:
|
||||
f12.write("IOError could occur")
|
||||
f12.write("IOError could occur")
|
||||
@@ -105,11 +105,11 @@ def opener_func2(name):
|
||||
return t1
|
||||
|
||||
def not_closed13(name):
|
||||
f13 = open(name)
|
||||
f13 = open(name) # $ notAlwaysClosed
|
||||
f13.write("Hello")
|
||||
|
||||
def may_not_be_closed14(name):
|
||||
f14 = opener_func2(name)
|
||||
f14 = opener_func2(name) # $ notAlwaysClosed
|
||||
f14.write("Hello")
|
||||
f14.close()
|
||||
|
||||
@@ -126,7 +126,7 @@ def closed15():
|
||||
|
||||
def may_not_be_closed16(name):
|
||||
try:
|
||||
f16 = open(name)
|
||||
f16 = open(name) # $ notAlwaysClosed
|
||||
f16.write("Hello")
|
||||
f16.close()
|
||||
except IOError:
|
||||
@@ -138,7 +138,7 @@ def may_raise():
|
||||
|
||||
#Not handling all exceptions, but we'll tolerate the false negative
|
||||
def not_closed17():
|
||||
f17 = open("filename")
|
||||
f17 = open("filename") # $ notAlwaysClosed
|
||||
try:
|
||||
f17.write("IOError could occur")
|
||||
f17.write("IOError could occur")
|
||||
@@ -234,7 +234,7 @@ def closed21(path):
|
||||
|
||||
|
||||
def not_closed22(path):
|
||||
f22 = open(path, "wb")
|
||||
f22 = open(path, "wb") # $ notAlwaysClosed
|
||||
try:
|
||||
f22.write(b"foo")
|
||||
may_raise()
|
||||
@@ -0,0 +1,21 @@
|
||||
import python
|
||||
import Resources.FileNotAlwaysClosedQuery
|
||||
import utils.test.InlineExpectationsTest
|
||||
|
||||
module MethodArgTest implements TestSig {
|
||||
string getARelevantTag() { result = "notAlwaysClosed" }
|
||||
|
||||
predicate hasActualResult(Location location, string element, string tag, string value) {
|
||||
exists(DataFlow::CfgNode f |
|
||||
element = f.toString() and
|
||||
location = f.getLocation() and
|
||||
value = "" and
|
||||
(
|
||||
fileNotAlwaysClosed(f) and
|
||||
tag = "notAlwaysClosed"
|
||||
)
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
import MakeTest<MethodArgTest>
|
||||
Reference in New Issue
Block a user