diff options
Diffstat (limited to 'build/scripts/gui_tests.gant')
-rw-r--r-- | build/scripts/gui_tests.gant | 90 |
1 files changed, 90 insertions, 0 deletions
diff --git a/build/scripts/gui_tests.gant b/build/scripts/gui_tests.gant new file mode 100644 index 000000000000..a1713874cf76 --- /dev/null +++ b/build/scripts/gui_tests.gant @@ -0,0 +1,90 @@ +// Based on tests.gant but with the includeTargets of common_tests inlined +// below (and with some changes to invoke our GUI test suite instead +import static org.jetbrains.jps.idea.IdeaProjectLoader.guessHome + +includeTargets << new File("${guessHome(this)}/build/scripts/utils.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 + if (!isDefined("skip_build")) { + projectBuilder.cleanOutput() + projectBuilder.buildAll() + } +} + +private pass(String prop) { + if (isDefined(prop)) { + ant.jvmarg(value: "-D$prop=${p(prop)}") + } +} + +target('run_ui_tests': 'Run java tests') { + depends([check, compile]) + + ant.junit(fork: "yes", showoutput: "true", logfailedtests:false, printsummary: "true") { + pass("idea.test.group") + pass("idea.test.patterns") + pass("idea.fast.only") + pass("teamcity.build.tempDir") + pass("teamcity.tests.recentlyFailedTests.file") + + 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) } + + if (isDefined("jvm_args")) { + jvm_args.each { jvmarg(value: it) } + } + + classpath { + projectBuilder.moduleRuntimeClasspath(findModule("community-main"), true).each { + pathelement(location: it) + } + pathelement(location: "${jdkHome}/lib/tools.jar") + } + + formatter(type: "plain") + formatter(type: "xml") + + testcases.each { + test (name: it) + } + } +} + +target('default' : "Run all UI tests") { + depends([compile, run_ui_tests]) + depends([run_ui_tests]) +} + +// To run just your own tests, you can for example write +//setProperty("testcases", ["com.android.tools.idea.tests.gui.layout.LayoutPreviewTest","com.android.tools.idea.tests.gui.layout.LayoutEditorTest"]) +setProperty("testcases", ["com.android.tools.idea.tests.gui.GuiTestSuite"]) + +def isMac = System.getProperty("os.name").toLowerCase().startsWith("mac") +def args = [ + "-Xmx2048m", + "-XX:MaxPermSize=1024m", + "-XX:ReservedCodeCacheSize=96m", + "-XX:+UseCodeCacheFlushing" +] +if (isMac) args << "-d32"; + +setProperty("jvm_args", args) |