From 153aed29ba447a8421d969a40883acffae05beda Mon Sep 17 00:00:00 2001 From: Dmitriy Dolovov Date: Thu, 2 Mar 2023 15:35:00 +0100 Subject: [PATCH] [JS][IC][test] Fix step numbers in tests --- .../org/jetbrains/kotlin/codegen/TestModel.kt | 24 ++++++++++++++----- .../splitJoinModule/lib1-b/module.info | 2 +- .../lib1/module.info | 2 +- .../invalidation/variance/lib1/module.info | 2 +- 4 files changed, 21 insertions(+), 9 deletions(-) diff --git a/compiler/tests-compiler-utils/tests/org/jetbrains/kotlin/codegen/TestModel.kt b/compiler/tests-compiler-utils/tests/org/jetbrains/kotlin/codegen/TestModel.kt index 922c2cb414c..1fd36921a17 100644 --- a/compiler/tests-compiler-utils/tests/org/jetbrains/kotlin/codegen/TestModel.kt +++ b/compiler/tests-compiler-utils/tests/org/jetbrains/kotlin/codegen/TestModel.kt @@ -95,9 +95,8 @@ abstract class InfoParser(protected val infoFile: File) { } - protected fun diagnosticMessage(message: String, line: String): String { - return "$message in '$line' at ${infoFile.path}:${lineCounter - 1}" - } + protected fun diagnosticMessage(message: String, line: String): String = diagnosticMessage("$message in '$line'") + protected fun diagnosticMessage(message: String): String = "$message at ${infoFile.path}:${lineCounter - 1}" protected fun throwSyntaxError(line: String): Nothing { throw AssertionError(diagnosticMessage("Syntax error", line)) @@ -169,7 +168,19 @@ class ProjectInfoParser(infoFile: File) : InfoParser(infoFile) { val firstId = Integer.parseInt(m.group(1)) val lastId = m.group(2)?.let { Integer.parseInt(it) } ?: firstId - steps += parseSteps(firstId, lastId) + + val newSteps = parseSteps(firstId, lastId) + check(newSteps.isNotEmpty()) { diagnosticMessage("No steps have been found") } + + val lastStepId = steps.lastOrNull()?.id ?: -1 + newSteps.forEachIndexed { index, newStep -> + val expectedStepId = lastStepId + 1 + index + val stepId = newStep.id + check(stepId == expectedStepId) { + diagnosticMessage("Unexpected step number $stepId, expected: $expectedStepId") + } + steps += newStep + } } else -> error(diagnosticMessage("Unknown op $op", line)) } @@ -198,7 +209,7 @@ class ModuleInfoParser(infoFile: File) : InfoParser(infoFile) { modifications.add(ModuleInfo.Modification.Update(from.trim(), to.trim())) } MODIFICATION_DELETE -> modifications.add(ModuleInfo.Modification.Delete(cmd.trim())) - else -> error("Unknown modification $line") + else -> error(diagnosticMessage("Unknown modification: $mop", line)) } false } else { @@ -277,7 +288,8 @@ class ModuleInfoParser(infoFile: File) : InfoParser(infoFile) { val firstId = Integer.parseInt(stepMatcher.group(1)) val lastId = stepMatcher.group(2)?.let { Integer.parseInt(it) } ?: firstId parseSteps(firstId, lastId).forEach { step -> - result.steps[step.id] = step + val overwrittenStep = result.steps.put(step.id, step) + check(overwrittenStep == null) { diagnosticMessage("Step ${step.id} redeclaration found") } } } false diff --git a/js/js.translator/testData/incremental/invalidation/splitJoinModule/lib1-b/module.info b/js/js.translator/testData/incremental/invalidation/splitJoinModule/lib1-b/module.info index 2c7091980d6..008e5559808 100644 --- a/js/js.translator/testData/incremental/invalidation/splitJoinModule/lib1-b/module.info +++ b/js/js.translator/testData/incremental/invalidation/splitJoinModule/lib1-b/module.info @@ -7,7 +7,7 @@ STEP 2: modifications: U : l1b.2.kt -> l1b.kt modified ir: l1b.kt -STEP 2: +STEP 3: modifications: U : l1b.3.kt -> l1b.kt modified ir: l1b.kt diff --git a/js/js.translator/testData/incremental/invalidation/updateExportsAndInlineImports/lib1/module.info b/js/js.translator/testData/incremental/invalidation/updateExportsAndInlineImports/lib1/module.info index 5ee563affa4..213a1df45ea 100644 --- a/js/js.translator/testData/incremental/invalidation/updateExportsAndInlineImports/lib1/module.info +++ b/js/js.translator/testData/incremental/invalidation/updateExportsAndInlineImports/lib1/module.info @@ -31,7 +31,7 @@ STEP 6: modified ir: l1a.kt STEP 7: updated exports: l1a.kt, l1b.kt, l1c.kt -STEP 6: +STEP 8: modifications: U : l1a.8.kt -> l1a.kt U : l1b.8.kt -> l1b.kt diff --git a/js/js.translator/testData/incremental/invalidation/variance/lib1/module.info b/js/js.translator/testData/incremental/invalidation/variance/lib1/module.info index 49fb4da652c..4ae641e95be 100644 --- a/js/js.translator/testData/incremental/invalidation/variance/lib1/module.info +++ b/js/js.translator/testData/incremental/invalidation/variance/lib1/module.info @@ -6,7 +6,7 @@ STEP 1: modifications: U : l1.1.kt -> l1.kt modified ir: l1.kt -STEP 1: +STEP 2: modifications: U : l1.2.kt -> l1.kt modified ir: l1.kt