Skip to content

Fuzzer fails to generate empty list for type list[Any] #1694

Closed
@tochilinak

Description

@tochilinak

Description

When fuzzer fails to generate instances for the inner type, it throws an error instead of generating only empty list.

To Reproduce

Steps to reproduce the behavior (for Java plugin):

  1. Create a project in IntelliJ Idea with the following code:
public class Main {

    interface Something {}

    int func(List<Something> x) {
        return x.size();
    }
}
  1. In UTBot plugin settings leave only fuzzing as generation method.
  2. Use plugin to generate tests.

Expected behavior

Test with an empty list as input is supposed to be generated.

Actual behavior

No tests were generated.

Visual proofs (screenshots, logs, images)

Exception from logs:

java.lang.IllegalStateException: No seed candidates generated for type: FuzzedType(classId=com.company.Main$Something, generics=[])
	at org.utbot.fuzzing.FuzzingApi.produce(Api.kt:350) ~[utbot-fuzzing-2023.01-SNAPSHOT.jar:?]
	at org.utbot.fuzzing.FuzzingApi.fuzz(Api.kt:323) ~[utbot-fuzzing-2023.01-SNAPSHOT.jar:?]
	at org.utbot.fuzzing.FuzzingApi.reduce(Api.kt:394) ~[utbot-fuzzing-2023.01-SNAPSHOT.jar:?]
	at org.utbot.fuzzing.FuzzingApi.produce(Api.kt:346) ~[utbot-fuzzing-2023.01-SNAPSHOT.jar:?]
	at org.utbot.fuzzing.FuzzingApi.fuzz(Api.kt:323) ~[utbot-fuzzing-2023.01-SNAPSHOT.jar:?]
	at org.utbot.fuzzing.FuzzingApi.fuzz$fuzzOne(Api.kt:250) ~[utbot-fuzzing-2023.01-SNAPSHOT.jar:?]
	at org.utbot.fuzzing.FuzzingApi.access$fuzz$fuzzOne(Api.kt:1) ~[utbot-fuzzing-2023.01-SNAPSHOT.jar:?]
	at org.utbot.fuzzing.FuzzingApi$fuzz$2$1.invokeSuspend(Api.kt:267) ~[utbot-fuzzing-2023.01-SNAPSHOT.jar:?]
	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33) ~[utbot-instrumentation-2023.01-SNAPSHOT.jar:?]
	at kotlin.sequences.SequenceBuilderIterator.hasNext(SequenceBuilder.kt:129) ~[utbot-instrumentation-2023.01-SNAPSHOT.jar:?]
	at org.utbot.fuzzing.FuzzingApi.fuzz(Api.kt:660) ~[utbot-fuzzing-2023.01-SNAPSHOT.jar:?]
	at org.utbot.fuzzing.ProvidersKt.runFuzzing(Providers.kt:18) ~[utbot-fuzzing-2023.01-SNAPSHOT.jar:?]
	at org.utbot.fuzzing.ProvidersKt.runFuzzing$default(Providers.kt:11) ~[utbot-fuzzing-2023.01-SNAPSHOT.jar:?]
	at org.utbot.fuzzing.JavaLanguageKt.runJavaFuzzing(JavaLanguage.kt:114) [utbot-fuzzers-2023.01-SNAPSHOT.jar:?]
	at org.utbot.engine.UtBotSymbolicEngine$fuzzing$2.invokeSuspend(UtBotSymbolicEngine.kt:349) [utbot-framework-2023.01-SNAPSHOT.jar:?]
	at org.utbot.engine.UtBotSymbolicEngine$fuzzing$2.invoke(UtBotSymbolicEngine.kt) [utbot-framework-2023.01-SNAPSHOT.jar:?]
	at org.utbot.engine.UtBotSymbolicEngine$fuzzing$2.invoke(UtBotSymbolicEngine.kt) [utbot-framework-2023.01-SNAPSHOT.jar:?]
	at kotlinx.coroutines.flow.SafeFlow.collectSafely(Builders.kt:61) [utbot-instrumentation-2023.01-SNAPSHOT.jar:?]
	at kotlinx.coroutines.flow.AbstractFlow.collect(Flow.kt:230) [utbot-instrumentation-2023.01-SNAPSHOT.jar:?]
	at kotlinx.coroutines.flow.FlowKt__ErrorsKt.catchImpl(Errors.kt:156) [utbot-instrumentation-2023.01-SNAPSHOT.jar:?]
	at kotlinx.coroutines.flow.FlowKt.catchImpl(Unknown Source) [utbot-instrumentation-2023.01-SNAPSHOT.jar:?]
	at kotlinx.coroutines.flow.FlowKt__ErrorsKt$catch$$inlined$unsafeFlow$1.collect(SafeCollector.common.kt:113) [utbot-instrumentation-2023.01-SNAPSHOT.jar:?]
	at org.utbot.framework.plugin.api.TestCaseGenerator$generate$3$1$1.invokeSuspend(TestCaseGenerator.kt:172) [utbot-framework-2023.01-SNAPSHOT.jar:?]
	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33) [utbot-instrumentation-2023.01-SNAPSHOT.jar:?]
	at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106) [utbot-instrumentation-2023.01-SNAPSHOT.jar:?]
	at kotlinx.coroutines.EventLoopImplBase.processNextEvent(EventLoop.common.kt:284) [utbot-instrumentation-2023.01-SNAPSHOT.jar:?]
	at kotlinx.coroutines.BlockingCoroutine.joinBlocking(Builders.kt:85) [utbot-instrumentation-2023.01-SNAPSHOT.jar:?]
	at kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking(Builders.kt:59) [utbot-instrumentation-2023.01-SNAPSHOT.jar:?]
	at kotlinx.coroutines.BuildersKt.runBlocking(Unknown Source) [utbot-instrumentation-2023.01-SNAPSHOT.jar:?]
	at kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking$default(Builders.kt:38) [utbot-instrumentation-2023.01-SNAPSHOT.jar:?]
	at kotlinx.coroutines.BuildersKt.runBlocking$default(Unknown Source) [utbot-instrumentation-2023.01-SNAPSHOT.jar:?]
	at org.utbot.common.ConcurrencyKt.runBlockingWithCancellationPredicate(Concurrency.kt:38) [utbot-core-2023.01-SNAPSHOT.jar:?]
	at org.utbot.framework.plugin.api.TestCaseGenerator$generate$3.invoke(TestCaseGenerator.kt:148) [utbot-framework-2023.01-SNAPSHOT.jar:?]
	at org.utbot.framework.plugin.api.TestCaseGenerator$generate$3.invoke(TestCaseGenerator.kt:147) [utbot-framework-2023.01-SNAPSHOT.jar:?]
	at org.utbot.common.ConcurrencyKt.runIgnoringCancellationException(Concurrency.kt:47) [utbot-core-2023.01-SNAPSHOT.jar:?]
	at org.utbot.framework.plugin.api.TestCaseGenerator.generate(TestCaseGenerator.kt:147) [utbot-framework-2023.01-SNAPSHOT.jar:?]
	at org.utbot.framework.process.EngineProcessMainKt$setup$3.invoke(EngineProcessMain.kt:105) [utbot-framework-2023.01-SNAPSHOT.jar:?]
	at org.utbot.framework.process.EngineProcessMainKt$setup$3.invoke(EngineProcessMain.kt:95) [utbot-framework-2023.01-SNAPSHOT.jar:?]
	at org.utbot.rd.IdleWatchdog$wrapActiveCall$1$1.invoke(ClientProcessUtil.kt:96) [utbot-rd-2023.01-SNAPSHOT.jar:?]
	at org.utbot.rd.IdleWatchdog.wrapActive(ClientProcessUtil.kt:83) [utbot-rd-2023.01-SNAPSHOT.jar:?]
	at org.utbot.rd.IdleWatchdog$wrapActiveCall$1.invoke(ClientProcessUtil.kt:95) [utbot-rd-2023.01-SNAPSHOT.jar:?]
	at com.jetbrains.rd.framework.IRdEndpoint$set$1.invoke(TaskInterfaces.kt:182) [utbot-instrumentation-2023.01-SNAPSHOT.jar:?]
	at com.jetbrains.rd.framework.IRdEndpoint$set$1.invoke(TaskInterfaces.kt:173) [utbot-instrumentation-2023.01-SNAPSHOT.jar:?]
	at com.jetbrains.rd.framework.impl.RdCall.onWireReceived(RdTask.kt:360) [utbot-instrumentation-2023.01-SNAPSHOT.jar:?]
	at com.jetbrains.rd.framework.MessageBroker$invoke$2$2.invoke(MessageBroker.kt:57) [utbot-instrumentation-2023.01-SNAPSHOT.jar:?]
	at com.jetbrains.rd.framework.MessageBroker$invoke$2$2.invoke(MessageBroker.kt:12) [utbot-instrumentation-2023.01-SNAPSHOT.jar:?]
	at com.jetbrains.rd.framework.impl.ProtocolContexts.readMessageContextAndInvoke(ProtocolContexts.kt:151) [utbot-instrumentation-2023.01-SNAPSHOT.jar:?]
	at com.jetbrains.rd.framework.MessageBroker$invoke$2.invoke(MessageBroker.kt:56) [utbot-instrumentation-2023.01-SNAPSHOT.jar:?]
	at com.jetbrains.rd.framework.MessageBroker$invoke$2.invoke(MessageBroker.kt:12) [utbot-instrumentation-2023.01-SNAPSHOT.jar:?]
	at com.jetbrains.rd.util.threading.SingleThreadSchedulerBase$queue$1.run(SingleThreadScheduler.kt:41) [utbot-instrumentation-2023.01-SNAPSHOT.jar:?]
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:1.8.0_352]
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:1.8.0_352]
	at java.lang.Thread.run(Thread.java:750) [?:1.8.0_352]

Metadata

Metadata

Assignees

Labels

comp-fuzzingIssue is related to the fuzzingctg-bugIssue is a buglang-javaIssue is related to Java support

Type

No type

Projects

Status

Done

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions