blob: eb21bac9d8a4e0767372289bdd6cb4b8b9643634 [file] [log] [blame]
/*
* Copyright 2000-2012 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import static org.jetbrains.jps.idea.IdeaProjectLoader.guessHome
includeTargets << new File("${guessHome(this)}/build/scripts/utils.gant")
includeTargets << new File("${guessHome(this)}/build/scripts/cucumber-tests.gant")
requireProperty("out", "$home/out")
target(check: "Ensure the environment is configured") {
tempDir = p("teamcity.build.tempDir")
}
target(compile: "Compile project") {
ant.delete(failonerror: false) {
fileset(dir: "$home/reports")
fileset(dir: "$home/bin", includes: "*.hprof")
}
loadProject()
projectBuilder.targetFolder = out
projectBuilder.cleanOutput()
projectBuilder.buildAll()
}
private pass(String prop) {
if (isDefined(prop)) {
ant.jvmarg(value: "-D$prop=${p(prop)}")
}
}
target('run_tests': 'Run java tests') {
depends([check, compile])
def classpathFile = "$home/junit.classpath"
List<String> testRuntimeClasspath = projectBuilder.moduleRuntimeClasspath(findModule("community-main"), true)
new File(classpathFile).text = testRuntimeClasspath.findAll({ new File((String)it).exists() }).join('\n')
testcases.each { testCase ->
ant.junit(fork: "yes", showoutput: "true", logfailedtests: false) {
jvmarg(value: "-Dclasspath.file=${classpathFile}")
pass("idea.test.group")
pass("idea.test.patterns")
pass("idea.fast.only")
pass("idea.coverage.enabled.build")
pass("teamcity.build.tempDir")
pass("teamcity.tests.recentlyFailedTests.file")
jvmarg(value: "-Didea.platform.prefix=Idea")
System.getProperties().entrySet().each {
if (it.key.startsWith("pass.")) {
def trimmed = it.key.substring("pass.".length());
jvmarg(value: "-D${trimmed}=${it.value}");
};
}
commonJvmArgs().each { jvmarg(value: it) }
jvmarg(value: "-Dbootstrap.testcases=$testCase")
if (isDefined("jvm_args")) {
jvm_args.each { jvmarg(value: it) }
}
classpath {
projectBuilder.moduleRuntimeClasspath(findModule("tests_bootstrap"), false).each {
pathelement(location: it)
}
pathelement(location: "${jdkHome}/lib/tools.jar")
}
test(name: 'com.intellij.tests.BootstrapTests')
}
}
}
target('default' : "Run all tests") {
depends([compile, run_tests])
}