From 3064ec0a659bc7ba9a9fbe90919f93e4c8bdf449 Mon Sep 17 00:00:00 2001 From: Pavel Punegov Date: Tue, 4 Feb 2020 19:45:28 +0300 Subject: [PATCH] Fix importing classes/objects in tests with multiple files --- .../src/main/groovy/org/jetbrains/kotlin/KonanTest.groovy | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/build-tools/src/main/groovy/org/jetbrains/kotlin/KonanTest.groovy b/build-tools/src/main/groovy/org/jetbrains/kotlin/KonanTest.groovy index 172074b956d..c0b7e31d9d0 100644 --- a/build-tools/src/main/groovy/org/jetbrains/kotlin/KonanTest.groovy +++ b/build-tools/src/main/groovy/org/jetbrains/kotlin/KonanTest.groovy @@ -370,11 +370,12 @@ class RunExternalTestGroup extends OldKonanTest { def packagePattern = ~/(?m)^\s*package\s+(${fullQualified}*)/ def boxPattern = ~/(?m)fun\s+box\s*\(\s*\)/ - def classPattern = ~/.*(class|object|enum)\s+(${identifier}*).*/ + def classPattern = ~/.*(class|object|enum|interface)\s+(${identifier}*).*/ def sourceName = "_" + normalize(project.file(source).name) def packages = new LinkedHashSet() def imports = [] + def classes = [] def result = super.buildCompileList() for (String filePath : result) { @@ -416,8 +417,8 @@ class RunExternalTestGroup extends OldKonanTest { int dotIdx = indexOf('.') dotIdx > 0 ? substring(0, dotIdx) : it } - if (packages.contains(subImport)) { - // add only to those who import packages from the test files + if (packages.contains(subImport) || classes.contains(subImport)) { + // add only to those who import packages or import classes from the test files text = text.replaceFirst(~/${importRegex}${Pattern.quote(importStatement)}/, "import $sourceName.$importStatement") } else if (text =~ classPattern) { @@ -425,6 +426,7 @@ class RunExternalTestGroup extends OldKonanTest { def clsMatcher = (text =~ classPattern) for (int j = 0; j < clsMatcher.count; j++) { def cl = (text =~ classPattern)[j][2] + classes.add(cl) if (subImport == cl) { text = text.replaceFirst(~/${importRegex}${Pattern.quote(importStatement)}/, "import $sourceName.$importStatement")