Skip to content

Commit d54abdd

Browse files
committed
java.nio.file tests
1 parent 2e7ad99 commit d54abdd

File tree

6 files changed

+369
-63
lines changed

6 files changed

+369
-63
lines changed

java/ql/lib/ext/java.nio.file.model.yml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,6 @@ extensions:
2828
extensible: summaryModel
2929
data:
3030
- ["java.nio.file", "FileSystem", True, "getPath", "", "", "Argument[0]", "ReturnValue", "taint", "manual"]
31-
- ["java.nio.file", "FileSystem", True, "getRootDirectories", "", "", "Argument[0]", "ReturnValue", "taint", "manual"]
3231
- ["java.nio.file", "Path", True, "getParent", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
3332
- ["java.nio.file", "Path", True, "normalize", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
3433
- ["java.nio.file", "Path", True, "resolve", "", "", "Argument[-1..0]", "ReturnValue", "taint", "manual"]
Lines changed: 124 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,124 @@
1+
package generatedtest;
2+
3+
import java.io.File;
4+
import java.net.URI;
5+
import java.nio.file.FileSystem;
6+
import java.nio.file.Path;
7+
import java.nio.file.Paths;
8+
9+
// Test case generated by GenerateFlowTestCase.ql
10+
public class Test {
11+
12+
Object source() {
13+
return null;
14+
}
15+
16+
void sink(Object o) {}
17+
18+
public void test() throws Exception {
19+
20+
{
21+
// "java.nio.file;FileSystem;true;getPath;;;Argument[0];ReturnValue;taint;manual"
22+
Path out = null;
23+
String in = (String) source();
24+
FileSystem instance = null;
25+
out = instance.getPath(in, (String[]) null);
26+
sink(out); // $ hasTaintFlow
27+
}
28+
{
29+
// "java.nio.file;Path;false;toFile;;;Argument[-1];ReturnValue;taint;manual"
30+
File out = null;
31+
Path in = (Path) source();
32+
out = in.toFile();
33+
sink(out); // $ hasTaintFlow
34+
}
35+
{
36+
// "java.nio.file;Path;true;getParent;;;Argument[-1];ReturnValue;taint;manual"
37+
Path out = null;
38+
Path in = (Path) source();
39+
out = in.getParent();
40+
sink(out); // $ hasTaintFlow
41+
}
42+
{
43+
// "java.nio.file;Path;true;normalize;;;Argument[-1];ReturnValue;taint;manual"
44+
Path out = null;
45+
Path in = (Path) source();
46+
out = in.normalize();
47+
sink(out); // $ hasTaintFlow
48+
}
49+
{
50+
// "java.nio.file;Path;true;resolve;;;Argument[-1..0];ReturnValue;taint;manual"
51+
Path out = null;
52+
Path in = (Path) source();
53+
Path instance = null;
54+
out = instance.resolve(in);
55+
sink(out); // $ hasTaintFlow
56+
}
57+
{
58+
// "java.nio.file;Path;true;resolve;;;Argument[-1..0];ReturnValue;taint;manual"
59+
Path out = null;
60+
Path in = (Path) source();
61+
out = in.resolve((Path) null);
62+
sink(out); // $ hasTaintFlow
63+
}
64+
{
65+
// "java.nio.file;Path;true;resolve;;;Argument[-1..0];ReturnValue;taint;manual"
66+
Path out = null;
67+
Path in = (Path) source();
68+
out = in.resolve((String) null);
69+
sink(out); // $ hasTaintFlow
70+
}
71+
{
72+
// "java.nio.file;Path;true;resolve;;;Argument[-1..0];ReturnValue;taint;manual"
73+
Path out = null;
74+
String in = (String) source();
75+
Path instance = null;
76+
out = instance.resolve(in);
77+
sink(out); // $ hasTaintFlow
78+
}
79+
{
80+
// "java.nio.file;Path;true;toAbsolutePath;;;Argument[-1];ReturnValue;taint;manual"
81+
Path out = null;
82+
Path in = (Path) source();
83+
out = in.toAbsolutePath();
84+
sink(out); // $ hasTaintFlow
85+
}
86+
{
87+
// "java.nio.file;Path;true;toString;;;Argument[-1];ReturnValue;taint;manual"
88+
String out = null;
89+
Path in = (Path) source();
90+
out = in.toString();
91+
sink(out); // $ hasTaintFlow
92+
}
93+
{
94+
// "java.nio.file;Path;true;toUri;;;Argument[-1];ReturnValue;taint;manual"
95+
URI out = null;
96+
Path in = (Path) source();
97+
out = in.toUri();
98+
sink(out); // $ hasTaintFlow
99+
}
100+
{
101+
// "java.nio.file;Paths;true;get;;;Argument[0];ReturnValue;taint;manual"
102+
Path out = null;
103+
String in = (String) source();
104+
out = Paths.get(in, (String[]) null);
105+
sink(out); // $ hasTaintFlow
106+
}
107+
{
108+
// "java.nio.file;Paths;true;get;;;Argument[0];ReturnValue;taint;manual"
109+
Path out = null;
110+
URI in = (URI) source();
111+
out = Paths.get(in);
112+
sink(out); // $ hasTaintFlow
113+
}
114+
{
115+
// "java.nio.file;Paths;true;get;;;Argument[1].ArrayElement;ReturnValue;taint;manual"
116+
Path out = null;
117+
String[] in = (String[]) new String[] {(String) source()};
118+
out = Paths.get((String) null, in);
119+
sink(out); // $ hasTaintFlow
120+
}
121+
122+
}
123+
124+
}

java/ql/test/library-tests/frameworks/jdk/java.nio.file/test.expected

Whitespace-only changes.
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
import java
2+
import TestUtilities.InlineFlowTest

0 commit comments

Comments
 (0)