diff --git a/gradle/verification-metadata.xml b/gradle/verification-metadata.xml
index 33c2e994c2e..4ec90f92aec 100644
--- a/gradle/verification-metadata.xml
+++ b/gradle/verification-metadata.xml
@@ -8813,6 +8813,20 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/wasm/wasm.tests/build.gradle.kts b/wasm/wasm.tests/build.gradle.kts
index 8251fdce97e..fc9191be203 100644
--- a/wasm/wasm.tests/build.gradle.kts
+++ b/wasm/wasm.tests/build.gradle.kts
@@ -1,11 +1,63 @@
import org.gradle.internal.os.OperatingSystem
-import de.undercouch.gradle.tasks.download.Download
+import java.net.URI
import java.util.*
plugins {
kotlin("jvm")
id("jps-compatible")
- id("de.undercouch.download")
+}
+
+repositories {
+ ivy {
+ url = URI("https://archive.mozilla.org/pub/firefox/nightly/")
+ patternLayout {
+ artifact("2023/05/[revision]/[artifact]-[classifier].[ext]")
+ }
+ metadataSources { artifact() }
+ content { includeModule("org.mozilla", "jsshell") }
+ }
+}
+
+enum class OsName { WINDOWS, MAC, LINUX, UNKNOWN }
+enum class OsArch { X86_32, X86_64, ARM64, UNKNOWN }
+data class OsType(val name: OsName, val arch: OsArch)
+
+val currentOsType = run {
+ val gradleOs = OperatingSystem.current()
+ val osName = when {
+ gradleOs.isMacOsX -> OsName.MAC
+ gradleOs.isWindows -> OsName.WINDOWS
+ gradleOs.isLinux -> OsName.LINUX
+ else -> OsName.UNKNOWN
+ }
+
+ val osArch = when (providers.systemProperty("sun.arch.data.model").forUseAtConfigurationTime().get()) {
+ "32" -> OsArch.X86_32
+ "64" -> when (providers.systemProperty("os.arch").forUseAtConfigurationTime().get().toLowerCase()) {
+ "aarch64" -> OsArch.ARM64
+ else -> OsArch.X86_64
+ }
+ else -> OsArch.UNKNOWN
+ }
+
+ OsType(osName, osArch)
+}
+
+
+val jsShellVersion = "2023-05-12-09-49-14-mozilla-central"
+val jsShellSuffix = when (currentOsType) {
+ OsType(OsName.LINUX, OsArch.X86_32) -> "linux-i686"
+ OsType(OsName.LINUX, OsArch.X86_64) -> "linux-x86_64"
+ OsType(OsName.MAC, OsArch.X86_64),
+ OsType(OsName.MAC, OsArch.ARM64) -> "mac"
+ OsType(OsName.WINDOWS, OsArch.X86_32) -> "win32"
+ OsType(OsName.WINDOWS, OsArch.X86_64) -> "win64"
+ else -> error("unsupported os type $currentOsType")
+}
+
+val jsShell by configurations.creating {
+ isCanBeResolved = true
+ isCanBeConsumed = false
}
dependencies {
@@ -13,6 +65,8 @@ dependencies {
testApi(projectTests(":compiler:tests-common"))
testApi(projectTests(":compiler:tests-common-new"))
testApi(intellijCore())
+
+ jsShell("org.mozilla:jsshell:$jsShellVersion:$jsShellSuffix@zip")
}
val generationRoot = projectDir.resolve("tests-gen")
@@ -52,55 +106,13 @@ fun Test.setupGradlePropertiesForwarding() {
}
}
-enum class OsName { WINDOWS, MAC, LINUX, UNKNOWN }
-enum class OsArch { X86_32, X86_64, ARM64, UNKNOWN }
-data class OsType(val name: OsName, val arch: OsArch)
-
-val currentOsType = run {
- val gradleOs = OperatingSystem.current()
- val osName = when {
- gradleOs.isMacOsX -> OsName.MAC
- gradleOs.isWindows -> OsName.WINDOWS
- gradleOs.isLinux -> OsName.LINUX
- else -> OsName.UNKNOWN
- }
-
- val osArch = when (providers.systemProperty("sun.arch.data.model").forUseAtConfigurationTime().get()) {
- "32" -> OsArch.X86_32
- "64" -> when (providers.systemProperty("os.arch").forUseAtConfigurationTime().get().toLowerCase()) {
- "aarch64" -> OsArch.ARM64
- else -> OsArch.X86_64
- }
- else -> OsArch.UNKNOWN
- }
-
- OsType(osName, osArch)
-}
-
-val jsShellVersion = "2023-05-12-09-49-14-mozilla-central"
-val jsShellDirectory = "https://archive.mozilla.org/pub/firefox/nightly/2023/05/$jsShellVersion"
-val jsShellSuffix = when (currentOsType) {
- OsType(OsName.LINUX, OsArch.X86_32) -> "linux-i686"
- OsType(OsName.LINUX, OsArch.X86_64) -> "linux-x86_64"
- OsType(OsName.MAC, OsArch.X86_64),
- OsType(OsName.MAC, OsArch.ARM64) -> "mac"
- OsType(OsName.WINDOWS, OsArch.X86_32) -> "win32"
- OsType(OsName.WINDOWS, OsArch.X86_64) -> "win64"
- else -> error("unsupported os type $currentOsType")
-}
-val jsShellLocation = "$jsShellDirectory/jsshell-$jsShellSuffix.zip"
-
val downloadedTools = File(buildDir, "tools")
-val downloadJsShell by task {
- src(jsShellLocation)
- dest(File(downloadedTools, "jsshell-$jsShellSuffix-$jsShellVersion.zip"))
- overwrite(false)
-}
-
val unzipJsShell by task {
- dependsOn(downloadJsShell)
- from(zipTree(downloadJsShell.get().dest))
+ dependsOn(jsShell)
+ from {
+ zipTree(jsShell.singleFile)
+ }
val unpackedDir = File(downloadedTools, "jsshell-$jsShellSuffix-$jsShellVersion")
into(unpackedDir)
}