mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
IJI-532 Safe Push: add IdeaUltimateLibraryLicensesTest to smoke tests (like project structure tests)
GitOrigin-RevId: 34b597eb546a06e69dabbd6ffb2eab3472d11ad5
This commit is contained in:
committed by
intellij-monorepo-bot
parent
b9d1e88402
commit
ad82f676fe
@@ -20,8 +20,8 @@ class TestingOptions {
|
||||
String testPatterns = System.getProperty("intellij.build.test.patterns", OLD_TEST_PATTERNS)
|
||||
|
||||
/**
|
||||
* Semicolon-separated names of JUnit run configurations in the project which need to be executed. If this option is specified,
|
||||
* {@link #testGroups}, {@link #testPatterns} and {@link #mainModule} will be ignored.
|
||||
* Semicolon-separated names of JUnit run configurations (with optional custom test bootstrap suite in parentheses after each) in the project which need to be executed.
|
||||
* If this option is specified {@link #testGroups}, {@link #testPatterns} and {@link #mainModule} will be ignored.
|
||||
*/
|
||||
String testConfigurations = System.getProperty("intellij.build.test.configurations")
|
||||
|
||||
|
||||
+6
-2
@@ -9,10 +9,11 @@ import org.jetbrains.intellij.build.BuildMessages
|
||||
final class JUnitRunConfigurationProperties extends RunConfigurationProperties {
|
||||
final List<String> testClassPatterns
|
||||
final List<String> requiredArtifacts
|
||||
final String testBootstrapSuite
|
||||
|
||||
@SuppressWarnings(["GrUnresolvedAccess", "GroovyAssignabilityCheck"])
|
||||
@CompileDynamic
|
||||
static JUnitRunConfigurationProperties loadRunConfiguration(File file, BuildMessages messages) {
|
||||
static JUnitRunConfigurationProperties loadRunConfiguration(File file, String testBootstrapSuite, BuildMessages messages) {
|
||||
def configuration = getConfiguration(file, messages)
|
||||
|
||||
if (configuration.@type != "JUnit") {
|
||||
@@ -54,11 +55,13 @@ final class JUnitRunConfigurationProperties extends RunConfigurationProperties {
|
||||
// Pattern is a regex already, we don't need to escape it in com.intellij.TestClassesFilter
|
||||
("pattern" == testKind ? ["-Dintellij.build.test.patterns.escaped=true"] : [])
|
||||
def envVariables = first(configuration.envs)?.env?.collectEntries { [it.@name, it.@value] } ?: [:]
|
||||
return new JUnitRunConfigurationProperties(configuration.@name, moduleName, testClassPatterns, vmParameters, requiredArtifacts, envVariables)
|
||||
return new JUnitRunConfigurationProperties(configuration.@name, moduleName, testBootstrapSuite,
|
||||
testClassPatterns, vmParameters, requiredArtifacts, envVariables)
|
||||
}
|
||||
|
||||
JUnitRunConfigurationProperties(String name,
|
||||
String moduleName,
|
||||
String testBootstrapSuite,
|
||||
List<String> testClassPatterns,
|
||||
List<String> vmParameters,
|
||||
List<String> requiredArtifacts,
|
||||
@@ -66,5 +69,6 @@ final class JUnitRunConfigurationProperties extends RunConfigurationProperties {
|
||||
super(name, moduleName, vmParameters, envVariables)
|
||||
this.testClassPatterns = testClassPatterns
|
||||
this.requiredArtifacts = requiredArtifacts
|
||||
this.testBootstrapSuite = testBootstrapSuite
|
||||
}
|
||||
}
|
||||
|
||||
+43
-16
@@ -10,7 +10,11 @@ import groovy.transform.CompileDynamic
|
||||
import groovy.transform.CompileStatic
|
||||
import org.apache.tools.ant.AntClassLoader
|
||||
import org.apache.tools.ant.types.Path
|
||||
import org.jetbrains.intellij.build.*
|
||||
import org.jetbrains.intellij.build.BuildOptions
|
||||
import org.jetbrains.intellij.build.CompilationContext
|
||||
import org.jetbrains.intellij.build.CompilationTasks
|
||||
import org.jetbrains.intellij.build.TestingOptions
|
||||
import org.jetbrains.intellij.build.TestingTasks
|
||||
import org.jetbrains.intellij.build.causal.CausalProfilingOptions
|
||||
import org.jetbrains.intellij.build.impl.compilation.PortableCompilationCache
|
||||
import org.jetbrains.jps.model.java.JpsJavaClasspathKind
|
||||
@@ -49,10 +53,7 @@ class TestingTasksImpl extends TestingTasks {
|
||||
if (projectArtifacts) {
|
||||
compilationTasks.buildProjectArtifacts(projectArtifacts)
|
||||
}
|
||||
def runConfigurations = options.testConfigurations?.split(";")?.collect { String name ->
|
||||
def file = JUnitRunConfigurationProperties.findRunConfiguration(context.paths.projectHome, name, context.messages)
|
||||
JUnitRunConfigurationProperties.loadRunConfiguration(file, context.messages)
|
||||
}
|
||||
def runConfigurations = options.testConfigurations?.split(";")?.collect { loadRunConfiguration(it) }
|
||||
if (runConfigurations != null) {
|
||||
compilationTasks.compileModules(["intellij.tools.testsBootstrap"], ["intellij.platform.buildScripts"] + runConfigurations.collect { it.moduleName })
|
||||
compilationTasks.buildProjectArtifacts(runConfigurations.collectMany {it.requiredArtifacts})
|
||||
@@ -125,8 +126,11 @@ class TestingTasksImpl extends TestingTasks {
|
||||
Map<String, String> additionalSystemProperties) {
|
||||
context.messages.progress("Running '${runConfigurationProperties.name}' run configuration")
|
||||
List<String> filteredVmOptions = removeStandardJvmOptions(runConfigurationProperties.vmParameters)
|
||||
runTestsProcess(runConfigurationProperties.moduleName, null, runConfigurationProperties.testClassPatterns.join(";"),
|
||||
filteredVmOptions + additionalJvmOptions, additionalSystemProperties, runConfigurationProperties.envVariables, false)
|
||||
runTestsProcess(runConfigurationProperties.moduleName,
|
||||
runConfigurationProperties.testBootstrapSuite, null,
|
||||
runConfigurationProperties.testClassPatterns.join(";"),
|
||||
filteredVmOptions + additionalJvmOptions, additionalSystemProperties,
|
||||
runConfigurationProperties.envVariables, false)
|
||||
}
|
||||
|
||||
private static List<String> removeStandardJvmOptions(List<String> vmOptions) {
|
||||
@@ -158,7 +162,9 @@ class TestingTasksImpl extends TestingTasks {
|
||||
additionalSystemProperties["exclude.tests.roots.file"] = excludedRootsFile.absolutePath
|
||||
}
|
||||
|
||||
runTestsProcess(mainModule, options.testGroups, options.testPatterns, additionalJvmOptions, additionalSystemProperties, [:], false)
|
||||
runTestsProcess(mainModule, options.bootstrapSuite,
|
||||
options.testGroups, options.testPatterns,
|
||||
additionalJvmOptions, additionalSystemProperties, [:], false)
|
||||
}
|
||||
|
||||
private loadTestDiscovery(List<String> additionalJvmOptions, LinkedHashMap<String, String> additionalSystemProperties) {
|
||||
@@ -260,10 +266,12 @@ class TestingTasksImpl extends TestingTasks {
|
||||
}
|
||||
def mainModule = options.mainModule ?: defaultMainModule
|
||||
def filteredOptions = removeStandardJvmOptions(StringUtil.splitHonorQuotes(remoteDebugJvmOptions, ' ' as char))
|
||||
runTestsProcess(mainModule, null, junitClass, filteredOptions + additionalJvmOptions, [:], [:], true)
|
||||
runTestsProcess(mainModule, options.bootstrapSuite, null,
|
||||
junitClass, filteredOptions + additionalJvmOptions,
|
||||
[:], [:], true)
|
||||
}
|
||||
|
||||
private void runTestsProcess(String mainModule, String testGroups, String testPatterns,
|
||||
private void runTestsProcess(String mainModule, String testBootstrapSuite, String testGroups, String testPatterns,
|
||||
List<String> jvmArgs, Map<String, String> systemProperties, Map<String, String> envVariables, boolean remoteDebugging) {
|
||||
List<String> testsClasspath = context.getModuleRuntimeClasspath(context.findRequiredModule(mainModule), true)
|
||||
List<String> bootstrapClasspath = context.getModuleRuntimeClasspath(context.findRequiredModule("intellij.tools.testsBootstrap"), false)
|
||||
@@ -302,7 +310,8 @@ class TestingTasksImpl extends TestingTasks {
|
||||
context.messages.info("Environment variables: $envVariables")
|
||||
}
|
||||
|
||||
runJUnitTask(mainModule, allJvmArgs, allSystemProperties, envVariables, isBootstrapSuiteDefault() && !isRunningInBatchMode() ? bootstrapClasspath : testsClasspath)
|
||||
runJUnitTask(mainModule, testBootstrapSuite, allJvmArgs, allSystemProperties, envVariables,
|
||||
isBootstrapSuiteDefault(testBootstrapSuite) && !isRunningInBatchMode() ? bootstrapClasspath : testsClasspath)
|
||||
|
||||
notifySnapshotBuilt(allJvmArgs)
|
||||
}
|
||||
@@ -417,7 +426,8 @@ class TestingTasksImpl extends TestingTasks {
|
||||
|
||||
@SuppressWarnings("GrUnresolvedAccess")
|
||||
@CompileDynamic
|
||||
private void runJUnitTask(String mainModule, List<String> jvmArgs, Map<String, String> systemProperties,
|
||||
private void runJUnitTask(String mainModule, String testBootstrapSuite,
|
||||
List<String> jvmArgs, Map<String, String> systemProperties,
|
||||
Map<String, String> envVariables, List<String> bootstrapClasspath) {
|
||||
defineJunitTask(context.ant, "$context.paths.communityHome/lib")
|
||||
|
||||
@@ -458,7 +468,7 @@ class TestingTasksImpl extends TestingTasks {
|
||||
}
|
||||
|
||||
//test classpath may exceed the maximum command line, so we need to wrap a classpath in a jar
|
||||
if (!isBootstrapSuiteDefault()) {
|
||||
if (!isBootstrapSuiteDefault(testBootstrapSuite)) {
|
||||
def classpathJarFile = CommandLineWrapperUtil.createClasspathJarFile(new Manifest(), bootstrapClasspath)
|
||||
classpath {
|
||||
pathelement(location: classpathJarFile.path)
|
||||
@@ -477,7 +487,7 @@ class TestingTasksImpl extends TestingTasks {
|
||||
fileset dir: mainModuleTestsOutput, includes: options.batchTestIncludes
|
||||
}
|
||||
} else {
|
||||
test(name: options.bootstrapSuite)
|
||||
test(name: testBootstrapSuite)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -554,8 +564,8 @@ class TestingTasksImpl extends TestingTasks {
|
||||
ant.taskdef(name: "junit", classname: "org.apache.tools.ant.taskdefs.optional.junit.JUnitTask", loaderRef: junitTaskLoaderRef)
|
||||
}
|
||||
|
||||
protected boolean isBootstrapSuiteDefault() {
|
||||
return options.bootstrapSuite == TestingOptions.BOOTSTRAP_SUITE_DEFAULT
|
||||
protected static boolean isBootstrapSuiteDefault(String testBootstrapSuite) {
|
||||
return testBootstrapSuite == TestingOptions.BOOTSTRAP_SUITE_DEFAULT
|
||||
}
|
||||
|
||||
protected boolean isRunningInBatchMode() {
|
||||
@@ -584,4 +594,21 @@ class TestingTasksImpl extends TestingTasks {
|
||||
|
||||
return causalProfilingJvmArgs
|
||||
}
|
||||
|
||||
private JUnitRunConfigurationProperties loadRunConfiguration(String descriptor) {
|
||||
String name
|
||||
String testBootstrapSuite
|
||||
def openingIndex = descriptor.indexOf('(')
|
||||
def closingIndex = descriptor.indexOf(')')
|
||||
if (openingIndex > -1 && closingIndex > -1 && closingIndex > openingIndex) {
|
||||
name = descriptor.substring(0, openingIndex).trim()
|
||||
testBootstrapSuite = descriptor.substring(openingIndex + 1, closingIndex).trim()
|
||||
}
|
||||
else {
|
||||
name = descriptor.trim()
|
||||
testBootstrapSuite = options.bootstrapSuite
|
||||
}
|
||||
def file = JUnitRunConfigurationProperties.findRunConfiguration(context.paths.projectHome, name, context.messages)
|
||||
return JUnitRunConfigurationProperties.loadRunConfiguration(file, testBootstrapSuite, context.messages)
|
||||
}
|
||||
}
|
||||
|
||||
+6
-1
@@ -6,6 +6,7 @@ package org.jetbrains.intellij.build
|
||||
import com.intellij.util.io.URLUtil
|
||||
import junit.framework.AssertionFailedError
|
||||
import org.jetbrains.intellij.build.impl.JUnitRunConfigurationProperties
|
||||
import org.jetbrains.intellij.build.TestingOptions
|
||||
import org.junit.Assert.assertEquals
|
||||
import org.junit.Test
|
||||
|
||||
@@ -55,6 +56,10 @@ class JUnitRunConfigurationPropertiesTest {
|
||||
|
||||
private fun loadRunConfiguration(fileName: String): JUnitRunConfigurationProperties {
|
||||
val url = JUnitRunConfigurationPropertiesTest::class.java.getResource("runConfigurations/$fileName")
|
||||
return JUnitRunConfigurationProperties.loadRunConfiguration(URLUtil.urlToFile(url), MockBuildMessages())
|
||||
return JUnitRunConfigurationProperties.loadRunConfiguration(
|
||||
URLUtil.urlToFile(url),
|
||||
TestingOptions.BOOTSTRAP_SUITE_DEFAULT,
|
||||
MockBuildMessages()
|
||||
)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user