Skip to content

Commit d7bf024

Browse files
committed
Java: Add testcase for generated summary model.
1 parent 0374f84 commit d7bf024

File tree

3 files changed

+20
-1
lines changed

3 files changed

+20
-1
lines changed

java/ql/test/library-tests/dataflow/external-models/C.java

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,16 @@ void foo() {
2424
stepQualArg(argOut);
2525
}
2626

27+
void fooGenerated() {
28+
Object arg1 = new Object();
29+
stepArgResGenerated(arg1);
30+
31+
Object arg2 = new Object();
32+
// The summary for the first parameter is ignored, because it is generated and
33+
// because there is hand written summary for the second parameter.
34+
stepArgResGeneratedIgnored(arg1, arg2);
35+
}
36+
2737
Object stepArgRes(Object x) { return null; }
2838

2939
void stepArgArg(Object in, Object out) { }
@@ -33,4 +43,8 @@ void stepArgQual(Object x) { }
3343
Object stepQualRes() { return null; }
3444

3545
void stepQualArg(Object out) { }
46+
47+
Object stepArgResGenerated(Object x) { return null; }
48+
49+
Object stepArgResGeneratedIgnored(Object x, Object y) { return null; }
3650
}

java/ql/test/library-tests/dataflow/external-models/steps.expected

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,3 +8,5 @@ invalidModelRow
88
| C.java:20:5:20:8 | this | C.java:20:5:20:22 | stepQualRes(...) |
99
| C.java:21:5:21:17 | this <.method> | C.java:21:5:21:17 | stepQualRes(...) |
1010
| C.java:24:5:24:23 | this <.method> | C.java:24:17:24:22 | argOut [post update] |
11+
| C.java:29:25:29:28 | arg1 | C.java:29:5:29:29 | stepArgResGenerated(...) |
12+
| C.java:34:38:34:41 | arg2 | C.java:34:5:34:42 | stepArgResGeneratedIgnored(...) |

java/ql/test/library-tests/dataflow/external-models/steps.ql

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,10 @@ class SummaryModelTest extends SummaryModelCsv {
1313
"my.qltest;C;false;stepArgArg;(Object,Object);;Argument[0];Argument[1];taint",
1414
"my.qltest;C;false;stepArgQual;(Object);;Argument[0];Argument[-1];taint",
1515
"my.qltest;C;false;stepQualRes;();;Argument[-1];ReturnValue;taint",
16-
"my.qltest;C;false;stepQualArg;(Object);;Argument[-1];Argument[0];taint"
16+
"my.qltest;C;false;stepQualArg;(Object);;Argument[-1];Argument[0];taint",
17+
"my.qltest;C;false;stepArgResGenerated;(Object);;Argument[0];ReturnValue;generated:taint",
18+
"my.qltest;C;false;stepArgResGeneratedIgnored;(Object,Object);;Argument[0];ReturnValue;generated:taint",
19+
"my.qltest;C;false;stepArgResGeneratedIgnored;(Object,Object);;Argument[1];ReturnValue;taint",
1720
]
1821
}
1922
}

0 commit comments

Comments
 (0)