summaryrefslogtreecommitdiff
path: root/build/scripts/gui_tests.gant
diff options
context:
space:
mode:
Diffstat (limited to 'build/scripts/gui_tests.gant')
-rw-r--r--build/scripts/gui_tests.gant90
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)