mirror of
https://github.com/github/codeql.git
synced 2026-04-25 00:35:20 +02:00
Java: Re-factor tests and update expected test output.
This commit is contained in:
@@ -1,5 +1,7 @@
|
||||
package my.qltest;
|
||||
|
||||
import my.qltest.external.Library;
|
||||
|
||||
public class C {
|
||||
void foo() {
|
||||
Object arg1 = new Object();
|
||||
@@ -25,35 +27,50 @@ public class C {
|
||||
}
|
||||
|
||||
void fooGenerated() {
|
||||
Object arg1 = new Object();
|
||||
stepArgResGenerated(arg1);
|
||||
Object arg = new Object();
|
||||
|
||||
Object arg2 = new Object();
|
||||
// The summary for the first parameter is ignored, because it is generated and
|
||||
// because there is hand written summary for the second parameter.
|
||||
stepArgResGeneratedIgnored(arg1, arg2);
|
||||
|
||||
stepArgQualGenerated(arg1);
|
||||
// The summary for the first parameter is ignored, because it is generated and
|
||||
// because there is hand written neutral summary model for this callable.
|
||||
stepArgQualGeneratedIgnored(arg1);
|
||||
// The (generated) summary is ignored because the source code is available.
|
||||
stepArgResGenerated(arg);
|
||||
}
|
||||
|
||||
Object stepArgRes(Object x) { return null; }
|
||||
// Library functionality is emulated by placing the source code in a "stubs"
|
||||
// folder. This means that a generated summary will be applied, if there
|
||||
// doesn't exist a manual summary or manual summary neutral.
|
||||
void fooLibrary() {
|
||||
Object arg1 = new Object();
|
||||
|
||||
void stepArgArg(Object in, Object out) { }
|
||||
Library lib = new Library();
|
||||
|
||||
void stepArgQual(Object x) { }
|
||||
lib.apiStepArgResGenerated(arg1);
|
||||
|
||||
Object stepQualRes() { return null; }
|
||||
Object arg2 = new Object();
|
||||
|
||||
void stepQualArg(Object out) { }
|
||||
// The summary for the first parameter is ignored, because it is generated and
|
||||
// because there is a manual summary for the second parameter.
|
||||
lib.apiStepArgResGeneratedIgnored(arg1, arg2);
|
||||
|
||||
Object stepArgResGenerated(Object x) { return null; }
|
||||
lib.apiStepArgQualGenerated(arg1);
|
||||
|
||||
Object stepArgResGeneratedIgnored(Object x, Object y) { return null; }
|
||||
// The summary for the parameter is ignored, because it is generated and
|
||||
// because there is a manual neutral summary model for this callable.
|
||||
lib.apiStepArgQualGeneratedIgnored(arg1);
|
||||
}
|
||||
|
||||
Object stepArgQualGenerated(Object x) { return null; }
|
||||
|
||||
Object stepArgQualGeneratedIgnored(Object x) { return null; }
|
||||
Object stepArgRes(Object x) {
|
||||
return null;
|
||||
}
|
||||
|
||||
void stepArgArg(Object in, Object out) {}
|
||||
|
||||
void stepArgQual(Object x) {}
|
||||
|
||||
Object stepQualRes() {
|
||||
return null;
|
||||
}
|
||||
|
||||
void stepQualArg(Object out) {}
|
||||
|
||||
Object stepArgResGenerated(Object x) {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,11 +1,13 @@
|
||||
invalidModelRow
|
||||
#select
|
||||
| C.java:6:16:6:19 | arg1 | C.java:6:5:6:20 | stepArgRes(...) |
|
||||
| C.java:10:16:10:21 | argIn1 | C.java:10:24:10:30 | argOut1 [post update] |
|
||||
| C.java:13:16:13:21 | argIn2 | C.java:13:24:13:30 | argOut2 [post update] |
|
||||
| C.java:16:17:16:20 | arg2 | C.java:16:5:16:21 | this <.method> [post update] |
|
||||
| C.java:18:22:18:25 | arg3 | C.java:18:5:18:8 | this [post update] |
|
||||
| C.java:20:5:20:8 | this | C.java:20:5:20:22 | stepQualRes(...) |
|
||||
| C.java:21:5:21:17 | this <.method> | C.java:21:5:21:17 | stepQualRes(...) |
|
||||
| C.java:24:5:24:23 | this <.method> | C.java:24:17:24:22 | argOut [post update] |
|
||||
| C.java:34:38:34:41 | arg2 | C.java:34:5:34:42 | stepArgResGeneratedIgnored(...) |
|
||||
| C.java:8:16:8:19 | arg1 | C.java:8:5:8:20 | stepArgRes(...) |
|
||||
| C.java:12:16:12:21 | argIn1 | C.java:12:24:12:30 | argOut1 [post update] |
|
||||
| C.java:15:16:15:21 | argIn2 | C.java:15:24:15:30 | argOut2 [post update] |
|
||||
| C.java:18:17:18:20 | arg2 | C.java:18:5:18:21 | this <.method> [post update] |
|
||||
| C.java:20:22:20:25 | arg3 | C.java:20:5:20:8 | this [post update] |
|
||||
| C.java:22:5:22:8 | this | C.java:22:5:22:22 | stepQualRes(...) |
|
||||
| C.java:23:5:23:17 | this <.method> | C.java:23:5:23:17 | stepQualRes(...) |
|
||||
| C.java:26:5:26:23 | this <.method> | C.java:26:17:26:22 | argOut [post update] |
|
||||
| C.java:44:32:44:35 | arg1 | C.java:44:5:44:36 | apiStepArgResGenerated(...) |
|
||||
| C.java:50:45:50:48 | arg2 | C.java:50:5:50:49 | apiStepArgResGeneratedIgnored(...) |
|
||||
| C.java:52:33:52:36 | arg1 | C.java:52:5:52:7 | lib [post update] |
|
||||
|
||||
@@ -9,13 +9,14 @@ extensions:
|
||||
- ["my.qltest", "C", False, "stepQualRes", "()", "", "Argument[this]", "ReturnValue", "taint", "manual"]
|
||||
- ["my.qltest", "C", False, "stepQualArg", "(Object)", "", "Argument[this]", "Argument[0]", "taint", "manual"]
|
||||
- ["my.qltest", "C", False, "stepArgResGenerated", "(Object)", "", "Argument[0]", "ReturnValue", "taint", "df-generated"]
|
||||
- ["my.qltest", "C", False, "stepArgResGeneratedIgnored", "(Object,Object)", "", "Argument[0]", "ReturnValue", "taint", "df-generated"]
|
||||
- ["my.qltest", "C", False, "stepArgResGeneratedIgnored", "(Object,Object)", "", "Argument[1]", "ReturnValue", "taint", "manual"]
|
||||
- ["my.qltest", "C", False, "stepArgQualGenerated", "(Object)", "", "Argument[0]", "Argument[this]", "taint", "df-generated"]
|
||||
- ["my.qltest", "C", False, "stepArgQualGeneratedIgnored", "(Object)", "", "Argument[0]", "Argument[this]", "taint", "df-generated"]
|
||||
- ["my.qltest.external", "Library", False, "apiStepArgResGenerated", "(Object)", "", "Argument[0]", "ReturnValue", "taint", "df-generated"]
|
||||
- ["my.qltest.external", "Library", False, "apiStepArgResGeneratedIgnored", "(Object,Object)", "", "Argument[0]", "ReturnValue", "taint", "df-generated"]
|
||||
- ["my.qltest.external", "Library", False, "apiStepArgResGeneratedIgnored", "(Object,Object)", "", "Argument[1]", "ReturnValue", "taint", "manual"]
|
||||
- ["my.qltest.external", "Library", False, "apiStepArgQualGenerated", "(Object)", "", "Argument[0]", "Argument[this]", "taint", "df-generated"]
|
||||
- ["my.qltest.external", "Library", False, "apiStepArgQualGeneratedIgnored", "(Object)", "", "Argument[0]", "Argument[this]", "taint", "df-generated"]
|
||||
- addsTo:
|
||||
pack: codeql/java-all
|
||||
extensible: neutralModel
|
||||
data:
|
||||
- ["my.qltest", "C", "stepArgQualGenerated", "(Object)", "summary", "df-generated"]
|
||||
- ["my.qltest", "C", "stepArgQualGeneratedIgnored", "(Object)", "summary", "manual"]
|
||||
- ["my.qltest.external", "Library", "apiStepArgQualGenerated", "(Object)", "summary", "df-generated"]
|
||||
- ["my.qltest.external", "Library", "apiStepArgQualGeneratedIgnored", "(Object)", "summary", "manual"]
|
||||
|
||||
@@ -0,0 +1,19 @@
|
||||
package my.qltest.external;
|
||||
|
||||
public class Library {
|
||||
public Object apiStepArgResGenerated(Object x) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public Object apiStepArgResGeneratedIgnored(Object x, Object y) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public Object apiStepArgQualGenerated(Object x) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public Object apiStepArgQualGeneratedIgnored(Object x) {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user