Add annotation to prevent test invocation twice

Cause: it helps to fix double inversion of muted non-flaky tests result
(KTI-216).
This commit is contained in:
Yunir Salimzyanov
2020-05-19 15:08:32 +03:00
parent a256e75909
commit 8d51b027ed
17 changed files with 62 additions and 43 deletions
@@ -10,7 +10,9 @@ import com.intellij.codeInsight.completion.CompletionTestCase;
import com.intellij.openapi.vfs.newvfs.impl.VfsRootAccess;
import com.intellij.util.ArrayUtil;
import org.jetbrains.kotlin.test.KotlinTestUtils;
import org.jetbrains.kotlin.test.WithMutedInDatabaseRunTest;
@WithMutedInDatabaseRunTest
abstract public class KotlinCompletionTestCase extends CompletionTestCase {
@Override
protected void setUp() throws Exception {
@@ -51,14 +51,15 @@ import org.jetbrains.jps.model.java.JavaSourceRootProperties;
import org.jetbrains.jps.model.java.JavaSourceRootType;
import org.jetbrains.jps.model.module.JpsModuleSourceRootType;
import org.jetbrains.kotlin.idea.test.KotlinSdkCreationChecker;
import org.jetbrains.kotlin.test.KotlinTestUtils;
import org.jetbrains.kotlin.test.WithMutedInDatabaseRunTest;
import java.io.File;
import java.io.IOException;
import java.util.*;
import java.util.concurrent.atomic.AtomicInteger;
import static org.jetbrains.kotlin.test.MuteWithDatabaseKt.isIgnoredInDatabaseWithLog;
@WithMutedInDatabaseRunTest
public abstract class MavenImportingTestCase extends MavenTestCase {
protected MavenProjectsTree myProjectsTree;
protected MavenProjectsManager myProjectsManager;
@@ -103,8 +104,8 @@ public abstract class MavenImportingTestCase extends MavenTestCase {
}
@Override
protected boolean shouldRunTest() {
return super.shouldRunTest() && !isIgnoredInDatabaseWithLog(this);
protected void runTest() throws Throwable {
KotlinTestUtils.runTestWithThrowable(this, () -> super.runTest());
}
protected void assertModules(String... expectedNames) {
@@ -18,13 +18,17 @@ package org.jetbrains.kotlin.idea.test;
import com.intellij.codeInsight.CodeInsightTestCase;
import com.intellij.openapi.vfs.newvfs.impl.VfsRootAccess;
import kotlin.Unit;
import org.jetbrains.kotlin.test.KotlinTestUtils;
import org.jetbrains.kotlin.test.MuteWithDatabaseKt;
import org.jetbrains.kotlin.test.WithMutedInDatabaseRunTest;
import static org.jetbrains.kotlin.test.MuteWithDatabaseKt.isIgnoredInDatabaseWithLog;
/**
* Please use KotlinLightCodeInsightFixtureTestCase as the base class for all new tests.
*/
@WithMutedInDatabaseRunTest
@Deprecated
public abstract class KotlinCodeInsightTestCase extends CodeInsightTestCase {
@Override
@@ -40,7 +44,7 @@ public abstract class KotlinCodeInsightTestCase extends CodeInsightTestCase {
}
@Override
protected boolean shouldRunTest() {
return super.shouldRunTest() && !isIgnoredInDatabaseWithLog(this);
protected void runTest() throws Throwable {
KotlinTestUtils.runTestWithThrowable(this, () -> super.runTest());
}
}
@@ -29,6 +29,7 @@ import org.jetbrains.annotations.NonNls;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.kotlin.test.KotlinTestUtils;
import org.jetbrains.kotlin.test.WithMutedInDatabaseRunTest;
import java.io.File;
import java.io.FileOutputStream;
@@ -37,8 +38,7 @@ import java.io.OutputStreamWriter;
import java.nio.charset.Charset;
import java.util.Collection;
import static org.jetbrains.kotlin.test.MuteWithDatabaseKt.isIgnoredInDatabaseWithLog;
@WithMutedInDatabaseRunTest
public abstract class KotlinLightCodeInsightFixtureTestCaseBase extends LightCodeInsightFixtureTestCase {
@NotNull
@Override
@@ -60,11 +60,6 @@ public abstract class KotlinLightCodeInsightFixtureTestCaseBase extends LightCod
protected final Collection<File> myFilesToDelete = new THashSet<>();
private final TempFiles myTempFiles = new TempFiles(myFilesToDelete);
@Override
protected boolean shouldRunTest() {
return super.shouldRunTest() && !isIgnoredInDatabaseWithLog(this);
}
@Override
protected void tearDown() throws Exception {
myTempFiles.deleteAll();
@@ -30,6 +30,7 @@ import org.jetbrains.annotations.NonNls;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.kotlin.test.KotlinTestUtils;
import org.jetbrains.kotlin.test.WithMutedInDatabaseRunTest;
import java.io.File;
import java.io.FileOutputStream;
@@ -38,8 +39,7 @@ import java.io.OutputStreamWriter;
import java.nio.charset.Charset;
import java.util.Collection;
import static org.jetbrains.kotlin.test.MuteWithDatabaseKt.isIgnoredInDatabaseWithLog;
@WithMutedInDatabaseRunTest
public abstract class KotlinLightCodeInsightFixtureTestCaseBase extends LightCodeInsightFixtureTestCase {
@NotNull
@Override
@@ -65,11 +65,6 @@ public abstract class KotlinLightCodeInsightFixtureTestCaseBase extends LightCod
protected final Collection<File> myFilesToDelete = new THashSet<>();
private final TempFiles myTempFiles = new TempFiles(myFilesToDelete);
@Override
protected boolean shouldRunTest() {
return super.shouldRunTest() && !isIgnoredInDatabaseWithLog(this);
}
@Override
protected void tearDown() throws Exception {
myTempFiles.deleteAll();
@@ -33,11 +33,8 @@ import org.jetbrains.kotlin.idea.debugger.test.util.KotlinOutputChecker
import org.jetbrains.kotlin.idea.debugger.test.util.LogPropagator
import org.jetbrains.kotlin.idea.test.ConfigLibraryUtil
import org.jetbrains.kotlin.idea.test.PluginTestCaseBase
import org.jetbrains.kotlin.test.Directives
import org.jetbrains.kotlin.test.*
import org.jetbrains.kotlin.test.KotlinBaseTest.TestFile
import org.jetbrains.kotlin.test.KotlinTestUtils
import org.jetbrains.kotlin.test.TestMetadata
import org.jetbrains.kotlin.test.isIgnoredInDatabaseWithLog
import org.jetbrains.kotlin.test.testFramework.runWriteAction
import org.junit.ComparisonFailure
import java.io.File
@@ -48,6 +45,7 @@ internal const val TEST_LIBRARY_NAME = "TestLibrary"
class TestFiles(val originalFile: File, val wholeFile: TestFile, files: List<TestFile>) : List<TestFile> by files
@WithMutedInDatabaseRunTest
abstract class KotlinDescriptorTestCase : DescriptorTestCase() {
private lateinit var testAppDirectory: File
private lateinit var sourcesOutputDirectory: File
@@ -233,8 +231,8 @@ abstract class KotlinDescriptorTestCase : DescriptorTestCase() {
return super.getData(dataId)
}
override fun shouldRunTest(): Boolean {
return super.shouldRunTest() && !isIgnoredInDatabaseWithLog(this)
override fun runTest() {
runTest { super.runTest() }
}
protected fun getTestDirectoryPath(): String = javaClass.getAnnotation(TestMetadata::class.java).value
@@ -42,10 +42,12 @@ import org.jetbrains.kotlin.samWithReceiver.SamWithReceiverCommandLineProcessor.
import org.jetbrains.kotlin.test.JUnit3WithIdeaConfigurationRunner
import org.jetbrains.kotlin.test.MockLibraryUtil
import org.jetbrains.kotlin.test.TestJdkKind.FULL_JDK
import org.jetbrains.kotlin.test.WithMutedInDatabaseRunTest
import org.jetbrains.kotlin.test.runTest
import org.junit.Assert.assertNotEquals
import org.junit.runner.RunWith
@WithMutedInDatabaseRunTest
@RunWith(JUnit3WithIdeaConfigurationRunner::class)
open class MultiModuleHighlightingTest : AbstractMultiModuleHighlightingTest() {
override fun getTestDataPath() = PluginTestCaseBase.getTestDataPathBase() + "/multiModuleHighlighting/"
@@ -24,11 +24,14 @@ import org.jetbrains.kotlin.idea.test.PluginTestCaseBase
import org.jetbrains.kotlin.idea.test.PluginTestCaseBase.*
import org.jetbrains.kotlin.idea.util.getProjectJdkTableSafe
import org.jetbrains.kotlin.test.KotlinTestUtils
import org.jetbrains.kotlin.test.WithMutedInDatabaseRunTest
import org.jetbrains.kotlin.test.isIgnoredInDatabaseWithLog
import org.jetbrains.kotlin.test.runTest
import org.jetbrains.kotlin.utils.PathUtil
import java.io.File
import java.nio.file.Path
@WithMutedInDatabaseRunTest
abstract class AbstractConfigureKotlinTest : PlatformTestCase() {
override fun setUp() {
super.setUp()
@@ -132,8 +135,8 @@ abstract class AbstractConfigureKotlinTest : PlatformTestCase() {
UsefulTestCase.assertDoesntExist(File(JS_CONFIGURATOR.getDefaultPathToJarFile(project)))
}
override fun shouldRunTest(): Boolean {
return super.shouldRunTest() && !isIgnoredInDatabaseWithLog(this)
override fun runTest() {
return runTest { super.runTest() }
}
companion object {
@@ -10,9 +10,11 @@ import junit.framework.TestCase
import org.jetbrains.kotlin.idea.test.PluginTestCaseBase
import org.jetbrains.kotlin.idea.test.SdkAndMockLibraryProjectDescriptor
import org.jetbrains.kotlin.test.JUnit3WithIdeaConfigurationRunner
import org.jetbrains.kotlin.test.WithMutedInDatabaseRunTest
import org.jetbrains.kotlin.test.runTest
import org.junit.runner.RunWith
@WithMutedInDatabaseRunTest
@RunWith(JUnit3WithIdeaConfigurationRunner::class)
class NavigateFromJSLibrarySourcesTest : AbstractNavigateFromLibrarySourcesTest() {
fun testIcon() {
@@ -15,10 +15,12 @@ import org.jetbrains.kotlin.idea.test.SdkAndMockLibraryProjectDescriptor
import org.jetbrains.kotlin.psi.KtClass
import org.jetbrains.kotlin.psi.KtClassOrObject
import org.jetbrains.kotlin.test.JUnit3WithIdeaConfigurationRunner
import org.jetbrains.kotlin.test.WithMutedInDatabaseRunTest
import org.jetbrains.kotlin.test.runTest
import org.junit.runner.RunWith
import kotlin.test.assertTrue
@WithMutedInDatabaseRunTest
@RunWith(JUnit3WithIdeaConfigurationRunner::class)
class NavigateFromLibrarySourcesTest : AbstractNavigateFromLibrarySourcesTest() {
fun testJdkClass() {
@@ -11,7 +11,6 @@ import org.jetbrains.kotlin.idea.test.KotlinLightCodeInsightFixtureTestCase
import org.jetbrains.kotlin.idea.test.KotlinWithJdkAndRuntimeLightProjectDescriptor
import org.jetbrains.kotlin.idea.test.PluginTestCaseBase
import org.jetbrains.kotlin.test.JUnit3WithIdeaConfigurationRunner
import org.jetbrains.kotlin.test.runTest
import org.junit.runner.RunWith
@RunWith(JUnit3WithIdeaConfigurationRunner::class)
@@ -47,9 +46,7 @@ class CoroutineNonBlockingContextDetectionTest : KotlinLightCodeInsightFixtureTe
}
private fun doTest(fileName: String) {
runTest {
myFixture.configureByFile(fileName)
myFixture.testHighlighting(true, false, false, fileName)
}
myFixture.configureByFile(fileName)
myFixture.testHighlighting(true, false, false, fileName)
}
}