From f0294f5414279d6159a075f4e32a00fa0b745a52 Mon Sep 17 00:00:00 2001 From: Ilya Matveev Date: Fri, 23 Aug 2019 20:09:38 +0700 Subject: [PATCH] Coverage: Allow default libs to be covered --- .../kotlin/backend/konan/FeaturedLibraries.kt | 36 +++++++++++-------- 1 file changed, 21 insertions(+), 15 deletions(-) diff --git a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/FeaturedLibraries.kt b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/FeaturedLibraries.kt index 218a529782a..c8fa26b1e9c 100644 --- a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/FeaturedLibraries.kt +++ b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/FeaturedLibraries.kt @@ -36,10 +36,11 @@ internal fun getExportedLibraries( resolver: SearchPathResolver, report: Boolean ): List = getFeaturedLibraries( - configuration.getList(KonanConfigKeys.EXPORTED_LIBRARIES), - resolvedLibraries, - resolver, - if (report) FeaturedLibrariesReporter.forExportedLibraries(configuration) else FeaturedLibrariesReporter.Silent + configuration.getList(KonanConfigKeys.EXPORTED_LIBRARIES), + resolvedLibraries, + resolver, + if (report) FeaturedLibrariesReporter.forExportedLibraries(configuration) else FeaturedLibrariesReporter.Silent, + allowDefaultLibs = false ) internal fun getIncludedLibraries( @@ -47,9 +48,10 @@ internal fun getIncludedLibraries( configuration: CompilerConfiguration, resolvedLibraries: KonanLibraryResolveResult ): List = getFeaturedLibraries( - includedLibraryFiles.toSet(), - resolvedLibraries, - FeaturedLibrariesReporter.forIncludedLibraries(configuration) + includedLibraryFiles.toSet(), + resolvedLibraries, + FeaturedLibrariesReporter.forIncludedLibraries(configuration), + allowDefaultLibs = false ) internal fun getCoveredLibraries( @@ -57,10 +59,11 @@ internal fun getCoveredLibraries( resolvedLibraries: KonanLibraryResolveResult, resolver: SearchPathResolver ): List = getFeaturedLibraries( - configuration.getList(KonanConfigKeys.LIBRARIES_TO_COVER), - resolvedLibraries, - resolver, - FeaturedLibrariesReporter.forCoveredLibraries(configuration) + configuration.getList(KonanConfigKeys.LIBRARIES_TO_COVER), + resolvedLibraries, + resolver, + FeaturedLibrariesReporter.forCoveredLibraries(configuration), + allowDefaultLibs = true ) private sealed class FeaturedLibrariesReporter { @@ -146,17 +149,20 @@ private fun getFeaturedLibraries( featuredLibraries: List, resolvedLibraries: KonanLibraryResolveResult, resolver: SearchPathResolver, - reporter: FeaturedLibrariesReporter + reporter: FeaturedLibrariesReporter, + allowDefaultLibs: Boolean ) = getFeaturedLibraries( featuredLibraries.toUnresolvedLibraries.map { resolver.resolve(it).libraryFile }.toSet(), resolvedLibraries, - reporter + reporter, + allowDefaultLibs ) private fun getFeaturedLibraries( featuredLibraryFiles: Set, resolvedLibraries: KonanLibraryResolveResult, - reporter: FeaturedLibrariesReporter + reporter: FeaturedLibrariesReporter, + allowDefaultLibs: Boolean ) : List { val remainingFeaturedLibraries = featuredLibraryFiles.toMutableSet() val result = mutableListOf() @@ -166,7 +172,7 @@ private fun getFeaturedLibraries( val libraryFile = library.libraryFile if (libraryFile in featuredLibraryFiles) { remainingFeaturedLibraries -= libraryFile - if (library.isInterop || library.isDefault) { + if (library.isInterop || (!allowDefaultLibs && library.isDefault)) { reporter.reportIllegalKind(library) } else { result += library