From d8d8f24f62d22694b9278f8ffa4018038b2e1ac5 Mon Sep 17 00:00:00 2001 From: Dmitriy Dolovov Date: Wed, 28 Feb 2024 11:47:00 +0100 Subject: [PATCH] [Test] Add Native backend tests to check conflicting signatures ^KT-64393 --- ...PsiNativeKlibDiagnosticsTestGenerated.java | 54 +++++++++++++++++++ .../generators/tests/GenerateNativeTests.kt | 11 +++- 2 files changed, 63 insertions(+), 2 deletions(-) create mode 100644 native/native.tests/tests-gen/org/jetbrains/kotlin/konan/test/diagnostics/FirPsiNativeKlibDiagnosticsTestGenerated.java diff --git a/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/test/diagnostics/FirPsiNativeKlibDiagnosticsTestGenerated.java b/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/test/diagnostics/FirPsiNativeKlibDiagnosticsTestGenerated.java new file mode 100644 index 00000000000..cc5550fcc18 --- /dev/null +++ b/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/test/diagnostics/FirPsiNativeKlibDiagnosticsTestGenerated.java @@ -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"); + } +} diff --git a/native/native.tests/tests/org/jetbrains/kotlin/generators/tests/GenerateNativeTests.kt b/native/native.tests/tests/org/jetbrains/kotlin/generators/tests/GenerateNativeTests.kt index 615be9794a0..7c0b2447d5b 100644 --- a/native/native.tests/tests/org/jetbrains/kotlin/generators/tests/GenerateNativeTests.kt +++ b/native/native.tests/tests/org/jetbrains/kotlin/generators/tests/GenerateNativeTests.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( + 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.