// Copyright 2000-2021 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.

package org.jetbrains.kotlin.jps.build;

import com.intellij.testFramework.TestDataPath;
import org.jetbrains.kotlin.test.JUnit3RunnerWithInners;
import org.jetbrains.kotlin.test.KotlinTestUtils;
import org.jetbrains.kotlin.test.TestMetadata;
import org.jetbrains.kotlin.test.TestRoot;
import org.junit.runner.RunWith;
import org.jetbrains.kotlin.test.TargetBackend;

/*
 * This class is generated by {@link org.jetbrains.kotlin.generators.tests.TestsPackage}.
 * DO NOT MODIFY MANUALLY.
 */
@SuppressWarnings("all")
@TestRoot("jps/jps-plugin/tests")
@TestDataPath("$CONTENT_ROOT")
@RunWith(JUnit3RunnerWithInners.class)
public abstract class IncrementalJvmJpsTestGenerated extends AbstractIncrementalJvmJpsTest {
    @RunWith(JUnit3RunnerWithInners.class)
    @TestMetadata("testData/incremental/multiModule/common")
    public static class Common extends AbstractIncrementalJvmJpsTest {
        private void runTest(String testDataFilePath) throws Exception {
            KotlinTestUtils.runTest(this::doTest, this, TargetBackend.JVM_IR, testDataFilePath);
        }

        @TestMetadata("classAdded")
        public void testClassAdded() throws Exception {
            runTest("testData/incremental/multiModule/common/classAdded/");
        }

        @TestMetadata("classRemoved")
        public void testClassRemoved() throws Exception {
            runTest("testData/incremental/multiModule/common/classRemoved/");
        }

        @TestMetadata("constantValueChanged")
        public void testConstantValueChanged() throws Exception {
            runTest("testData/incremental/multiModule/common/constantValueChanged/");
        }

        @TestMetadata("copyFileToAnotherModule")
        public void testCopyFileToAnotherModule() throws Exception {
            runTest("testData/incremental/multiModule/common/copyFileToAnotherModule/");
        }

        @TestMetadata("defaultArgumentInConstructorRemoved")
        public void testDefaultArgumentInConstructorRemoved() throws Exception {
            runTest("testData/incremental/multiModule/common/defaultArgumentInConstructorRemoved/");
        }

        @TestMetadata("defaultParameterAdded")
        public void testDefaultParameterAdded() throws Exception {
            runTest("testData/incremental/multiModule/common/defaultParameterAdded/");
        }

        @TestMetadata("defaultParameterAddedForTopLevelFun")
        public void testDefaultParameterAddedForTopLevelFun() throws Exception {
            runTest("testData/incremental/multiModule/common/defaultParameterAddedForTopLevelFun/");
        }

        @TestMetadata("defaultParameterRemoved")
        public void testDefaultParameterRemoved() throws Exception {
            runTest("testData/incremental/multiModule/common/defaultParameterRemoved/");
        }

        @TestMetadata("defaultParameterRemovedForTopLevelFun")
        public void testDefaultParameterRemovedForTopLevelFun() throws Exception {
            runTest("testData/incremental/multiModule/common/defaultParameterRemovedForTopLevelFun/");
        }

        @TestMetadata("defaultValueInConstructorRemoved")
        public void testDefaultValueInConstructorRemoved() throws Exception {
            runTest("testData/incremental/multiModule/common/defaultValueInConstructorRemoved/");
        }

        @TestMetadata("duplicatedClass")
        public void testDuplicatedClass() throws Exception {
            runTest("testData/incremental/multiModule/common/duplicatedClass/");
        }

        @TestMetadata("exportedDependency")
        public void testExportedDependency() throws Exception {
            runTest("testData/incremental/multiModule/common/exportedDependency/");
        }

        @TestMetadata("functionFromDifferentPackageChanged")
        public void testFunctionFromDifferentPackageChanged() throws Exception {
            runTest("testData/incremental/multiModule/common/functionFromDifferentPackageChanged/");
        }

        @TestMetadata("inlineFunctionInlined")
        public void testInlineFunctionInlined() throws Exception {
            runTest("testData/incremental/multiModule/common/inlineFunctionInlined/");
        }

        @TestMetadata("inlineFunctionTwoPackageParts")
        public void testInlineFunctionTwoPackageParts() throws Exception {
            runTest("testData/incremental/multiModule/common/inlineFunctionTwoPackageParts/");
        }

        @TestMetadata("moveFileToAnotherModule")
        public void testMoveFileToAnotherModule() throws Exception {
            runTest("testData/incremental/multiModule/common/moveFileToAnotherModule/");
        }

        @TestMetadata("simple")
        public void testSimple() throws Exception {
            runTest("testData/incremental/multiModule/common/simple/");
        }

        @TestMetadata("simpleDependency")
        public void testSimpleDependency() throws Exception {
            runTest("testData/incremental/multiModule/common/simpleDependency/");
        }

        @TestMetadata("simpleDependencyErrorOnAccessToInternal1")
        public void testSimpleDependencyErrorOnAccessToInternal1() throws Exception {
            runTest("testData/incremental/multiModule/common/simpleDependencyErrorOnAccessToInternal1/");
        }

        @TestMetadata("simpleDependencyErrorOnAccessToInternal2")
        public void testSimpleDependencyErrorOnAccessToInternal2() throws Exception {
            runTest("testData/incremental/multiModule/common/simpleDependencyErrorOnAccessToInternal2/");
        }

        @TestMetadata("simpleDependencyUnchanged")
        public void testSimpleDependencyUnchanged() throws Exception {
            runTest("testData/incremental/multiModule/common/simpleDependencyUnchanged/");
        }

        @TestMetadata("transitiveDependency")
        public void testTransitiveDependency() throws Exception {
            runTest("testData/incremental/multiModule/common/transitiveDependency/");
        }

        @TestMetadata("transitiveInlining")
        public void testTransitiveInlining() throws Exception {
            runTest("testData/incremental/multiModule/common/transitiveInlining/");
        }

        @TestMetadata("twoDependants")
        public void testTwoDependants() throws Exception {
            runTest("testData/incremental/multiModule/common/twoDependants/");
        }
    }

    @RunWith(JUnit3RunnerWithInners.class)
    @TestMetadata("testData/incremental/multiModule/jvm")
    public static class Jvm extends AbstractIncrementalJvmJpsTest {
        private void runTest(String testDataFilePath) throws Exception {
            KotlinTestUtils.runTest(this::doTest, this, testDataFilePath);
        }

        @TestMetadata("circular")
        public void testCircular() throws Exception {
            runTest("testData/incremental/multiModule/jvm/circular/");
        }

        @TestMetadata("circularDependencyClasses")
        public void testCircularDependencyClasses() throws Exception {
            runTest("testData/incremental/multiModule/jvm/circularDependencyClasses/");
        }

        @TestMetadata("circularDependencySamePackageUnchanged")
        public void testCircularDependencySamePackageUnchanged() throws Exception {
            runTest("testData/incremental/multiModule/jvm/circularDependencySamePackageUnchanged/");
        }

        @TestMetadata("circularDependencyTopLevelFunctions")
        public void testCircularDependencyTopLevelFunctions() throws Exception {
            runTest("testData/incremental/multiModule/jvm/circularDependencyTopLevelFunctions/");
        }

        @TestMetadata("circularDependencyWithAccessToInternal")
        public void testCircularDependencyWithAccessToInternal() throws Exception {
            runTest("testData/incremental/multiModule/jvm/circularDependencyWithAccessToInternal/");
        }
    }

    @RunWith(JUnit3RunnerWithInners.class)
    @TestMetadata("testData/incremental/multiModule/multiplatform/custom")
    public static class Custom extends AbstractIncrementalJvmJpsTest {
        private void runTest(String testDataFilePath) throws Exception {
            KotlinTestUtils.runTest(this::doTest, this, TargetBackend.JVM_IR, testDataFilePath);
        }

        @TestMetadata("buildError")
        public void testBuildError() throws Exception {
            runTest("testData/incremental/multiModule/multiplatform/custom/buildError/");
        }

