[JS IR] Unmute all fir invalidation tests
This commit is contained in:
committed by
Space Team
parent
9da9c95105
commit
2aea5822b2
@@ -62,6 +62,14 @@ abstract class AbstractInvalidationTest(private val targetBackend: TargetBackend
|
|||||||
private const val SOURCE_MAPPING_URL_PREFIX = "//# sourceMappingURL="
|
private const val SOURCE_MAPPING_URL_PREFIX = "//# sourceMappingURL="
|
||||||
}
|
}
|
||||||
|
|
||||||
|
open fun getModuleInfoFile(directory: File): File {
|
||||||
|
return directory.resolve(MODULE_INFO_FILE)
|
||||||
|
}
|
||||||
|
|
||||||
|
open fun getProjectInfoFile(directory: File): File {
|
||||||
|
return directory.resolve(PROJECT_INFO_FILE)
|
||||||
|
}
|
||||||
|
|
||||||
private val zipAccessor = ZipFileSystemCacheableAccessor(2)
|
private val zipAccessor = ZipFileSystemCacheableAccessor(2)
|
||||||
protected val environment =
|
protected val environment =
|
||||||
KotlinCoreEnvironment.createForParallelTests(TestDisposable(), CompilerConfiguration(), EnvironmentConfigFiles.JS_CONFIG_FILES)
|
KotlinCoreEnvironment.createForParallelTests(TestDisposable(), CompilerConfiguration(), EnvironmentConfigFiles.JS_CONFIG_FILES)
|
||||||
@@ -85,7 +93,7 @@ abstract class AbstractInvalidationTest(private val targetBackend: TargetBackend
|
|||||||
protected fun runTest(@TestDataFile testPath: String) {
|
protected fun runTest(@TestDataFile testPath: String) {
|
||||||
val testDirectory = File(testPath)
|
val testDirectory = File(testPath)
|
||||||
val testName = testDirectory.name
|
val testName = testDirectory.name
|
||||||
val projectInfoFile = File(testDirectory, PROJECT_INFO_FILE)
|
val projectInfoFile = getProjectInfoFile(testDirectory)
|
||||||
val projectInfo = parseProjectInfo(testName, projectInfoFile)
|
val projectInfo = parseProjectInfo(testName, projectInfoFile)
|
||||||
|
|
||||||
if (isIgnoredTest(projectInfo)) {
|
if (isIgnoredTest(projectInfo)) {
|
||||||
@@ -95,7 +103,7 @@ abstract class AbstractInvalidationTest(private val targetBackend: TargetBackend
|
|||||||
val modulesInfos = mutableMapOf<String, ModuleInfo>()
|
val modulesInfos = mutableMapOf<String, ModuleInfo>()
|
||||||
for (module in projectInfo.modules) {
|
for (module in projectInfo.modules) {
|
||||||
val moduleDirectory = File(testDirectory, module)
|
val moduleDirectory = File(testDirectory, module)
|
||||||
val moduleInfo = File(moduleDirectory, MODULE_INFO_FILE)
|
val moduleInfo = getModuleInfoFile(moduleDirectory)
|
||||||
modulesInfos[module] = parseModuleInfo(module, moduleInfo)
|
modulesInfos[module] = parseModuleInfo(module, moduleInfo)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -12,7 +12,6 @@ import org.jetbrains.kotlin.cli.js.klib.serializeFirKlib
|
|||||||
import org.jetbrains.kotlin.cli.js.klib.transformFirToIr
|
import org.jetbrains.kotlin.cli.js.klib.transformFirToIr
|
||||||
import org.jetbrains.kotlin.codegen.ProjectInfo
|
import org.jetbrains.kotlin.codegen.ProjectInfo
|
||||||
import org.jetbrains.kotlin.config.CompilerConfiguration
|
import org.jetbrains.kotlin.config.CompilerConfiguration
|
||||||
import org.jetbrains.kotlin.config.languageVersionSettings
|
|
||||||
import org.jetbrains.kotlin.diagnostics.DiagnosticReporterFactory
|
import org.jetbrains.kotlin.diagnostics.DiagnosticReporterFactory
|
||||||
import org.jetbrains.kotlin.ir.backend.js.MainModule
|
import org.jetbrains.kotlin.ir.backend.js.MainModule
|
||||||
import org.jetbrains.kotlin.ir.backend.js.ModulesStructure
|
import org.jetbrains.kotlin.ir.backend.js.ModulesStructure
|
||||||
@@ -28,10 +27,18 @@ abstract class FirAbstractInvalidationTest(
|
|||||||
targetBackend: TargetBackend,
|
targetBackend: TargetBackend,
|
||||||
workingDirPath: String
|
workingDirPath: String
|
||||||
) : AbstractInvalidationTest(targetBackend, workingDirPath) {
|
) : AbstractInvalidationTest(targetBackend, workingDirPath) {
|
||||||
private val mutedTests = setOf("constVals", "enum", "jsCodeWithConstString")
|
private fun getFirInfoFile(defaultInfoFile: File): File {
|
||||||
|
val firInfoFileName = "${defaultInfoFile.nameWithoutExtension}.fir.${defaultInfoFile.extension}"
|
||||||
|
val firInfoFile = defaultInfoFile.parentFile.resolve(firInfoFileName)
|
||||||
|
return firInfoFile.takeIf { it.exists() } ?: defaultInfoFile
|
||||||
|
}
|
||||||
|
|
||||||
override fun isIgnoredTest(projectInfo: ProjectInfo): Boolean {
|
override fun getModuleInfoFile(directory: File): File {
|
||||||
return super.isIgnoredTest(projectInfo) || projectInfo.name in mutedTests
|
return getFirInfoFile(super.getModuleInfoFile(directory))
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun getProjectInfoFile(directory: File): File {
|
||||||
|
return getFirInfoFile(super.getProjectInfoFile(directory))
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun buildKlib(
|
override fun buildKlib(
|
||||||
|
|||||||
@@ -0,0 +1 @@
|
|||||||
|
const val FOO = 1
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
private const val BAR = 2
|
||||||
|
|
||||||
|
const val FOO = 1 + BAR
|
||||||
@@ -4,3 +4,11 @@ STEP 1:
|
|||||||
modifications:
|
modifications:
|
||||||
U : l1.1.kt -> l1.kt
|
U : l1.1.kt -> l1.kt
|
||||||
modified ir: l1.kt
|
modified ir: l1.kt
|
||||||
|
STEP 2:
|
||||||
|
modifications:
|
||||||
|
U : l1.2.kt -> l1.kt
|
||||||
|
modified ir: l1.kt
|
||||||
|
STEP 3:
|
||||||
|
modifications:
|
||||||
|
U : l1.3.kt -> l1.kt
|
||||||
|
modified ir: l1.kt
|
||||||
|
|||||||
+6
@@ -0,0 +1,6 @@
|
|||||||
|
STEP 0:
|
||||||
|
dependencies: lib1
|
||||||
|
added file: l2.kt
|
||||||
|
STEP 1..3:
|
||||||
|
dependencies: lib1
|
||||||
|
modified ir: l2.kt
|
||||||
@@ -4,3 +4,9 @@ STEP 0:
|
|||||||
STEP 1:
|
STEP 1:
|
||||||
dependencies: lib1
|
dependencies: lib1
|
||||||
updated imports: l2.kt
|
updated imports: l2.kt
|
||||||
|
STEP 2:
|
||||||
|
dependencies: lib1
|
||||||
|
modified ir: l2.kt
|
||||||
|
STEP 3:
|
||||||
|
dependencies: lib1
|
||||||
|
updated imports: l2.kt
|
||||||
|
|||||||
@@ -1,12 +1,22 @@
|
|||||||
fun box(stepId: Int): String {
|
fun box(stepId: Int): String {
|
||||||
|
val q: Any = qux()
|
||||||
|
val b: Any = bar()
|
||||||
when (stepId) {
|
when (stepId) {
|
||||||
0 -> {
|
0 -> {
|
||||||
if (qux() != "FOO") return "Fail qux"
|
if (q != "FOO") return "Fail qux"
|
||||||
if (bar() != "FOO") return "Fail bar"
|
if (b != "FOO") return "Fail bar"
|
||||||
}
|
}
|
||||||
1 -> {
|
1 -> {
|
||||||
if (qux() != "BAR") return "Fail qux"
|
if (q != "BAR") return "Fail qux"
|
||||||
if (bar() != "BAR") return "Fail bar"
|
if (b != "BAR") return "Fail bar"
|
||||||
|
}
|
||||||
|
2 -> {
|
||||||
|
if (q != 1) return "Fail qux"
|
||||||
|
if (b != 1) return "Fail bar"
|
||||||
|
}
|
||||||
|
3 -> {
|
||||||
|
if (q != 3) return "Fail qux"
|
||||||
|
if (b != 3) return "Fail bar"
|
||||||
}
|
}
|
||||||
else -> return "Unknown"
|
else -> return "Unknown"
|
||||||
}
|
}
|
||||||
|
|||||||
+12
@@ -0,0 +1,12 @@
|
|||||||
|
STEP 0:
|
||||||
|
dependencies: lib1, lib2
|
||||||
|
added file: m.kt
|
||||||
|
STEP 1:
|
||||||
|
dependencies: lib1, lib2
|
||||||
|
updated imports: m.kt
|
||||||
|
STEP 2:
|
||||||
|
dependencies: lib1, lib2
|
||||||
|
modified ir: m.kt
|
||||||
|
STEP 3:
|
||||||
|
dependencies: lib1, lib2
|
||||||
|
updated imports: m.kt
|
||||||
@@ -3,3 +3,8 @@ STEP 0:
|
|||||||
added file: m.kt
|
added file: m.kt
|
||||||
STEP 1:
|
STEP 1:
|
||||||
dependencies: lib1, lib2
|
dependencies: lib1, lib2
|
||||||
|
STEP 2:
|
||||||
|
dependencies: lib1, lib2
|
||||||
|
modified ir: m.kt
|
||||||
|
STEP 3:
|
||||||
|
dependencies: lib1, lib2
|
||||||
|
|||||||
@@ -0,0 +1,5 @@
|
|||||||
|
MODULES: lib1, lib2, main
|
||||||
|
|
||||||
|
STEP 0..3:
|
||||||
|
libs: lib1, lib2, main
|
||||||
|
dirty js: lib1, lib2, main
|
||||||
@@ -6,3 +6,9 @@ STEP 0:
|
|||||||
STEP 1:
|
STEP 1:
|
||||||
libs: lib1, lib2, main
|
libs: lib1, lib2, main
|
||||||
dirty js: lib1, lib2
|
dirty js: lib1, lib2
|
||||||
|
STEP 2:
|
||||||
|
libs: lib1, lib2, main
|
||||||
|
dirty js: lib1, lib2, main
|
||||||
|
STEP 3:
|
||||||
|
libs: lib1, lib2, main
|
||||||
|
dirty js: lib1, lib2
|
||||||
|
|||||||
+4
@@ -1,4 +1,8 @@
|
|||||||
@kotlin.ExperimentalStdlibApi
|
@kotlin.ExperimentalStdlibApi
|
||||||
fun testEnumEntries(stepId: Int): Boolean {
|
fun testEnumEntries(stepId: Int): Boolean {
|
||||||
|
when (stepId) {
|
||||||
|
0, 1, 2, 3 -> return true
|
||||||
|
else -> return false
|
||||||
|
}
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|||||||
Vendored
+34
@@ -0,0 +1,34 @@
|
|||||||
|
STEP 0:
|
||||||
|
modifications:
|
||||||
|
U : l1.0.kt -> l1.kt
|
||||||
|
U : js.0.kt -> js.kt
|
||||||
|
U : test.0.kt -> test.kt
|
||||||
|
added file: l1.kt, js.kt, test.kt
|
||||||
|
STEP 1:
|
||||||
|
modifications:
|
||||||
|
U : js.1.kt -> js.kt
|
||||||
|
modified ir: js.kt
|
||||||
|
STEP 2:
|
||||||
|
modifications:
|
||||||
|
U : js.2.kt -> js.kt
|
||||||
|
modified ir: js.kt
|
||||||
|
STEP 3:
|
||||||
|
modifications:
|
||||||
|
U : l1.3.kt -> l1.kt
|
||||||
|
modified ir: l1.kt, js.kt
|
||||||
|
STEP 4:
|
||||||
|
modifications:
|
||||||
|
U : test.4.kt -> test.kt
|
||||||
|
modified ir: test.kt
|
||||||
|
STEP 5:
|
||||||
|
modifications:
|
||||||
|
U : l1.5.kt -> l1.kt
|
||||||
|
modified ir: l1.kt, js.kt
|
||||||
|
STEP 6:
|
||||||
|
modifications:
|
||||||
|
U : js.6.kt -> js.kt
|
||||||
|
modified ir: js.kt
|
||||||
|
STEP 7:
|
||||||
|
modifications:
|
||||||
|
U : l1.7.kt -> l1.kt
|
||||||
|
modified ir: l1.kt, js.kt
|
||||||
Reference in New Issue
Block a user