/*
 * Copyright 2010-2024 JetBrains s.r.o. and Kotlin Programming Language contributors.
 * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
 */

package org.jetbrains.kotlin.jvm.abi;

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

import java.io.File;
import java.util.regex.Pattern;

/** This class is generated by {@link org.jetbrains.kotlin.generators.tests.GenerateTestsKt}. DO NOT MODIFY MANUALLY */
@SuppressWarnings("all")
@TestMetadata("plugins/jvm-abi-gen/testData/compare")
@TestDataPath("$PROJECT_ROOT")
@RunWith(JUnit3RunnerWithInners.class)
public class CompareJvmAbiTestGenerated extends AbstractCompareJvmAbiTest {
  private void runTest(String testDataFilePath) {
    KotlinTestUtils.runTest(this::doTest, TargetBackend.JVM_IR, testDataFilePath);
  }

  public void testAllFilesPresentInCompare() {
    KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("plugins/jvm-abi-gen/testData/compare"), Pattern.compile("^([^.]+)$"), null, TargetBackend.JVM_IR, false);
  }

  @TestMetadata("anonymousObjects")
  public void testAnonymousObjects() {
    runTest("plugins/jvm-abi-gen/testData/compare/anonymousObjects/");
  }

  @TestMetadata("classFlags")
  public void testClassFlags() {
    runTest("plugins/jvm-abi-gen/testData/compare/classFlags/");
  }

  @TestMetadata("classPrivateMemebers")
  public void testClassPrivateMemebers() {
    runTest("plugins/jvm-abi-gen/testData/compare/classPrivateMemebers/");
  }

  @TestMetadata("clinit")
  public void testClinit() {
    runTest("plugins/jvm-abi-gen/testData/compare/clinit/");
  }

  @TestMetadata("constant")
  public void testConstant() {
    runTest("plugins/jvm-abi-gen/testData/compare/constant/");
  }

  @TestMetadata("dataClassWithPrivateConstructor")
  public void testDataClassWithPrivateConstructor() {
    runTest("plugins/jvm-abi-gen/testData/compare/dataClassWithPrivateConstructor/");
  }

  @TestMetadata("dataClassWithPrivateConstructorWithoutOption")
  public void testDataClassWithPrivateConstructorWithoutOption() {
    runTest("plugins/jvm-abi-gen/testData/compare/dataClassWithPrivateConstructorWithoutOption/");
  }

  @TestMetadata("debugInfoLineNumberTable")
  public void testDebugInfoLineNumberTable() {
    runTest("plugins/jvm-abi-gen/testData/compare/debugInfoLineNumberTable/");
  }

  @TestMetadata("debugInfoLocalVariableTable")
  public void testDebugInfoLocalVariableTable() {
    runTest("plugins/jvm-abi-gen/testData/compare/debugInfoLocalVariableTable/");
  }

  @TestMetadata("debugInfoSourceDebugExtension")
  public void testDebugInfoSourceDebugExtension() {
    runTest("plugins/jvm-abi-gen/testData/compare/debugInfoSourceDebugExtension/");
  }

  @TestMetadata("debugInfoSourceFile")
  public void testDebugInfoSourceFile() {
    runTest("plugins/jvm-abi-gen/testData/compare/debugInfoSourceFile/");
  }

  @TestMetadata("declarationOrderInline")
  public void testDeclarationOrderInline() {
    runTest("plugins/jvm-abi-gen/testData/compare/declarationOrderInline/");
  }

  @TestMetadata("declarationOrderInlineCall")
  public void testDeclarationOrderInlineCall() {
    runTest("plugins/jvm-abi-gen/testData/compare/declarationOrderInlineCall/");
  }

  @TestMetadata("declarationOrderPrivateInline")
  public void testDeclarationOrderPrivateInline() {
    runTest("plugins/jvm-abi-gen/testData/compare/declarationOrderPrivateInline/");
  }

  @TestMetadata("fieldOrder")
  public void testFieldOrder() {
    runTest("plugins/jvm-abi-gen/testData/compare/fieldOrder/");
  }

  @TestMetadata("funOrder")
  public void testFunOrder() {
    runTest("plugins/jvm-abi-gen/testData/compare/funOrder/");
  }

  @TestMetadata("functionBody")
  public void testFunctionBody() {
    runTest("plugins/jvm-abi-gen/testData/compare/functionBody/");
  }

  @TestMetadata("inlineFunInPrivateClass")
  public void testInlineFunInPrivateClass() {
    runTest("plugins/jvm-abi-gen/testData/compare/inlineFunInPrivateClass/");
  }

  @TestMetadata("inlineFunInPrivateNestedClass")
  public void testInlineFunInPrivateNestedClass() {
    runTest("plugins/jvm-abi-gen/testData/compare/inlineFunInPrivateNestedClass/");
  }

  @TestMetadata("inlineFunUsageMakesAbiUnstable")
  public void testInlineFunUsageMakesAbiUnstable() {
    runTest("plugins/jvm-abi-gen/testData/compare/inlineFunUsageMakesAbiUnstable/");
  }

  @TestMetadata("inlineFunctionBody")
  public void testInlineFunctionBody() {
    runTest("plugins/jvm-abi-gen/testData/compare/inlineFunctionBody/");
  }

  @TestMetadata("internalDeclarationsStrict")
  public void testInternalDeclarationsStrict() {
    runTest("plugins/jvm-abi-gen/testData/compare/internalDeclarationsStrict/");
  }

  @TestMetadata("internalFields")
  public void testInternalFields() {
    runTest("plugins/jvm-abi-gen/testData/compare/internalFields/");
  }

  @TestMetadata("lambdas")
  public void testLambdas() {
    runTest("plugins/jvm-abi-gen/testData/compare/lambdas/");
  }

  @TestMetadata("multifileClass")
  public void testMultifileClass() {
    runTest("plugins/jvm-abi-gen/testData/compare/multifileClass/");
  }

  @TestMetadata("nestedPrivateClasses")
  public void testNestedPrivateClasses() {
    runTest("plugins/jvm-abi-gen/testData/compare/nestedPrivateClasses/");
  }

  @TestMetadata("parameterName")
  public void testParameterName() {
    runTest("plugins/jvm-abi-gen/testData/compare/parameterName/");
  }

  @TestMetadata("preserveDeclarationOrder")
  public void testPreserveDeclarationOrder() {
    runTest("plugins/jvm-abi-gen/testData/compare/preserveDeclarationOrder/");
  }

  @TestMetadata("privateInterfaceDefaultImplementation")
  public void testPrivateInterfaceDefaultImplementation() {
    runTest("plugins/jvm-abi-gen/testData/compare/privateInterfaceDefaultImplementation/");
  }

  @TestMetadata("privateOuterClassForEffectivelyVisibleInterface")
  public void testPrivateOuterClassForEffectivelyVisibleInterface() {
    runTest("plugins/jvm-abi-gen/testData/compare/privateOuterClassForEffectivelyVisibleInterface/");
  }

  @TestMetadata("privateTopLevelClasses")
  public void testPrivateTopLevelClasses() {
    runTest("plugins/jvm-abi-gen/testData/compare/privateTopLevelClasses/");
  }

  @TestMetadata("privateTopLevelClassesWithoutOption")
  public void testPrivateTopLevelClassesWithoutOption() {
    runTest("plugins/jvm-abi-gen/testData/compare/privateTopLevelClassesWithoutOption/");
  }

  @TestMetadata("privateTypealias")
  public void testPrivateTypealias() {
    runTest("plugins/jvm-abi-gen/testData/compare/privateTypealias/");
  }

  @TestMetadata("removeDebugInfo")
  public void testRemoveDebugInfo() {
    runTest("plugins/jvm-abi-gen/testData/compare/removeDebugInfo/");
  }

  @TestMetadata("returnType")
  public void testReturnType() {
    runTest("plugins/jvm-abi-gen/testData/compare/returnType/");
  }

  @TestMetadata("superClass")
  public void testSuperClass() {
    runTest("plugins/jvm-abi-gen/testData/compare/superClass/");
  }

  @TestMetadata("syntheticAccessors")
  public void testSyntheticAccessors() {
    runTest("plugins/jvm-abi-gen/testData/compare/syntheticAccessors/");
  }

  @TestMetadata("topLevelPrivateMembers")
  public void testTopLevelPrivateMembers() {
    runTest("plugins/jvm-abi-gen/testData/compare/topLevelPrivateMembers/");
  }
}