        @TestMetadata("buildError2Levels")
        public void testBuildError2Levels() throws Exception {
            runTest("testData/incremental/multiModule/multiplatform/custom/buildError2Levels/");
        }

        @TestMetadata("commonSourcesCompilerArg")
        public void testCommonSourcesCompilerArg() throws Exception {
            runTest("testData/incremental/multiModule/multiplatform/custom/commonSourcesCompilerArg/");
        }

        @TestMetadata("complementaryFiles")
        public void testComplementaryFiles() throws Exception {
            runTest("testData/incremental/multiModule/multiplatform/custom/complementaryFiles/");
        }

        @TestMetadata("modifyOptionalAnnotationUsage")
        public void testModifyOptionalAnnotationUsage() throws Exception {
            runTest("testData/incremental/multiModule/multiplatform/custom/modifyOptionalAnnotationUsage/");
        }

        @TestMetadata("notSameCompiler")
        public void testNotSameCompiler() throws Exception {
            runTest("testData/incremental/multiModule/multiplatform/custom/notSameCompiler/");
        }
    }

    @RunWith(JUnit3RunnerWithInners.class)
    @TestMetadata("testData/incremental/pureKotlin")
    public static class PureKotlin extends AbstractIncrementalJvmJpsTest {
        private void runTest(String testDataFilePath) throws Exception {
            KotlinTestUtils.runTest(this::doTest, this, TargetBackend.JVM_IR, testDataFilePath);
        }

        @TestMetadata("accessingFunctionsViaPackagePart")
        public void testAccessingFunctionsViaPackagePart() throws Exception {
            runTest("testData/incremental/pureKotlin/accessingFunctionsViaPackagePart/");
        }

        @TestMetadata("accessingPropertiesViaField")
        public void testAccessingPropertiesViaField() throws Exception {
            runTest("testData/incremental/pureKotlin/accessingPropertiesViaField/");
        }

        @TestMetadata("addClass")
        public void testAddClass() throws Exception {
            runTest("testData/incremental/pureKotlin/addClass/");
        }

        @TestMetadata("addFileWithFunctionOverload")
        public void testAddFileWithFunctionOverload() throws Exception {
            runTest("testData/incremental/pureKotlin/addFileWithFunctionOverload/");
        }

        @TestMetadata("addMemberTypeAlias")
        public void testAddMemberTypeAlias() throws Exception {
            runTest("testData/incremental/pureKotlin/addMemberTypeAlias/");
        }

        @TestMetadata("addTopLevelTypeAlias")
        public void testAddTopLevelTypeAlias() throws Exception {
            runTest("testData/incremental/pureKotlin/addTopLevelTypeAlias/");
        }

        @TestMetadata("allConstants")
        public void testAllConstants() throws Exception {
            runTest("testData/incremental/pureKotlin/allConstants/");
        }

        @TestMetadata("annotations")
        public void testAnnotations() throws Exception {
            runTest("testData/incremental/pureKotlin/annotations/");
        }

        @TestMetadata("anonymousObjectChanged")
        public void testAnonymousObjectChanged() throws Exception {
            runTest("testData/incremental/pureKotlin/anonymousObjectChanged/");
        }

        @TestMetadata("changeTypeImplicitlyWithCircularDependency")
        public void testChangeTypeImplicitlyWithCircularDependency() throws Exception {
            runTest("testData/incremental/pureKotlin/changeTypeImplicitlyWithCircularDependency/");
        }

        @TestMetadata("changeWithRemovingUsage")
        public void testChangeWithRemovingUsage() throws Exception {
            runTest("testData/incremental/pureKotlin/changeWithRemovingUsage/");
        }

        @TestMetadata("classInlineFunctionChanged")
        public void testClassInlineFunctionChanged() throws Exception {
            runTest("testData/incremental/pureKotlin/classInlineFunctionChanged/");
        }

        @TestMetadata("classObjectConstantChanged")
        public void testClassObjectConstantChanged() throws Exception {
            runTest("testData/incremental/pureKotlin/classObjectConstantChanged/");
        }

        @TestMetadata("classRecreated")
        public void testClassRecreated() throws Exception {
            runTest("testData/incremental/pureKotlin/classRecreated/");
        }

        @TestMetadata("classRemoved")
        public void testClassRemoved() throws Exception {
            runTest("testData/incremental/pureKotlin/classRemoved/");
        }

        @TestMetadata("classSignatureChanged")
        public void testClassSignatureChanged() throws Exception {
            runTest("testData/incremental/pureKotlin/classSignatureChanged/");
        }

        @TestMetadata("classSignatureUnchanged")
        public void testClassSignatureUnchanged() throws Exception {
            runTest("testData/incremental/pureKotlin/classSignatureUnchanged/");
        }

        @TestMetadata("compilationErrorThenFixedOtherPackage")
        public void testCompilationErrorThenFixedOtherPackage() throws Exception {
            runTest("testData/incremental/pureKotlin/compilationErrorThenFixedOtherPackage/");
        }

        @TestMetadata("compilationErrorThenFixedSamePackage")
        public void testCompilationErrorThenFixedSamePackage() throws Exception {
            runTest("testData/incremental/pureKotlin/compilationErrorThenFixedSamePackage/");
        }

        @TestMetadata("compilationErrorThenFixedWithPhantomPart")
        public void testCompilationErrorThenFixedWithPhantomPart() throws Exception {
            runTest("testData/incremental/pureKotlin/compilationErrorThenFixedWithPhantomPart/");
        }

        @TestMetadata("compilationErrorThenFixedWithPhantomPart2")
        public void testCompilationErrorThenFixedWithPhantomPart2() throws Exception {
            runTest("testData/incremental/pureKotlin/compilationErrorThenFixedWithPhantomPart2/");
        }

        @TestMetadata("compilationErrorThenFixedWithPhantomPart3")
        public void testCompilationErrorThenFixedWithPhantomPart3() throws Exception {
            runTest("testData/incremental/pureKotlin/compilationErrorThenFixedWithPhantomPart3/");
        }

        @TestMetadata("constantRemoved")
        public void testConstantRemoved() throws Exception {
            runTest("testData/incremental/pureKotlin/constantRemoved/");
        }

        @TestMetadata("constantValueChanged")
        public void testConstantValueChanged() throws Exception {
            runTest("testData/incremental/pureKotlin/constantValueChanged/");
        }

        @TestMetadata("constantsUnchanged")
        public void testConstantsUnchanged() throws Exception {
            runTest("testData/incremental/pureKotlin/constantsUnchanged/");
        }

        @TestMetadata("defaultArgumentInConstructorAdded")
        public void testDefaultArgumentInConstructorAdded() throws Exception {
            runTest("testData/incremental/pureKotlin/defaultArgumentInConstructorAdded/");
        }

        @TestMetadata("defaultArgumentInConstructorRemoved")
        public void testDefaultArgumentInConstructorRemoved() throws Exception {
            runTest("testData/incremental/pureKotlin/defaultArgumentInConstructorRemoved/");
        }

        @TestMetadata("defaultValueAdded")
        public void testDefaultValueAdded() throws Exception {
            runTest("testData/incremental/pureKotlin/defaultValueAdded/");
        }

        @TestMetadata("defaultValueChanged")
        public void testDefaultValueChanged() throws Exception {
            runTest("testData/incremental/pureKotlin/defaultValueChanged/");
        }

        @TestMetadata("defaultValueInConstructorChanged")
        public void testDefaultValueInConstructorChanged() throws Exception {
            runTest("testData/incremental/pureKotlin/defaultValueInConstructorChanged/");
        }

        @TestMetadata("defaultValueInConstructorRemoved")
        public void testDefaultValueInConstructorRemoved() throws Exception {
            runTest("testData/incremental/pureKotlin/defaultValueInConstructorRemoved/");
        }

        @TestMetadata("defaultValueRemoved1")
        public void testDefaultValueRemoved1() throws Exception {
            runTest("testData/incremental/pureKotlin/defaultValueRemoved1/");
        }

