Skip to content

IntelliJ Platform test framework conflicts with Lincheck causing UnsupportedOperationException #870

@stillya

Description

@stillya

Description

Lincheck tests fail when using IntelliJ Platform test framework. Both IntelliJ Platform test framework and Lincheck perform bytecode instrumentation on test classes, which likely causes the conflict.

Environment

  • IntelliJ Platform version: 2.9.0
  • Lincheck version: 2.37
  • JDK: 17
  • Kotlin: 2.1.20

Error

class redefinition failed: attempted to change the schema (add/remove fields)
java.lang.UnsupportedOperationException: class redefinition failed: attempted to change the schema (add/remove fields)
	at java.instrument/sun.instrument.InstrumentationImpl.retransformClasses0(Native Method)
	at java.instrument/sun.instrument.InstrumentationImpl.retransformClasses(InstrumentationImpl.java:169)
	at org.jetbrains.kotlinx.lincheck.transformation.LincheckJavaAgent.install(LincheckJavaAgent.kt:139)
	at org.jetbrains.kotlinx.lincheck.LinChecker.checkImpl$lincheck(LinChecker.kt:348)
	at org.jetbrains.kotlinx.lincheck.LinChecker.check(LinChecker.kt:48)
	at org.jetbrains.kotlinx.lincheck.LinChecker$Companion.check(LinChecker.kt:191)
	at org.jetbrains.kotlinx.lincheck.LinCheckerKt.check(LinChecker.kt:291)
	at org.jetbrains.kotlinx.lincheck.LinCheckerKt.check(LinChecker.kt:300)
	at dev.stillya.vpet.pet.PetAnimatedObservingStateLincheckTest.stressTest(PetAnimatedObservingStateLincheckTest.kt:30)

Reproduce

Repository: https://github.com/stillya/vpet
Branch: reproduce-lincheck

Run test:

./gradlew test --tests "dev.stillya.vpet.pet.PetAnimatedObservingStateLincheckTest"

Test file: src/test/kotlin/dev/stillya/vpet/pet/PetAnimatedObservingStateLincheckTest.kt

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions