[Test] Add Native backend tests to check conflicting signatures

^KT-64393
This commit is contained in:
Dmitriy Dolovov
2024-02-28 11:47:00 +01:00
committed by Space Team
parent b0dc5b8a93
commit d8d8f24f62
2 changed files with 63 additions and 2 deletions
@@ -0,0 +1,54 @@
/*
* 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.konan.test.diagnostics;
import com.intellij.testFramework.TestDataPath;
import org.jetbrains.kotlin.test.util.KtTestUtil;
import org.junit.jupiter.api.Tag;
import org.jetbrains.kotlin.konan.test.blackbox.support.group.FirPipeline;
import org.jetbrains.kotlin.test.TestMetadata;
import org.junit.jupiter.api.Test;
import java.io.File;
import java.util.regex.Pattern;
/** This class is generated by {@link org.jetbrains.kotlin.generators.tests.GenerateNativeTestsKt}. DO NOT MODIFY MANUALLY */
@SuppressWarnings("all")
@TestMetadata("compiler/testData/diagnostics/klibSerializationTests")
@TestDataPath("$PROJECT_ROOT")
@Tag("frontend-fir")
@FirPipeline()
@Tag("klib")
public class FirPsiNativeKlibDiagnosticsTestGenerated extends AbstractFirPsiNativeDiagnosticsWithBackendTestBase {
@Test
public void testAllFilesPresentInKlibSerializationTests() {
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/diagnostics/klibSerializationTests"), Pattern.compile("^(.+)\\.kt$"), null, true);
}
@Test
@TestMetadata("signatureClashClasses.kt")
public void testSignatureClashClasses() {
runTest("compiler/testData/diagnostics/klibSerializationTests/signatureClashClasses.kt");
}
@Test
@TestMetadata("signatureClashFunctions.kt")
public void testSignatureClashFunctions() {
runTest("compiler/testData/diagnostics/klibSerializationTests/signatureClashFunctions.kt");
}
@Test
@TestMetadata("signatureClashVariables.kt")
public void testSignatureClashVariables() {
runTest("compiler/testData/diagnostics/klibSerializationTests/signatureClashVariables.kt");
}
@Test
@TestMetadata("signatureClash_MPP.kt")
public void testSignatureClash_MPP() {
runTest("compiler/testData/diagnostics/klibSerializationTests/signatureClash_MPP.kt");
}
}
@@ -17,6 +17,7 @@ import org.jetbrains.kotlin.konan.test.blackbox.support.group.*
import org.jetbrains.kotlin.konan.test.diagnostics.AbstractDiagnosticsNativeTest
import org.jetbrains.kotlin.konan.test.diagnostics.AbstractFirLightTreeNativeDiagnosticsTest
import org.jetbrains.kotlin.konan.test.diagnostics.AbstractFirPsiNativeDiagnosticsTest
import org.jetbrains.kotlin.konan.test.diagnostics.AbstractFirPsiNativeDiagnosticsWithBackendTestBase
import org.jetbrains.kotlin.konan.test.irtext.AbstractClassicNativeIrTextTest
import org.jetbrains.kotlin.konan.test.irtext.AbstractFirLightTreeNativeIrTextTest
import org.jetbrains.kotlin.konan.test.irtext.AbstractFirPsiNativeIrTextTest
@@ -357,6 +358,13 @@ fun main() {
) {
model("diagnostics/nativeTests", excludedPattern = CUSTOM_TEST_DATA_EXTENSION_PATTERN)
}
testClass<AbstractFirPsiNativeDiagnosticsWithBackendTestBase>(
suiteTestClassName = "FirPsiNativeKlibDiagnosticsTestGenerated",
annotations = listOf(*frontendFir(), klib())
) {
model("diagnostics/klibSerializationTests")
}
}
// Atomicfu compiler plugin native tests.
@@ -555,10 +563,9 @@ private fun frontendFir() = arrayOf(
annotation(FirPipeline::class.java)
)
private fun klib() = annotation(Tag::class.java, "klib")
private fun debugger() = annotation(Tag::class.java, "debugger")
private fun infrastructure() = annotation(Tag::class.java, "infrastructure")
private fun k1libContents() = annotation(Tag::class.java, "k1libContents")
private fun k2libContents() = annotation(Tag::class.java, "k2libContents")
private fun atomicfuNative() = arrayOf(
annotation(Tag::class.java, "atomicfu-native"),
annotation(EnforcedHostTarget::class.java), // TODO(KT-65977): Make atomicfu tests run on all targets.