        @TestMetadata("defaultValueRemoved2")
        public void testDefaultValueRemoved2() throws Exception {
            runTest("testData/incremental/pureKotlin/defaultValueRemoved2/");
        }

        @TestMetadata("delegatedPropertyInlineExtensionAccessor")
        public void testDelegatedPropertyInlineExtensionAccessor() throws Exception {
            runTest("testData/incremental/pureKotlin/delegatedPropertyInlineExtensionAccessor/");
        }

        @TestMetadata("delegatedPropertyInlineMethodAccessor")
        public void testDelegatedPropertyInlineMethodAccessor() throws Exception {
            runTest("testData/incremental/pureKotlin/delegatedPropertyInlineMethodAccessor/");
        }

        @TestMetadata("dependencyClassReferenced")
        public void testDependencyClassReferenced() throws Exception {
            runTest("testData/incremental/pureKotlin/dependencyClassReferenced/");
        }

        @TestMetadata("fileWithConstantRemoved")
        public void testFileWithConstantRemoved() throws Exception {
            runTest("testData/incremental/pureKotlin/fileWithConstantRemoved/");
        }

        @TestMetadata("fileWithInlineFunctionRemoved")
        public void testFileWithInlineFunctionRemoved() throws Exception {
            runTest("testData/incremental/pureKotlin/fileWithInlineFunctionRemoved/");
        }

        @TestMetadata("filesExchangePackages")
        public void testFilesExchangePackages() throws Exception {
            runTest("testData/incremental/pureKotlin/filesExchangePackages/");
        }

        @TestMetadata("funRedeclaration")
        public void testFunRedeclaration() throws Exception {
            runTest("testData/incremental/pureKotlin/funRedeclaration/");
        }

        @TestMetadata("funVsConstructorOverloadConflict")
        public void testFunVsConstructorOverloadConflict() throws Exception {
            runTest("testData/incremental/pureKotlin/funVsConstructorOverloadConflict/");
        }

        @TestMetadata("functionBecameInline")
        public void testFunctionBecameInline() throws Exception {
            runTest("testData/incremental/pureKotlin/functionBecameInline/");
        }

        @TestMetadata("functionReferencingClass")
        public void testFunctionReferencingClass() throws Exception {
            runTest("testData/incremental/pureKotlin/functionReferencingClass/");
        }

        @TestMetadata("independentClasses")
        public void testIndependentClasses() throws Exception {
            runTest("testData/incremental/pureKotlin/independentClasses/");
        }

        @TestMetadata("inlineFunctionBecomesNonInline")
        public void testInlineFunctionBecomesNonInline() throws Exception {
            runTest("testData/incremental/pureKotlin/inlineFunctionBecomesNonInline/");
        }

        @TestMetadata("inlineFunctionUsageAdded")
        public void testInlineFunctionUsageAdded() throws Exception {
            runTest("testData/incremental/pureKotlin/inlineFunctionUsageAdded/");
        }

        @TestMetadata("inlineFunctionsCircularDependency")
        public void testInlineFunctionsCircularDependency() throws Exception {
            runTest("testData/incremental/pureKotlin/inlineFunctionsCircularDependency/");
        }

        @TestMetadata("inlineFunctionsUnchanged")
        public void testInlineFunctionsUnchanged() throws Exception {
            runTest("testData/incremental/pureKotlin/inlineFunctionsUnchanged/");
        }

        @TestMetadata("inlineLinesChanged")
        public void testInlineLinesChanged() throws Exception {
            runTest("testData/incremental/pureKotlin/inlineLinesChanged/");
        }

        @TestMetadata("inlineModifiedWithUsage")
        public void testInlineModifiedWithUsage() throws Exception {
            runTest("testData/incremental/pureKotlin/inlineModifiedWithUsage/");
        }

        @TestMetadata("inlinePrivateFunctionAdded")
        public void testInlinePrivateFunctionAdded() throws Exception {
            runTest("testData/incremental/pureKotlin/inlinePrivateFunctionAdded/");
        }

        @TestMetadata("inlinePropertyInClass")
        public void testInlinePropertyInClass() throws Exception {
            runTest("testData/incremental/pureKotlin/inlinePropertyInClass/");
        }

        @TestMetadata("inlinePropertyOnTopLevel")
        public void testInlinePropertyOnTopLevel() throws Exception {
            runTest("testData/incremental/pureKotlin/inlinePropertyOnTopLevel/");
        }

        @TestMetadata("inlineSuspendFunctionChanged")
        public void testInlineSuspendFunctionChanged() throws Exception {
            runTest("testData/incremental/pureKotlin/inlineSuspendFunctionChanged/");
        }

        @TestMetadata("inlineTwoFunctionsOneChanged")
        public void testInlineTwoFunctionsOneChanged() throws Exception {
            runTest("testData/incremental/pureKotlin/inlineTwoFunctionsOneChanged/");
        }

        @TestMetadata("inlineUsedWhereDeclared")
        public void testInlineUsedWhereDeclared() throws Exception {
            runTest("testData/incremental/pureKotlin/inlineUsedWhereDeclared/");
        }

        @TestMetadata("innerClassesFromSupertypes")
        public void testInnerClassesFromSupertypes() throws Exception {
            runTest("testData/incremental/pureKotlin/innerClassesFromSupertypes/");
        }

        @TestMetadata("internalClassChanged")
        public void testInternalClassChanged() throws Exception {
            runTest("testData/incremental/pureKotlin/internalClassChanged/");
        }

        @TestMetadata("internalMemberInClassChanged")
        public void testInternalMemberInClassChanged() throws Exception {
            runTest("testData/incremental/pureKotlin/internalMemberInClassChanged/");
        }

        @TestMetadata("internalTypealias")
        public void testInternalTypealias() throws Exception {
            runTest("testData/incremental/pureKotlin/internalTypealias/");
        }

        @TestMetadata("internalTypealiasConstructor")
        public void testInternalTypealiasConstructor() throws Exception {
            runTest("testData/incremental/pureKotlin/internalTypealiasConstructor/");
        }

        @TestMetadata("internalTypealiasObject")
        public void testInternalTypealiasObject() throws Exception {
            runTest("testData/incremental/pureKotlin/internalTypealiasObject/");
        }

        @TestMetadata("localClassChanged")
        public void testLocalClassChanged() throws Exception {
            runTest("testData/incremental/pureKotlin/localClassChanged/");
        }

        @TestMetadata("moveClass")
        public void testMoveClass() throws Exception {
            runTest("testData/incremental/pureKotlin/moveClass/");
        }

        @TestMetadata("moveFileWithChangingPackage")
        public void testMoveFileWithChangingPackage() throws Exception {
            runTest("testData/incremental/pureKotlin/moveFileWithChangingPackage/");
        }

        @TestMetadata("moveFileWithoutChangingPackage")
        public void testMoveFileWithoutChangingPackage() throws Exception {
            runTest("testData/incremental/pureKotlin/moveFileWithoutChangingPackage/");
        }

        @TestMetadata("multiplePackagesModified")
        public void testMultiplePackagesModified() throws Exception {
            runTest("testData/incremental/pureKotlin/multiplePackagesModified/");
        }

        @TestMetadata("objectConstantChanged")
        public void testObjectConstantChanged() throws Exception {
            runTest("testData/incremental/pureKotlin/objectConstantChanged/");
        }

        @TestMetadata("ourClassReferenced")
        public void testOurClassReferenced() throws Exception {
            runTest("testData/incremental/pureKotlin/ourClassReferenced/");
        }

        @TestMetadata("overloadInlined")
        public void testOverloadInlined() throws Exception {
            runTest("testData/incremental/pureKotlin/overloadInlined/");
        }

        @TestMetadata("packageConstantChanged")
        public void testPackageConstantChanged() throws Exception {
            runTest("testData/incremental/pureKotlin/packageConstantChanged/");
        }

        @TestMetadata("packageFileAdded")
        public void testPackageFileAdded() throws Exception {
            runTest("testData/incremental/pureKotlin/packageFileAdded/");
        }

