Repository navigation
Concrete execution fails for a static method using a static field #711
Copy link
Copy link
Closed
Labels
comp-fuzzingIssue is related to the fuzzingIssue is related to the fuzzingctg-bugIssue is a bugIssue is a bug
Milestone
Description
Description
Static method without input parameters is using a static field inside.
Concrete execution fails with "java.lang.IllegalArgumentException: wrong number of arguments"
To Reproduce
Steps to reproduce the behavior:
- IntelliJ IDEA with UTBot installed is running.
- Turn fuzzing on // File -> Settings -> Tools -> UTbot -> select some middle Code Analysis slider position
- Run test generation for the following class:
public class CheckStatic {
public final static Integer keyValue = 420;
public static int check() {
if (keyValue == 0) {
return keyValue;
} else {
return -keyValue;
}
}
}Expected behavior
Tests are supposed to be generated without errors.
Actual behavior
An error test is generated with information about an error in the concrete executor.
Visual proofs (screenshots, logs, images)
Error report:
public void testCheck_errors() {
// Couldn't generate some tests. List of errors:
//
// 4 occurrences of:
// Default concrete execution failed
}Child process error:
Transforming: org/example/CheckStatic
java.lang.IllegalArgumentException: wrong number of arguments
signature=check()I
this=null: org.example.CheckStatic
arguments={
org.example.CheckStatic@1ad9c76c: org.example.CheckStatic
}
at org.utbot.instrumentation.instrumentation.InvokeInstrumentation.invoke-d1pmJ48(InvokeInstrumentation.kt:77)
at org.utbot.instrumentation.instrumentation.InvokeInstrumentation.invoke(InvokeInstrumentation.kt:17)
at org.utbot.instrumentation.instrumentation.Instrumentation$DefaultImpls.invoke$default(Instrumentation.kt:25)
at org.utbot.framework.concrete.UtExecutionInstrumentation$invoke$$inlined$withReflection$lambda$1$1.invoke(UtExecutionInstrumentation.kt:163)
at org.utbot.common.ThreadBasedExecutor$invokeWithTimeout$2.invoke(ThreadUtil.kt:56)
at org.utbot.common.ThreadBasedExecutor$invokeWithTimeout$1.invoke(ThreadUtil.kt:47)
at org.utbot.common.ThreadBasedExecutor$invokeWithTimeout$1.invoke(ThreadUtil.kt:22)
at kotlin.concurrent.ThreadsKt$thread$thread$1.run(Thread.kt:30)
Environment
Windows 10 Pro
Gradle 6.8
JDK 8
Additional context
The example was taken from utbot-sample/src/main/java/org/utbot/examples/mock/CommonMocksExample.java - just added "static" to the clinitMockExample() definition.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
comp-fuzzingIssue is related to the fuzzingIssue is related to the fuzzingctg-bugIssue is a bugIssue is a bug
Type
Projects
- StatusShow more project fieldsDone
Activity
tyuldashev commentedon Oct 7, 2022
Currently in main (build 411)
Empty test is generated and concrete executor log contains exception:
alisevych commentedon Oct 11, 2022
Reproducing with RC-build: build 417
SBOne-Kenobi commentedon Oct 12, 2022
When our fuzzer meets methods without any parameters, it tries to generate this instance and call static method from this instance as a usual method. @Markoutte, can you fix it?
Concrete execution fails for a static method using a static field #711
Concrete execution fails for a static method using a static field #711 (
Concrete execution fails for a static method using a static field Uni…
Concrete execution fails for a static method using a static field Uni…