| /* |
| * 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]) |
| } |