        @TestMetadata("packageFileChangedPackage")
        public void testPackageFileChangedPackage() throws Exception {
            runTest("testData/incremental/pureKotlin/packageFileChangedPackage/");
        }

        @TestMetadata("packageFileChangedThenOtherRemoved")
        public void testPackageFileChangedThenOtherRemoved() throws Exception {
            runTest("testData/incremental/pureKotlin/packageFileChangedThenOtherRemoved/");
        }

        @TestMetadata("packageFileRemoved")
        public void testPackageFileRemoved() throws Exception {
            runTest("testData/incremental/pureKotlin/packageFileRemoved/");
        }

        @TestMetadata("packageFilesChangedInTurn")
        public void testPackageFilesChangedInTurn() throws Exception {
            runTest("testData/incremental/pureKotlin/packageFilesChangedInTurn/");
        }

        @TestMetadata("packageInlineFunctionAccessingField")
        public void testPackageInlineFunctionAccessingField() throws Exception {
            runTest("testData/incremental/pureKotlin/packageInlineFunctionAccessingField/");
        }

        @TestMetadata("packageInlineFunctionFromOurPackage")
        public void testPackageInlineFunctionFromOurPackage() throws Exception {
            runTest("testData/incremental/pureKotlin/packageInlineFunctionFromOurPackage/");
        }

        @TestMetadata("packagePrivateOnlyChanged")
        public void testPackagePrivateOnlyChanged() throws Exception {
            runTest("testData/incremental/pureKotlin/packagePrivateOnlyChanged/");
        }

        @TestMetadata("packageRecreated")
        public void testPackageRecreated() throws Exception {
            runTest("testData/incremental/pureKotlin/packageRecreated/");
        }

        @TestMetadata("packageRecreatedAfterRenaming")
        public void testPackageRecreatedAfterRenaming() throws Exception {
            runTest("testData/incremental/pureKotlin/packageRecreatedAfterRenaming/");
        }

        @TestMetadata("packageRemoved")
        public void testPackageRemoved() throws Exception {
            runTest("testData/incremental/pureKotlin/packageRemoved/");
        }

        @TestMetadata("parameterWithDefaultValueAdded")
        public void testParameterWithDefaultValueAdded() throws Exception {
            runTest("testData/incremental/pureKotlin/parameterWithDefaultValueAdded/");
        }

        @TestMetadata("parameterWithDefaultValueRemoved")
        public void testParameterWithDefaultValueRemoved() throws Exception {
            runTest("testData/incremental/pureKotlin/parameterWithDefaultValueRemoved/");
        }

        @TestMetadata("privateConstantsChanged")
        public void testPrivateConstantsChanged() throws Exception {
            runTest("testData/incremental/pureKotlin/privateConstantsChanged/");
        }

        @TestMetadata("privateMethodAdded")
        public void testPrivateMethodAdded() throws Exception {
            runTest("testData/incremental/pureKotlin/privateMethodAdded/");
        }

        @TestMetadata("privateMethodDeleted")
        public void testPrivateMethodDeleted() throws Exception {
            runTest("testData/incremental/pureKotlin/privateMethodDeleted/");
        }

        @TestMetadata("privateMethodSignatureChanged")
        public void testPrivateMethodSignatureChanged() throws Exception {
            runTest("testData/incremental/pureKotlin/privateMethodSignatureChanged/");
        }

        @TestMetadata("privateSecondaryConstructorAdded")
        public void testPrivateSecondaryConstructorAdded() throws Exception {
            runTest("testData/incremental/pureKotlin/privateSecondaryConstructorAdded/");
        }

        @TestMetadata("privateSecondaryConstructorDeleted")
        public void testPrivateSecondaryConstructorDeleted() throws Exception {
            runTest("testData/incremental/pureKotlin/privateSecondaryConstructorDeleted/");
        }

        @TestMetadata("privateValAccessorChanged")
        public void testPrivateValAccessorChanged() throws Exception {
            runTest("testData/incremental/pureKotlin/privateValAccessorChanged/");
        }

        @TestMetadata("privateValAdded")
        public void testPrivateValAdded() throws Exception {
            runTest("testData/incremental/pureKotlin/privateValAdded/");
        }

        @TestMetadata("privateValDeleted")
        public void testPrivateValDeleted() throws Exception {
            runTest("testData/incremental/pureKotlin/privateValDeleted/");
        }

        @TestMetadata("privateValSignatureChanged")
        public void testPrivateValSignatureChanged() throws Exception {
            runTest("testData/incremental/pureKotlin/privateValSignatureChanged/");
        }

        @TestMetadata("privateVarAdded")
        public void testPrivateVarAdded() throws Exception {
            runTest("testData/incremental/pureKotlin/privateVarAdded/");
        }

        @TestMetadata("privateVarDeleted")
        public void testPrivateVarDeleted() throws Exception {
            runTest("testData/incremental/pureKotlin/privateVarDeleted/");
        }

        @TestMetadata("privateVarSignatureChanged")
        public void testPrivateVarSignatureChanged() throws Exception {
            runTest("testData/incremental/pureKotlin/privateVarSignatureChanged/");
        }

        @TestMetadata("propertyRedeclaration")
        public void testPropertyRedeclaration() throws Exception {
            runTest("testData/incremental/pureKotlin/propertyRedeclaration/");
        }

        @TestMetadata("publicPropertyWithPrivateSetter")
        public void testPublicPropertyWithPrivateSetter() throws Exception {
            runTest("testData/incremental/pureKotlin/publicPropertyWithPrivateSetter/");
        }

        @TestMetadata("removeAndRestoreCompanion")
        public void testRemoveAndRestoreCompanion() throws Exception {
            runTest("testData/incremental/pureKotlin/removeAndRestoreCompanion/");
        }

        @TestMetadata("removeAndRestoreCompanionWithImplicitUsages")
        public void testRemoveAndRestoreCompanionWithImplicitUsages() throws Exception {
            runTest("testData/incremental/pureKotlin/removeAndRestoreCompanionWithImplicitUsages/");
        }

        @TestMetadata("removeClass")
        public void testRemoveClass() throws Exception {
            runTest("testData/incremental/pureKotlin/removeClass/");
        }

        @TestMetadata("removeClassInDefaultPackage")
        public void testRemoveClassInDefaultPackage() throws Exception {
            runTest("testData/incremental/pureKotlin/removeClassInDefaultPackage/");
        }

        @TestMetadata("removeFileWithFunctionOverload")
        public void testRemoveFileWithFunctionOverload() throws Exception {
            runTest("testData/incremental/pureKotlin/removeFileWithFunctionOverload/");
        }

        @TestMetadata("removeMemberTypeAlias")
        public void testRemoveMemberTypeAlias() throws Exception {
            runTest("testData/incremental/pureKotlin/removeMemberTypeAlias/");
        }

        @TestMetadata("removeTopLevelTypeAlias")
        public void testRemoveTopLevelTypeAlias() throws Exception {
            runTest("testData/incremental/pureKotlin/removeTopLevelTypeAlias/");
        }

        @TestMetadata("removeUnusedFile")
        public void testRemoveUnusedFile() throws Exception {
            runTest("testData/incremental/pureKotlin/removeUnusedFile/");
        }

        @TestMetadata("renameClass")
        public void testRenameClass() throws Exception {
            runTest("testData/incremental/pureKotlin/renameClass/");
        }

        @TestMetadata("renameFileWithFunctionOverload")
        public void testRenameFileWithFunctionOverload() throws Exception {
            runTest("testData/incremental/pureKotlin/renameFileWithFunctionOverload/");
        }

        @TestMetadata("returnTypeChanged")
        public void testReturnTypeChanged() throws Exception {
            runTest("testData/incremental/pureKotlin/returnTypeChanged/");
        }

        @TestMetadata("sealedClassesAddImplements")
        public void testSealedClassesAddImplements() throws Exception {
            runTest("testData/incremental/pureKotlin/sealedClassesAddImplements/");
        }

        @TestMetadata("sealedClassesAddInheritor")
        public void testSealedClassesAddInheritor() throws Exception {
            runTest("testData/incremental/pureKotlin/sealedClassesAddInheritor/");
        }

        @TestMetadata("sealedClassesRemoveImplements")
        public void testSealedClassesRemoveImplements() throws Exception {
            runTest("testData/incremental/pureKotlin/sealedClassesRemoveImplements/");
        }

        @TestMetadata("sealedClassesRemoveInheritor")
        public void testSealedClassesRemoveInheritor() throws Exception {
            runTest("testData/incremental/pureKotlin/sealedClassesRemoveInheritor/");
        }

        @TestMetadata("sealedClassesUseSwitch")
        public void testSealedClassesUseSwitch() throws Exception {
            runTest("testData/incremental/pureKotlin/sealedClassesUseSwitch/");
        }

        @TestMetadata("secondaryConstructorInlined")
        public void testSecondaryConstructorInlined() throws Exception {
            runTest("testData/incremental/pureKotlin/secondaryConstructorInlined/");
        }

        @TestMetadata("simpleClassDependency")
        public void testSimpleClassDependency() throws Exception {
            runTest("testData/incremental/pureKotlin/simpleClassDependency/");
        }

        @TestMetadata("soleFileChangesPackage")
        public void testSoleFileChangesPackage() throws Exception {
            runTest("testData/incremental/pureKotlin/soleFileChangesPackage/");
        }

        @TestMetadata("subpackage")
        public void testSubpackage() throws Exception {
            runTest("testData/incremental/pureKotlin/subpackage/");
        }

        @TestMetadata("suspendWithStateMachine")
        public void testSuspendWithStateMachine() throws Exception {
            runTest("testData/incremental/pureKotlin/suspendWithStateMachine/");
        }

        @TestMetadata("topLevelFunctionSameSignature")
        public void testTopLevelFunctionSameSignature() throws Exception {
            runTest("testData/incremental/pureKotlin/topLevelFunctionSameSignature/");
        }

        @TestMetadata("topLevelMembersInTwoFiles")
        public void testTopLevelMembersInTwoFiles() throws Exception {
            runTest("testData/incremental/pureKotlin/topLevelMembersInTwoFiles/");
        }

        @TestMetadata("topLevelPrivateValUsageAdded")
        public void testTopLevelPrivateValUsageAdded() throws Exception {
            runTest("testData/incremental/pureKotlin/topLevelPrivateValUsageAdded/");
        }

        @TestMetadata("traitClassObjectConstantChanged")
        public void testTraitClassObjectConstantChanged() throws Exception {
            runTest("testData/incremental/pureKotlin/traitClassObjectConstantChanged/");
        }

        @TestMetadata("valAddCustomAccessor")
        public void testValAddCustomAccessor() throws Exception {
            runTest("testData/incremental/pureKotlin/valAddCustomAccessor/");
        }

        @TestMetadata("valRemoveCustomAccessor")
        public void testValRemoveCustomAccessor() throws Exception {
            runTest("testData/incremental/pureKotlin/valRemoveCustomAccessor/");
        }
    }

    @RunWith(JUnit3RunnerWithInners.class)
    @TestMetadata("testData/incremental/withJava")
    public abstract static class WithJava extends AbstractIncrementalJvmJpsTest {
        @RunWith(JUnit3RunnerWithInners.class)
        @TestMetadata("testData/incremental/withJava/convertBetweenJavaAndKotlin")
        public static class ConvertBetweenJavaAndKotlin extends AbstractIncrementalJvmJpsTest {
            private void runTest(String testDataFilePath) throws Exception {
                KotlinTestUtils.runTest(this::doTest, this, TargetBackend.JVM_IR, testDataFilePath);
            }

            @TestMetadata("javaToKotlin")
            public void testJavaToKotlin() throws Exception {
                runTest("testData/incremental/withJava/convertBetweenJavaAndKotlin/javaToKotlin/");
            }

            @TestMetadata("javaToKotlinAndBack")
            public void testJavaToKotlinAndBack() throws Exception {
                runTest("testData/incremental/withJava/convertBetweenJavaAndKotlin/javaToKotlinAndBack/");
            }

            @TestMetadata("javaToKotlinAndRemove")
            public void testJavaToKotlinAndRemove() throws Exception {
                runTest("testData/incremental/withJava/convertBetweenJavaAndKotlin/javaToKotlinAndRemove/");
            }

            @TestMetadata("kotlinToJava")
            public void testKotlinToJava() throws Exception {
                runTest("testData/incremental/withJava/convertBetweenJavaAndKotlin/kotlinToJava/");
            }
        }

        @RunWith(JUnit3RunnerWithInners.class)
        @TestMetadata("testData/incremental/withJava/javaUsedInKotlin")
        public static class JavaUsedInKotlin extends AbstractIncrementalJvmJpsTest {
            private void runTest(String testDataFilePath) throws Exception {
                KotlinTestUtils.runTest(this::doTest, this, TargetBackend.JVM_IR, testDataFilePath);
            }

            @TestMetadata("changeFieldType")
            public void testChangeFieldType() throws Exception {
                runTest("testData/incremental/withJava/javaUsedInKotlin/changeFieldType/");
            }

            @TestMetadata("changeNotUsedSignature")
            public void testChangeNotUsedSignature() throws Exception {
                runTest("testData/incremental/withJava/javaUsedInKotlin/changeNotUsedSignature/");
            }

            @TestMetadata("changePropertyOverrideType")
            public void testChangePropertyOverrideType() throws Exception {
                runTest("testData/incremental/withJava/javaUsedInKotlin/changePropertyOverrideType/");
            }

            @TestMetadata("changeSignature")
            public void testChangeSignature() throws Exception {
                runTest("testData/incremental/withJava/javaUsedInKotlin/changeSignature/");
            }

            @TestMetadata("changeSignaturePackagePrivate")
            public void testChangeSignaturePackagePrivate() throws Exception {
                runTest("testData/incremental/withJava/javaUsedInKotlin/changeSignaturePackagePrivate/");
            }

            @TestMetadata("changeSignaturePackagePrivateNonRoot")
            public void testChangeSignaturePackagePrivateNonRoot() throws Exception {
                runTest("testData/incremental/withJava/javaUsedInKotlin/changeSignaturePackagePrivateNonRoot/");
            }

            @TestMetadata("changeSignatureStatic")
            public void testChangeSignatureStatic() throws Exception {
                runTest("testData/incremental/withJava/javaUsedInKotlin/changeSignatureStatic/");
            }

            @TestMetadata("constantChanged")
            public void testConstantChanged() throws Exception {
                runTest("testData/incremental/withJava/javaUsedInKotlin/constantChanged/");
            }

            @TestMetadata("constantUnchanged")
            public void testConstantUnchanged() throws Exception {
                runTest("testData/incremental/withJava/javaUsedInKotlin/constantUnchanged/");
            }

            @TestMetadata("enumEntryAdded")
            public void testEnumEntryAdded() throws Exception {
                runTest("testData/incremental/withJava/javaUsedInKotlin/enumEntryAdded/");
            }

            @TestMetadata("enumEntryRemoved")
            public void testEnumEntryRemoved() throws Exception {
                runTest("testData/incremental/withJava/javaUsedInKotlin/enumEntryRemoved/");
            }

            @TestMetadata("javaAndKotlinChangedSimultaneously")
            public void testJavaAndKotlinChangedSimultaneously() throws Exception {
                runTest("testData/incremental/withJava/javaUsedInKotlin/javaAndKotlinChangedSimultaneously/");
            }

            @TestMetadata("javaFieldNullabilityChanged")
            public void testJavaFieldNullabilityChanged() throws Exception {
                runTest("testData/incremental/withJava/javaUsedInKotlin/javaFieldNullabilityChanged/");
            }

            @TestMetadata("javaMethodParamNullabilityChanged")
            public void testJavaMethodParamNullabilityChanged() throws Exception {
                runTest("testData/incremental/withJava/javaUsedInKotlin/javaMethodParamNullabilityChanged/");
            }

            @TestMetadata("javaMethodReturnTypeNullabilityChanged")
            public void testJavaMethodReturnTypeNullabilityChanged() throws Exception {
                runTest("testData/incremental/withJava/javaUsedInKotlin/javaMethodReturnTypeNullabilityChanged/");
            }

            @TestMetadata("methodAddedInSuper")
            public void testMethodAddedInSuper() throws Exception {
                runTest("testData/incremental/withJava/javaUsedInKotlin/methodAddedInSuper/");
            }

            @TestMetadata("methodRenamed")
            public void testMethodRenamed() throws Exception {
                runTest("testData/incremental/withJava/javaUsedInKotlin/methodRenamed/");
            }

            @TestMetadata("mixedInheritance")
            public void testMixedInheritance() throws Exception {
                runTest("testData/incremental/withJava/javaUsedInKotlin/mixedInheritance/");
            }

            @TestMetadata("notChangeSignature")
            public void testNotChangeSignature() throws Exception {
                runTest("testData/incremental/withJava/javaUsedInKotlin/notChangeSignature/");
            }

            @RunWith(JUnit3RunnerWithInners.class)
            @TestMetadata("testData/incremental/withJava/javaUsedInKotlin/samConversions")
            public static class SamConversions extends AbstractIncrementalJvmJpsTest {
                private void runTest(String testDataFilePath) throws Exception {
                    KotlinTestUtils.runTest(this::doTest, this, TargetBackend.JVM_IR, testDataFilePath);
                }

                @TestMetadata("methodAdded")
                public void testMethodAdded() throws Exception {
                    runTest("testData/incremental/withJava/javaUsedInKotlin/samConversions/methodAdded/");
                }

                @TestMetadata("methodAddedSamAdapter")
                public void testMethodAddedSamAdapter() throws Exception {
                    runTest("testData/incremental/withJava/javaUsedInKotlin/samConversions/methodAddedSamAdapter/");
                }

                @TestMetadata("methodSignatureChanged")
                public void testMethodSignatureChanged() throws Exception {
                    runTest("testData/incremental/withJava/javaUsedInKotlin/samConversions/methodSignatureChanged/");
                }

                @TestMetadata("methodSignatureChangedSamAdapter")
                public void testMethodSignatureChangedSamAdapter() throws Exception {
                    runTest("testData/incremental/withJava/javaUsedInKotlin/samConversions/methodSignatureChangedSamAdapter/");
                }
            }
        }

        @RunWith(JUnit3RunnerWithInners.class)
        @TestMetadata("testData/incremental/withJava/kotlinUsedInJava")
        public static class KotlinUsedInJava extends AbstractIncrementalJvmJpsTest {
            private void runTest(String testDataFilePath) throws Exception {
                KotlinTestUtils.runTest(this::doTest, this, TargetBackend.JVM_IR, testDataFilePath);
            }

            @TestMetadata("addOptionalParameter")
            public void testAddOptionalParameter() throws Exception {
                runTest("testData/incremental/withJava/kotlinUsedInJava/addOptionalParameter/");
            }

            @TestMetadata("changeNotUsedSignature")
            public void testChangeNotUsedSignature() throws Exception {
                runTest("testData/incremental/withJava/kotlinUsedInJava/changeNotUsedSignature/");
            }

            @TestMetadata("changeSignature")
            public void testChangeSignature() throws Exception {
                runTest("testData/incremental/withJava/kotlinUsedInJava/changeSignature/");
            }

            @TestMetadata("constantChanged")
            public void testConstantChanged() throws Exception {
                runTest("testData/incremental/withJava/kotlinUsedInJava/constantChanged/");
            }

            @TestMetadata("constantUnchanged")
            public void testConstantUnchanged() throws Exception {
                runTest("testData/incremental/withJava/kotlinUsedInJava/constantUnchanged/");
            }

            @TestMetadata("funRenamed")
            public void testFunRenamed() throws Exception {
                runTest("testData/incremental/withJava/kotlinUsedInJava/funRenamed/");
            }

            @TestMetadata("jvmFieldChanged")
            public void testJvmFieldChanged() throws Exception {
                runTest("testData/incremental/withJava/kotlinUsedInJava/jvmFieldChanged/");
            }

            @TestMetadata("jvmFieldUnchanged")
            public void testJvmFieldUnchanged() throws Exception {
                runTest("testData/incremental/withJava/kotlinUsedInJava/jvmFieldUnchanged/");
            }

            @TestMetadata("methodAddedInSuper")
            public void testMethodAddedInSuper() throws Exception {
                runTest("testData/incremental/withJava/kotlinUsedInJava/methodAddedInSuper/");
            }

            @TestMetadata("notChangeSignature")
            public void testNotChangeSignature() throws Exception {
                runTest("testData/incremental/withJava/kotlinUsedInJava/notChangeSignature/");
            }

            @TestMetadata("onlyTopLevelFunctionInFileRemoved")
            public void testOnlyTopLevelFunctionInFileRemoved() throws Exception {
                runTest("testData/incremental/withJava/kotlinUsedInJava/onlyTopLevelFunctionInFileRemoved/");
            }

            @TestMetadata("packageFileAdded")
            public void testPackageFileAdded() throws Exception {
                runTest("testData/incremental/withJava/kotlinUsedInJava/packageFileAdded/");
            }

            @TestMetadata("privateChanges")
            public void testPrivateChanges() throws Exception {
                runTest("testData/incremental/withJava/kotlinUsedInJava/privateChanges/");
            }

            @TestMetadata("propertyRenamed")
            public void testPropertyRenamed() throws Exception {
                runTest("testData/incremental/withJava/kotlinUsedInJava/propertyRenamed/");
            }
        }

        @RunWith(JUnit3RunnerWithInners.class)
        @TestMetadata("testData/incremental/withJava/other")
        public static class Other extends AbstractIncrementalJvmJpsTest {
            private void runTest(String testDataFilePath) throws Exception {
                KotlinTestUtils.runTest(this::doTest, this, TargetBackend.JVM_IR, testDataFilePath);
            }

            @TestMetadata("accessingFunctionsViaRenamedFileClass")
            public void testAccessingFunctionsViaRenamedFileClass() throws Exception {
                runTest("testData/incremental/withJava/other/accessingFunctionsViaRenamedFileClass/");
            }

            @TestMetadata("allKotlinFilesRemovedThenNewAdded")
            public void testAllKotlinFilesRemovedThenNewAdded() throws Exception {
                runTest("testData/incremental/withJava/other/allKotlinFilesRemovedThenNewAdded/");
            }

            @TestMetadata("classRedeclaration")
            public void testClassRedeclaration() throws Exception {
                runTest("testData/incremental/withJava/other/classRedeclaration/");
            }

            @TestMetadata("classToPackageFacade")
            public void testClassToPackageFacade() throws Exception {
                runTest("testData/incremental/withJava/other/classToPackageFacade/");
            }

            @TestMetadata("conflictingPlatformDeclarations")
            public void testConflictingPlatformDeclarations() throws Exception {
                runTest("testData/incremental/withJava/other/conflictingPlatformDeclarations/");
            }

            @TestMetadata("defaultValueInConstructorAdded")
            public void testDefaultValueInConstructorAdded() throws Exception {
                runTest("testData/incremental/withJava/other/defaultValueInConstructorAdded/");
            }

            @TestMetadata("inlineFunctionWithJvmNameInClass")
            public void testInlineFunctionWithJvmNameInClass() throws Exception {
                runTest("testData/incremental/withJava/other/inlineFunctionWithJvmNameInClass/");
            }

            @TestMetadata("inlineTopLevelFunctionWithJvmName")
            public void testInlineTopLevelFunctionWithJvmName() throws Exception {
                runTest("testData/incremental/withJava/other/inlineTopLevelFunctionWithJvmName/");
            }

            @TestMetadata("inlineTopLevelValPropertyWithJvmName")
            public void testInlineTopLevelValPropertyWithJvmName() throws Exception {
                runTest("testData/incremental/withJava/other/inlineTopLevelValPropertyWithJvmName/");
            }

