Skip to content

Fuzzing generates impossible UtAssembleModels #1684

@Domonion

Description

@Domonion

Description

In Contest Estimator on project spoon-core-7.0.0 fuzzing creates impossible models.
To Reproduce

Steps to reproduce the behavior:

  1. Use JDK 8 with Contest Estimator run configuration amd javaHome
  2. Apply patch - repro.patch.txt

Expected behavior

Tests are supposed to be generated.

Actual behavior

Following exception is thrown in Instrumentation process

java.lang.IllegalStateException: Can't find method add(Ljava/lang/Object;)Z in spoon.support.reflect.code.CtStatementListImpl
	at org.utbot.framework.plugin.api.util.IdUtilKt.getMethod(IdUtil.kt:481)
	at org.utbot.framework.concrete.constructors.MockValueConstructor.call(MockValueConstructor.kt:482)
	at org.utbot.framework.concrete.constructors.MockValueConstructor.updateWithExecutableCallModel(MockValueConstructor.kt:425)
	at org.utbot.framework.concrete.constructors.MockValueConstructor.constructFromAssembleModel(MockValueConstructor.kt:375)
	at org.utbot.framework.concrete.constructors.MockValueConstructor.construct(MockValueConstructor.kt:136)
	at org.utbot.framework.concrete.constructors.MockValueConstructor.constructMethodParameters(MockValueConstructor.kt:111)
	at org.utbot.framework.concrete.phases.ValueConstructionContext.constructParameters(ValueConstructionContext.kt:39)
	at org.utbot.framework.concrete.UtExecutionInstrumentation.invoke(UtExecutionInstrumentation.kt:137)
	at org.utbot.framework.concrete.UtExecutionInstrumentation.invoke(UtExecutionInstrumentation.kt:96)
	at org.utbot.instrumentation.process.InstrumentedProcessMainKt$setup$2.invoke(InstrumentedProcessMain.kt:128)
	at org.utbot.instrumentation.process.InstrumentedProcessMainKt$setup$2.invoke(InstrumentedProcessMain.kt:124)
	at org.utbot.rd.IdleWatchdog$wrapActiveCall$1$1.invoke(ClientProcessUtil.kt:96)
	at org.utbot.rd.IdleWatchdog.wrapActive(ClientProcessUtil.kt:83)
	at org.utbot.rd.IdleWatchdog$wrapActiveCall$1.invoke(ClientProcessUtil.kt:95)
	at com.jetbrains.rd.framework.IRdEndpoint$set$1.invoke(TaskInterfaces.kt:182)
	at com.jetbrains.rd.framework.IRdEndpoint$set$1.invoke(TaskInterfaces.kt:173)
	at com.jetbrains.rd.framework.impl.RdCall.onWireReceived(RdTask.kt:360)
	at com.jetbrains.rd.framework.MessageBroker$invoke$2$2.invoke(MessageBroker.kt:57)
	at com.jetbrains.rd.framework.MessageBroker$invoke$2$2.invoke(MessageBroker.kt:12)
	at com.jetbrains.rd.framework.impl.ProtocolContexts.readMessageContextAndInvoke(ProtocolContexts.kt:151)
	at com.jetbrains.rd.framework.MessageBroker$invoke$2.invoke(MessageBroker.kt:56)
	at com.jetbrains.rd.framework.MessageBroker$invoke$2.invoke(MessageBroker.kt:12)
	at com.jetbrains.rd.util.threading.SingleThreadSchedulerBase$queue$1.run(SingleThreadScheduler.kt:41)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)

Visual proofs (screenshots, logs, images)
idea64_xKQEZtqNpd

Additional context

Set runInstrumentedProcessWithDebug=true and instrumentedProcessLogLevel=Debug in .utbot/settings.properties, run Utility Configurations/Listen to Instrumentation Process and add breakpoint to org/utbot/framework/concrete/UtExecutionInstrumentation.kt:144. You will see following exception:
idea64_oL82MuwQMY

Class CtStatementListImpl does not have method `add(object). Here is its hierarchy:
idea64_Bizo7bGUhS

Sources - repo

Metadata

Metadata

Labels

comp-contest-estimatorIssue is related to contest estimatorcomp-fuzzingIssue is related to the fuzzingctg-bugIssue is a bug

Type

No type

Projects

Status

Done

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions