mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
[gradle][test][IDEA-359126] added a way to provide custom Gradle VM Options into GradleImportingTestCase
GitOrigin-RevId: a18dddd878f6f3f822f7ab94902c44dda30b6218
This commit is contained in:
committed by
intellij-monorepo-bot
parent
ced38a59c2
commit
7e7d15146a
+5
-8
@@ -1,7 +1,6 @@
|
||||
// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
||||
package org.jetbrains.plugins.gradle.importing
|
||||
|
||||
import org.jetbrains.plugins.gradle.settings.GradleSystemSettings
|
||||
import org.junit.Assume
|
||||
|
||||
class ExperimentalGradleAuxiliaryDependencyImportingTest : GradleAuxiliaryDependencyImportingTest() {
|
||||
@@ -16,12 +15,10 @@ class ExperimentalGradleAuxiliaryDependencyImportingTest : GradleAuxiliaryDepend
|
||||
isGradleOlderThan("7.3")
|
||||
)
|
||||
super.setUp()
|
||||
val gradleSettings = GradleSystemSettings.getInstance()
|
||||
if (gradleSettings.gradleVmOptions == null) {
|
||||
gradleSettings.gradleVmOptions = EXPERIMENTAL_RESOLVER_PROPERTY_KEY
|
||||
}
|
||||
else {
|
||||
gradleSettings.gradleVmOptions += " $EXPERIMENTAL_RESOLVER_PROPERTY_KEY"
|
||||
}
|
||||
}
|
||||
|
||||
override fun configureGradleVmOptions(options: MutableSet<String>) {
|
||||
super.configureGradleVmOptions(options)
|
||||
options.add(EXPERIMENTAL_RESOLVER_PROPERTY_KEY)
|
||||
}
|
||||
}
|
||||
+6
-3
@@ -32,16 +32,19 @@ abstract class GradleAuxiliaryDependencyImportingTestCase : GradleImportingTestC
|
||||
.deleteRecursively()
|
||||
|
||||
val gradleSystemSettings = GradleSystemSettings.getInstance()
|
||||
gradleSystemSettings.gradleVmOptions = null
|
||||
gradleSystemSettings.isDownloadSources = settings.ideaDownloadSourcesValue
|
||||
}
|
||||
|
||||
override fun configureGradleVmOptions(options: MutableSet<String>) {
|
||||
super.configureGradleVmOptions(options)
|
||||
if (settings.forceDownloadSourcesFlagValue != null) {
|
||||
gradleSystemSettings.gradleVmOptions = "-D$FORCE_ARGUMENT_PROPERTY_NAME=${settings.forceDownloadSourcesFlagValue}"
|
||||
options.add("-D$FORCE_ARGUMENT_PROPERTY_NAME=${settings.forceDownloadSourcesFlagValue}")
|
||||
}
|
||||
}
|
||||
|
||||
override fun tearDown() {
|
||||
runAll(
|
||||
{ GradleSystemSettings.getInstance().apply { isDownloadSources = false; gradleVmOptions = null } },
|
||||
{ GradleSystemSettings.getInstance().apply { isDownloadSources = false } },
|
||||
{ super.tearDown() }
|
||||
)
|
||||
}
|
||||
|
||||
+33
-19
@@ -31,7 +31,7 @@ import com.intellij.openapi.util.Ref;
|
||||
import com.intellij.openapi.util.SystemInfo;
|
||||
import com.intellij.openapi.util.io.FileUtil;
|
||||
import com.intellij.openapi.util.io.NioFiles;
|
||||
import com.intellij.openapi.util.text.StringUtil;
|
||||
import com.intellij.openapi.util.text.Strings;
|
||||
import com.intellij.openapi.vfs.LocalFileSystem;
|
||||
import com.intellij.openapi.vfs.VirtualFile;
|
||||
import com.intellij.platform.testFramework.io.ExternalResourcesChecker;
|
||||
@@ -75,10 +75,7 @@ import java.io.IOException;
|
||||
import java.io.UncheckedIOException;
|
||||
import java.nio.file.Files;
|
||||
import java.nio.file.Path;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
import java.util.*;
|
||||
import java.util.function.Consumer;
|
||||
import java.util.zip.ZipException;
|
||||
import java.util.zip.ZipFile;
|
||||
@@ -119,6 +116,7 @@ public abstract class GradleImportingTestCase extends JavaExternalSystemImportin
|
||||
|
||||
WriteAction.runAndWait(this::configureJdkTable);
|
||||
System.setProperty(ExternalSystemExecutionSettings.REMOTE_PROCESS_IDLE_TTL_IN_MS_KEY, String.valueOf(GRADLE_DAEMON_TTL_MS));
|
||||
applyGradleVmOptions();
|
||||
|
||||
ExtensionTestUtil.maskExtensions(UnknownSdkResolver.EP_NAME, List.of(TestUnknownSdkResolver.INSTANCE), getTestDisposable());
|
||||
setRegistryPropertyForTest("unknown.sdk.auto", "false");
|
||||
@@ -161,6 +159,29 @@ public abstract class GradleImportingTestCase extends JavaExternalSystemImportin
|
||||
}
|
||||
}
|
||||
|
||||
protected void configureGradleVmOptions(@NotNull Set<String> options) {
|
||||
|
||||
}
|
||||
|
||||
private @NotNull Set<String> getGradleVmOptions() {
|
||||
Set<String> options = new HashSet<>();
|
||||
configureGradleVmOptions(options);
|
||||
if (isGradleAtLeast("7.0") && !isWarningsAllowed()) {
|
||||
options.add("-Dorg.gradle.warning.mode=fail");
|
||||
}
|
||||
return options;
|
||||
}
|
||||
|
||||
private void applyGradleVmOptions() {
|
||||
GradleSystemSettings settings = GradleSystemSettings.getInstance();
|
||||
String defaultVmOptions = Objects.requireNonNullElse(settings.getGradleVmOptions(), "");
|
||||
|
||||
Set<String> requiredVmOptions = getGradleVmOptions();
|
||||
String effectiveVmOptions = String.format("%s %s", defaultVmOptions, Strings.join(requiredVmOptions, " ")).trim();
|
||||
|
||||
settings.setGradleVmOptions(effectiveVmOptions);
|
||||
}
|
||||
|
||||
private Sdk createJdkFromJavaHome() {
|
||||
VirtualFile jdkHomeDir = LocalFileSystem.getInstance().refreshAndFindFileByIoFile(new File(myJdkHome));
|
||||
JavaSdk javaSdk = JavaSdk.getInstance();
|
||||
@@ -308,9 +329,7 @@ public abstract class GradleImportingTestCase extends JavaExternalSystemImportin
|
||||
},
|
||||
() -> {
|
||||
deprecationError.set(null);
|
||||
if (isGradleAtLeast("7.0")) {
|
||||
GradleSystemSettings.getInstance().setGradleVmOptions("");
|
||||
}
|
||||
GradleSystemSettings.getInstance().setGradleVmOptions("");
|
||||
},
|
||||
() -> Disposer.dispose(getTestDisposable()),
|
||||
() -> super.tearDown()
|
||||
@@ -368,16 +387,6 @@ public abstract class GradleImportingTestCase extends JavaExternalSystemImportin
|
||||
if (UsefulTestCase.IS_UNDER_TEAMCITY) {
|
||||
config = injectRepo(config);
|
||||
}
|
||||
if (isGradleAtLeast("7.0") && !isWarningsAllowed()) {
|
||||
String failOnWarning = "-Dorg.gradle.warning.mode=fail";
|
||||
String originalVmOptions = GradleSystemSettings.getInstance().getGradleVmOptions();
|
||||
if (StringUtil.isEmpty(originalVmOptions)) {
|
||||
GradleSystemSettings.getInstance().setGradleVmOptions(failOnWarning);
|
||||
}
|
||||
else {
|
||||
GradleSystemSettings.getInstance().setGradleVmOptions("%s %s".formatted(originalVmOptions, failOnWarning));
|
||||
}
|
||||
}
|
||||
super.importProject(config, skipIndexing);
|
||||
handleDeprecationError(deprecationError.get());
|
||||
}
|
||||
@@ -545,7 +554,12 @@ public abstract class GradleImportingTestCase extends JavaExternalSystemImportin
|
||||
}
|
||||
|
||||
protected void enableGradleDebugWithSuspend() {
|
||||
GradleSystemSettings.getInstance().setGradleVmOptions("-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=5005");
|
||||
GradleSystemSettings settings = GradleSystemSettings.getInstance();
|
||||
String options = String.format("%s %s",
|
||||
Objects.requireNonNullElse(settings.getGradleVmOptions(), ""),
|
||||
"-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=5005"
|
||||
);
|
||||
settings.setGradleVmOptions(options);
|
||||
}
|
||||
|
||||
protected Boolean isWarningsAllowed() {
|
||||
|
||||
+6
-4
@@ -35,7 +35,6 @@ import org.jetbrains.kotlin.konan.target.HostManager
|
||||
import org.jetbrains.kotlin.test.TestMetadata
|
||||
import org.jetbrains.kotlin.tooling.core.KotlinToolingVersion
|
||||
import org.jetbrains.plugins.gradle.importing.GradleImportingTestCase
|
||||
import org.jetbrains.plugins.gradle.settings.GradleSystemSettings
|
||||
import org.junit.Assert
|
||||
import org.junit.Assume.assumeTrue
|
||||
import org.junit.Rule
|
||||
@@ -212,10 +211,13 @@ abstract class AbstractKotlinMppGradleImportingTest : GradleImportingTestCase(),
|
||||
context.testProject = myProject
|
||||
context.testProjectRoot = myProjectRoot.toNioPath().toFile()
|
||||
context.gradleJdkPath = File(findJdkPath())
|
||||
}
|
||||
|
||||
// Otherwise Gradle Daemon fails with Metaspace exhausted periodically
|
||||
GradleSystemSettings.getInstance().gradleVmOptions =
|
||||
"-XX:MaxMetaspaceSize=1024m -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=${System.getProperty("user.dir")}"
|
||||
override fun configureGradleVmOptions(options: MutableSet<String>) {
|
||||
super.configureGradleVmOptions(options)
|
||||
options.add("-XX:MaxMetaspaceSize=1024m")
|
||||
options.add("-XX:+HeapDumpOnOutOfMemoryError")
|
||||
options.add("-XX:HeapDumpPath=${System.getProperty("user.dir")}")
|
||||
}
|
||||
|
||||
override fun setUpFixtures() {
|
||||
|
||||
+7
-3
@@ -38,7 +38,6 @@ import org.jetbrains.kotlin.idea.test.setUpWithKotlinPlugin
|
||||
import org.jetbrains.kotlin.utils.addToStdlib.filterIsInstanceWithChecker
|
||||
import org.jetbrains.plugins.gradle.importing.GradleImportingTestCase
|
||||
import org.jetbrains.plugins.gradle.service.project.open.createLinkSettings
|
||||
import org.jetbrains.plugins.gradle.settings.GradleSystemSettings
|
||||
import org.jetbrains.plugins.gradle.util.GradleConstants
|
||||
import org.junit.Assume
|
||||
import org.junit.runners.Parameterized
|
||||
@@ -96,13 +95,18 @@ abstract class KotlinGradleImportingTestCase : GradleImportingTestCase(),
|
||||
override fun setUp() {
|
||||
Assume.assumeFalse(AndroidStudioTestUtils.skipIncompatibleTestAgainstAndroidStudio())
|
||||
setUpWithKotlinPlugin { super.setUp() }
|
||||
GradleSystemSettings.getInstance().gradleVmOptions =
|
||||
"-XX:MaxMetaspaceSize=512m -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=${System.getProperty("user.dir")}"
|
||||
GradleProcessOutputInterceptor.install(testRootDisposable)
|
||||
|
||||
setUpImportStatusCollector()
|
||||
}
|
||||
|
||||
override fun configureGradleVmOptions(options: MutableSet<String>) {
|
||||
super.configureGradleVmOptions(options)
|
||||
options.add("-XX:MaxMetaspaceSize=512m")
|
||||
options.add("-XX:+HeapDumpOnOutOfMemoryError")
|
||||
options.add("-XX:HeapDumpPath=${System.getProperty("user.dir")}")
|
||||
}
|
||||
|
||||
override fun tearDown() {
|
||||
try {
|
||||
tearDownImportStatusCollector()
|
||||
|
||||
Reference in New Issue
Block a user