            @TestMetadata("innerClassNotGeneratedWhenRebuilding")
            public void testInnerClassNotGeneratedWhenRebuilding() throws Exception {
                runTest("testData/incremental/withJava/other/innerClassNotGeneratedWhenRebuilding/");
            }

            @TestMetadata("jvmNameChanged")
            public void testJvmNameChanged() throws Exception {
                runTest("testData/incremental/withJava/other/jvmNameChanged/");
            }

            @TestMetadata("mainRedeclaration")
            public void testMainRedeclaration() throws Exception {
                runTest("testData/incremental/withJava/other/mainRedeclaration/");
            }

            @TestMetadata("multifileClassAddTopLevelFunWithDefault")
            public void testMultifileClassAddTopLevelFunWithDefault() throws Exception {
                runTest("testData/incremental/withJava/other/multifileClassAddTopLevelFunWithDefault/");
            }

            @TestMetadata("multifileClassFileAdded")
            public void testMultifileClassFileAdded() throws Exception {
                runTest("testData/incremental/withJava/other/multifileClassFileAdded/");
            }

            @TestMetadata("multifileClassFileChanged")
            public void testMultifileClassFileChanged() throws Exception {
                runTest("testData/incremental/withJava/other/multifileClassFileChanged/");
            }

            @TestMetadata("multifileClassFileMovedToAnotherMultifileClass")
            public void testMultifileClassFileMovedToAnotherMultifileClass() throws Exception {
                runTest("testData/incremental/withJava/other/multifileClassFileMovedToAnotherMultifileClass/");
            }

            @TestMetadata("multifileClassInlineFunction")
            public void testMultifileClassInlineFunction() throws Exception {
                runTest("testData/incremental/withJava/other/multifileClassInlineFunction/");
            }

            @TestMetadata("multifileClassInlineFunctionAccessingField")
            public void testMultifileClassInlineFunctionAccessingField() throws Exception {
                runTest("testData/incremental/withJava/other/multifileClassInlineFunctionAccessingField/");
            }

            @TestMetadata("multifileClassRecreated")
            public void testMultifileClassRecreated() throws Exception {
                runTest("testData/incremental/withJava/other/multifileClassRecreated/");
            }

            @TestMetadata("multifileClassRecreatedAfterRenaming")
            public void testMultifileClassRecreatedAfterRenaming() throws Exception {
                runTest("testData/incremental/withJava/other/multifileClassRecreatedAfterRenaming/");
            }

            @TestMetadata("multifileClassRemoved")
            public void testMultifileClassRemoved() throws Exception {
                runTest("testData/incremental/withJava/other/multifileClassRemoved/");
            }

            @TestMetadata("multifileDependantUsage")
            public void testMultifileDependantUsage() throws Exception {
                runTest("testData/incremental/withJava/other/multifileDependantUsage/");
            }

            @TestMetadata("multifilePackagePartMethodAdded")
            public void testMultifilePackagePartMethodAdded() throws Exception {
                runTest("testData/incremental/withJava/other/multifilePackagePartMethodAdded/");
            }

            @TestMetadata("multifilePartsWithProperties")
            public void testMultifilePartsWithProperties() throws Exception {
                runTest("testData/incremental/withJava/other/multifilePartsWithProperties/");
            }

            @TestMetadata("optionalParameter")
            public void testOptionalParameter() throws Exception {
                runTest("testData/incremental/withJava/other/optionalParameter/");
            }

            @TestMetadata("packageFacadeToClass")
            public void testPackageFacadeToClass() throws Exception {
                runTest("testData/incremental/withJava/other/packageFacadeToClass/");
            }

            @TestMetadata("packageMultifileClassOneFileWithPublicChanges")
            public void testPackageMultifileClassOneFileWithPublicChanges() throws Exception {
                runTest("testData/incremental/withJava/other/packageMultifileClassOneFileWithPublicChanges/");
            }

            @TestMetadata("packageMultifileClassPrivateOnlyChanged")
            public void testPackageMultifileClassPrivateOnlyChanged() throws Exception {
                runTest("testData/incremental/withJava/other/packageMultifileClassPrivateOnlyChanged/");
            }

            @TestMetadata("publicPropertyWithPrivateSetterMultiFileFacade")
            public void testPublicPropertyWithPrivateSetterMultiFileFacade() throws Exception {
                runTest("testData/incremental/withJava/other/publicPropertyWithPrivateSetterMultiFileFacade/");
            }

            @TestMetadata("topLevelFunctionWithJvmName")
            public void testTopLevelFunctionWithJvmName() throws Exception {
                runTest("testData/incremental/withJava/other/topLevelFunctionWithJvmName/");
            }

            @TestMetadata("topLevelPropertyWithJvmName")
            public void testTopLevelPropertyWithJvmName() throws Exception {
                runTest("testData/incremental/withJava/other/topLevelPropertyWithJvmName/");
            }
        }
    }

    @RunWith(JUnit3RunnerWithInners.class)
    @TestMetadata("testData/incremental/inlineFunCallSite")
    public static class InlineFunCallSite extends AbstractIncrementalJvmJpsTest {
        private void runTest(String testDataFilePath) throws Exception {
            KotlinTestUtils.runTest(this::doTest, this, TargetBackend.JVM_IR, testDataFilePath);
        }

        @TestMetadata("classProperty")
        public void testClassProperty() throws Exception {
            runTest("testData/incremental/inlineFunCallSite/classProperty/");
        }

        @TestMetadata("companionObjectProperty")
        public void testCompanionObjectProperty() throws Exception {
            runTest("testData/incremental/inlineFunCallSite/companionObjectProperty/");
        }

        @TestMetadata("coroutine")
        public void testCoroutine() throws Exception {
            runTest("testData/incremental/inlineFunCallSite/coroutine/");
        }

        @TestMetadata("function")
        public void testFunction() throws Exception {
            runTest("testData/incremental/inlineFunCallSite/function/");
        }

        @TestMetadata("getter")
        public void testGetter() throws Exception {
            runTest("testData/incremental/inlineFunCallSite/getter/");
        }

        @TestMetadata("lambda")
        public void testLambda() throws Exception {
            runTest("testData/incremental/inlineFunCallSite/lambda/");
        }

        @TestMetadata("localFun")
        public void testLocalFun() throws Exception {
            runTest("testData/incremental/inlineFunCallSite/localFun/");
        }

        @TestMetadata("method")
        public void testMethod() throws Exception {
            runTest("testData/incremental/inlineFunCallSite/method/");
        }

        @TestMetadata("parameterDefaultValue")
        public void testParameterDefaultValue() throws Exception {
            runTest("testData/incremental/inlineFunCallSite/parameterDefaultValue/");
        }

        @TestMetadata("primaryConstructorParameterDefaultValue")
        public void testPrimaryConstructorParameterDefaultValue() throws Exception {
            runTest("testData/incremental/inlineFunCallSite/primaryConstructorParameterDefaultValue/");
        }

        @TestMetadata("superCall")
        public void testSuperCall() throws Exception {
            runTest("testData/incremental/inlineFunCallSite/superCall/");
        }

        @TestMetadata("thisCall")
        public void testThisCall() throws Exception {
            runTest("testData/incremental/inlineFunCallSite/thisCall/");
        }

        @TestMetadata("topLevelObjectProperty")
        public void testTopLevelObjectProperty() throws Exception {
            runTest("testData/incremental/inlineFunCallSite/topLevelObjectProperty/");
        }

        @TestMetadata("topLevelProperty")
        public void testTopLevelProperty() throws Exception {
            runTest("testData/incremental/inlineFunCallSite/topLevelProperty/");
        }
    }

    @RunWith(JUnit3RunnerWithInners.class)
    @TestMetadata("testData/incremental/classHierarchyAffected")
    public static class ClassHierarchyAffected extends AbstractIncrementalJvmJpsTest {
        private void runTest(String testDataFilePath) throws Exception {
            KotlinTestUtils.runTest(this::doTest, this, TargetBackend.JVM_IR, testDataFilePath);
        }

        @TestMetadata("annotationFlagRemoved")
        public void testAnnotationFlagRemoved() throws Exception {
            runTest("testData/incremental/classHierarchyAffected/annotationFlagRemoved/");
        }

