Skip to content

Commit d5955f1

Browse files
committed
Java: Add test for missing summary flow
1 parent 30bf2aa commit d5955f1

File tree

2 files changed

+23
-0
lines changed
  • java/ql/test/library-tests/dataflow/callback-dispatch

2 files changed

+23
-0
lines changed

java/ql/test/library-tests/dataflow/callback-dispatch/A.java

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -169,4 +169,25 @@ void foo2() {
169169
sink(res2); // $ flow=19
170170
}
171171

172+
static void applyConsumer1Field1Field2(A a1, A a2, Consumer1 con) {
173+
// summary:
174+
// con.eat(a1.field1);
175+
// con.eat(a2.field2);
176+
}
177+
178+
static void wrapSinkToAvoidFieldSsa(A a) { sink(a.field1); }
179+
180+
void foo3() {
181+
A a1 = new A();
182+
a1.field1 = source(1);
183+
A a2 = new A();
184+
applyConsumer1Field1Field2(a1, a2, p -> {
185+
sink(p); // MISSING FLOW
186+
});
187+
wrapSinkToAvoidFieldSsa(a1); // MISSING FLOW
188+
sink(a2.field2);
189+
}
190+
191+
public Object field1;
192+
public Object field2;
172193
}

java/ql/test/library-tests/dataflow/callback-dispatch/test.ql

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@ class SummaryModelTest extends SummaryModelCsv {
88
row =
99
[
1010
"my.callback.qltest;A;false;applyConsumer1;(Object,Consumer1);;Argument[0];Parameter[0] of Argument[1];value",
11+
"my.callback.qltest;A;false;applyConsumer1Field1Field2;(A,A,Consumer1);;Field[my.callback.qltest.A.field1] of Argument[0];Parameter[0] of Argument[2];value",
12+
"my.callback.qltest;A;false;applyConsumer1Field1Field2;(A,A,Consumer1);;Field[my.callback.qltest.A.field2] of Argument[1];Parameter[0] of Argument[2];value",
1113
"my.callback.qltest;A;false;applyConsumer2;(Object,Consumer2);;Argument[0];Parameter[0] of Argument[1];value",
1214
"my.callback.qltest;A;false;applyConsumer3;(Object,Consumer3);;Argument[0];Parameter[0] of Argument[1];value",
1315
"my.callback.qltest;A;false;applyConsumer3_ret_postup;(Consumer3);;Parameter[0] of Argument[0];ReturnValue;value",

0 commit comments

Comments
 (0)