[Gradle] Implement KT58427ResolveJSCompilerArguments regression test
KT-58427
This commit is contained in:
committed by
Space Team
parent
4fe60a4149
commit
736cbfc38e
+61
@@ -0,0 +1,61 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2010-2023 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
||||||
|
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||||
|
*/
|
||||||
|
|
||||||
|
@file:Suppress("FunctionName")
|
||||||
|
|
||||||
|
package org.jetbrains.kotlin.gradle.regressionTests
|
||||||
|
|
||||||
|
import org.jetbrains.kotlin.gradle.dependencyResolutionTests.mavenCentralCacheRedirector
|
||||||
|
import org.jetbrains.kotlin.gradle.dsl.multiplatformExtension
|
||||||
|
import org.jetbrains.kotlin.gradle.plugin.KotlinJsCompilerType
|
||||||
|
import org.jetbrains.kotlin.gradle.util.buildProjectWithMPP
|
||||||
|
import org.jetbrains.kotlin.gradle.util.main
|
||||||
|
import kotlin.test.Test
|
||||||
|
import kotlin.test.assertEquals
|
||||||
|
|
||||||
|
class KT58427ResolveJSCompilerArguments {
|
||||||
|
@Suppress("DEPRECATION_ERROR")
|
||||||
|
@Test
|
||||||
|
fun `test - resolve js compiler arguments with CompilerArgumentsAware`() {
|
||||||
|
val project = buildProjectWithMPP()
|
||||||
|
project.repositories.mavenLocal()
|
||||||
|
project.repositories.mavenCentralCacheRedirector()
|
||||||
|
val kotlin = project.multiplatformExtension
|
||||||
|
val js = kotlin.js(KotlinJsCompilerType.IR) { nodejs() }
|
||||||
|
|
||||||
|
kotlin.sourceSets.all { sourceSet ->
|
||||||
|
sourceSet.languageSettings.languageVersion = "1.7"
|
||||||
|
sourceSet.languageSettings.apiVersion = "1.6"
|
||||||
|
}
|
||||||
|
|
||||||
|
project.evaluate()
|
||||||
|
|
||||||
|
val jsCompileTask = js.compilations.main.compileTaskProvider.get()
|
||||||
|
val args = jsCompileTask.createCompilerArgs()
|
||||||
|
|
||||||
|
/*
|
||||||
|
Regression: Compiler Arguments used RegularImmutableList for freeArgs, so the 'copyBeanTo' function failed copying the list.
|
||||||
|
|
||||||
|
org.gradle.internal.impldep.com.google.common.collect.RegularImmutableList
|
||||||
|
java.lang.InstantiationException: org.gradle.internal.impldep.com.google.common.collect.RegularImmutableList
|
||||||
|
at java.base/java.lang.Class.newInstance(Class.java:571)
|
||||||
|
at org.jetbrains.kotlin.cli.common.arguments.ArgumentUtilsKt.copyValueIfNeeded(argumentUtils.kt:88)
|
||||||
|
at org.jetbrains.kotlin.cli.common.arguments.ArgumentUtilsKt.copyProperties(argumentUtils.kt:66)
|
||||||
|
at org.jetbrains.kotlin.cli.common.arguments.ArgumentUtilsKt.copyBeanTo(argumentUtils.kt:33)
|
||||||
|
at org.jetbrains.kotlin.cli.common.arguments.ArgumentUtilsKt.copyBeanTo$default(argumentUtils.kt:32)
|
||||||
|
at org.jetbrains.kotlin.gradle.internal.CompilerArgumentAware$DefaultImpls.setupCompilerArgs(CompilerArgumentAware.kt:65)
|
||||||
|
at org.jetbrains.kotlin.gradle.tasks.AbstractKotlinCompileTool.setupCompilerArgs(AbstractKotlinCompileTool.kt:31)
|
||||||
|
at org.jetbrains.kotlin.gradle.tasks.Kotlin2JsCompile.setupCompilerArgs(Kotlin2JsCompile.kt:133)
|
||||||
|
at org.jetbrains.kotlin.gradle.tasks.Kotlin2JsCompile.setupCompilerArgs(Kotlin2JsCompile.kt:53)
|
||||||
|
at org.jetbrains.kotlin.gradle.internal.CompilerArgumentAware$DefaultImpls.setupCompilerArgs$default(CompilerArgumentAware.kt:58)
|
||||||
|
|
||||||
|
Caused by: java.lang.NoSuchMethodException: org.gradle.internal.impldep.com.google.common.collect.RegularImmutableList.<init>()
|
||||||
|
*/
|
||||||
|
jsCompileTask.setupCompilerArgs(args)
|
||||||
|
|
||||||
|
assertEquals("1.7", args.languageVersion)
|
||||||
|
assertEquals("1.6", args.apiVersion)
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user