        @TestMetadata("annotationListChanged")
        public void testAnnotationListChanged() throws Exception {
            runTest("testData/incremental/classHierarchyAffected/annotationListChanged/");
        }

        @TestMetadata("bridgeGenerated")
        public void testBridgeGenerated() throws Exception {
            runTest("testData/incremental/classHierarchyAffected/bridgeGenerated/");
        }

        @TestMetadata("classBecameFinal")
        public void testClassBecameFinal() throws Exception {
            runTest("testData/incremental/classHierarchyAffected/classBecameFinal/");
        }

        @TestMetadata("classBecameInterface")
        public void testClassBecameInterface() throws Exception {
            runTest("testData/incremental/classHierarchyAffected/classBecameInterface/");
        }

        @TestMetadata("classBecamePrivate")
        public void testClassBecamePrivate() throws Exception {
            runTest("testData/incremental/classHierarchyAffected/classBecamePrivate/");
        }

        @TestMetadata("classMovedIntoOtherClass")
        public void testClassMovedIntoOtherClass() throws Exception {
            runTest("testData/incremental/classHierarchyAffected/classMovedIntoOtherClass/");
        }

        @TestMetadata("classRemoved")
        public void testClassRemoved() throws Exception {
            runTest("testData/incremental/classHierarchyAffected/classRemoved/");
        }

        @TestMetadata("classRemovedAndRestored")
        public void testClassRemovedAndRestored() throws Exception {
            runTest("testData/incremental/classHierarchyAffected/classRemovedAndRestored/");
        }

        @TestMetadata("companionObjectInheritedMemberChanged")
        public void testCompanionObjectInheritedMemberChanged() throws Exception {
            runTest("testData/incremental/classHierarchyAffected/companionObjectInheritedMemberChanged/");
        }

        @TestMetadata("companionObjectMemberChanged")
        public void testCompanionObjectMemberChanged() throws Exception {
            runTest("testData/incremental/classHierarchyAffected/companionObjectMemberChanged/");
        }

        @TestMetadata("companionObjectNameChanged")
        public void testCompanionObjectNameChanged() throws Exception {
            runTest("testData/incremental/classHierarchyAffected/companionObjectNameChanged/");
        }

        @TestMetadata("companionObjectToSimpleObject")
        public void testCompanionObjectToSimpleObject() throws Exception {
            runTest("testData/incremental/classHierarchyAffected/companionObjectToSimpleObject/");
        }

        @TestMetadata("constructorVisibilityChanged")
        public void testConstructorVisibilityChanged() throws Exception {
            runTest("testData/incremental/classHierarchyAffected/constructorVisibilityChanged/");
        }

        @TestMetadata("enumEntryAdded")
        public void testEnumEntryAdded() throws Exception {
            runTest("testData/incremental/classHierarchyAffected/enumEntryAdded/");
        }

        @TestMetadata("enumEntryRemoved")
        public void testEnumEntryRemoved() throws Exception {
            runTest("testData/incremental/classHierarchyAffected/enumEntryRemoved/");
        }

        @TestMetadata("enumMemberChanged")
        public void testEnumMemberChanged() throws Exception {
            runTest("testData/incremental/classHierarchyAffected/enumMemberChanged/");
        }

        @TestMetadata("flagsAndMemberInDifferentClassesChanged")
        public void testFlagsAndMemberInDifferentClassesChanged() throws Exception {
            runTest("testData/incremental/classHierarchyAffected/flagsAndMemberInDifferentClassesChanged/");
        }

        @TestMetadata("flagsAndMemberInSameClassChanged")
        public void testFlagsAndMemberInSameClassChanged() throws Exception {
            runTest("testData/incremental/classHierarchyAffected/flagsAndMemberInSameClassChanged/");
        }

        @TestMetadata("implcitUpcast")
        public void testImplcitUpcast() throws Exception {
            runTest("testData/incremental/classHierarchyAffected/implcitUpcast/");
        }

        @TestMetadata("inferredTypeArgumentChanged")
        public void testInferredTypeArgumentChanged() throws Exception {
            runTest("testData/incremental/classHierarchyAffected/inferredTypeArgumentChanged/");
        }

        @TestMetadata("inferredTypeChanged")
        public void testInferredTypeChanged() throws Exception {
            runTest("testData/incremental/classHierarchyAffected/inferredTypeChanged/");
        }

        @TestMetadata("interfaceAnyMethods")
        public void testInterfaceAnyMethods() throws Exception {
            runTest("testData/incremental/classHierarchyAffected/interfaceAnyMethods/");
        }

        @TestMetadata("lambdaParameterAffected")
        public void testLambdaParameterAffected() throws Exception {
            runTest("testData/incremental/classHierarchyAffected/lambdaParameterAffected/");
        }

        @TestMetadata("methodAdded")
        public void testMethodAdded() throws Exception {
            runTest("testData/incremental/classHierarchyAffected/methodAdded/");
        }

        @TestMetadata("methodAnnotationAdded")
        public void testMethodAnnotationAdded() throws Exception {
            runTest("testData/incremental/classHierarchyAffected/methodAnnotationAdded/");
        }

        @TestMetadata("methodNullabilityChanged")
        public void testMethodNullabilityChanged() throws Exception {
            runTest("testData/incremental/classHierarchyAffected/methodNullabilityChanged/");
        }

        @TestMetadata("methodParameterWithDefaultValueAdded")
        public void testMethodParameterWithDefaultValueAdded() throws Exception {
            runTest("testData/incremental/classHierarchyAffected/methodParameterWithDefaultValueAdded/");
        }

        @TestMetadata("methodRemoved")
        public void testMethodRemoved() throws Exception {
            runTest("testData/incremental/classHierarchyAffected/methodRemoved/");
        }

        @TestMetadata("overrideExplicit")
        public void testOverrideExplicit() throws Exception {
            runTest("testData/incremental/classHierarchyAffected/overrideExplicit/");
        }

        @TestMetadata("overrideImplicit")
        public void testOverrideImplicit() throws Exception {
            runTest("testData/incremental/classHierarchyAffected/overrideImplicit/");
        }

        @TestMetadata("propertyNullabilityChanged")
        public void testPropertyNullabilityChanged() throws Exception {
            runTest("testData/incremental/classHierarchyAffected/propertyNullabilityChanged/");
        }

        @TestMetadata("sealedClassImplAdded")
        public void testSealedClassImplAdded() throws Exception {
            runTest("testData/incremental/classHierarchyAffected/sealedClassImplAdded/");
        }

        @TestMetadata("sealedClassIndirectImplAdded")
        public void testSealedClassIndirectImplAdded() throws Exception {
            runTest("testData/incremental/classHierarchyAffected/sealedClassIndirectImplAdded/");
        }

        @TestMetadata("sealedClassNestedImplAdded")
        public void testSealedClassNestedImplAdded() throws Exception {
            runTest("testData/incremental/classHierarchyAffected/sealedClassNestedImplAdded/");
        }

        @TestMetadata("secondaryConstructorAdded")
        public void testSecondaryConstructorAdded() throws Exception {
            runTest("testData/incremental/classHierarchyAffected/secondaryConstructorAdded/");
        }

        @TestMetadata("starProjectionUpperBoundChanged")
        public void testStarProjectionUpperBoundChanged() throws Exception {
            runTest("testData/incremental/classHierarchyAffected/starProjectionUpperBoundChanged/");
        }

        @TestMetadata("supertypesListChanged")
        public void testSupertypesListChanged() throws Exception {
            runTest("testData/incremental/classHierarchyAffected/supertypesListChanged/");
        }

        @TestMetadata("typeParameterListChanged")
        public void testTypeParameterListChanged() throws Exception {
            runTest("testData/incremental/classHierarchyAffected/typeParameterListChanged/");
        }

        @TestMetadata("varianceChanged")
        public void testVarianceChanged() throws Exception {
            runTest("testData/incremental/classHierarchyAffected/varianceChanged/");
        }
    }
}
