jalviewjsJ2sAltSettingsFileName = string("${jalviewDir}/${jalviewjs_j2s_alt_settings}")
jalviewjsJ2sProps = null
jalviewjsJ2sPlugin = jalviewjs_j2s_plugin
+ jalviewjsStderrLaunchFilename = "${jalviewjsSiteDir}/"+(file(jalviewjs_stderr_launch).getName())
eclipseWorkspace = null
eclipseBinary = string("")
eclipseVersion = string("")
eclipseDebug = false
+
// ENDEXT
}
// not running tests in this task
exclude "**/*"
-
}
/* testTask0 is the main test task */
task testTask0(type: Test) {
testTask.mustRunAfter "testTask0"
testTask.testLogging { logging ->
- events TestLogEvent.FAILED,
- TestLogEvent.SKIPPED,
- TestLogEvent.STANDARD_OUT,
- TestLogEvent.STANDARD_ERROR
+ events TestLogEvent.FAILED
+// TestLogEvent.SKIPPED,
+// TestLogEvent.STANDARD_OUT,
+// TestLogEvent.STANDARD_ERROR
exceptionFormat TestExceptionFormat.FULL
showExceptions true
showCauses true
showStackTraces true
+
+ info.events = [ TestLogEvent.FAILED ]
}
+
+
ignoreFailures = true // Always try to run all tests for all modules
afterSuite { desc, result ->
// testTasks that include the tests, and exclude all from the others.
// get --test argument
filter.commandLineIncludePatterns = test.filter.commandLineIncludePatterns
+ // do something with testTask.getCandidateClassFiles() to see if the test should silently finish because of the
+ // commandLineIncludePatterns not matching anything. Instead we are doing setFailOnNoMatchingTests(false) below
+
if (useClover) {
println("Running tests " + (useClover?"WITH":"WITHOUT") + " clover")
}
}
+
+ /* don't fail on no matching tests (so --tests will run across all testTasks) */
+ testTask.filter.setFailOnNoMatchingTests(false)
+
/* ensure the "test" task dependsOn all the testTasks */
test.dependsOn testTask
}
private static String getSummaryLine(s, pn, tn, rt, rc, rs, rf, rsk, t, col) {
def colour = 'black'
+ def text = rt
def nocol = false
- switch(rt) {
- case TestResult.ResultType.SUCCESS:
- colour = 'green'
- break;
- case TestResult.ResultType.FAILURE:
- colour = 'red'
- break;
- default:
- nocol = true
- break;
+ if (rc == 0) {
+ text = "-----"
+ nocol = true
+ } else {
+ switch(rt) {
+ case TestResult.ResultType.SUCCESS:
+ colour = 'green'
+ break;
+ case TestResult.ResultType.FAILURE:
+ colour = 'red'
+ break;
+ default:
+ nocol = true
+ break;
+ }
}
StringBuilder sb = new StringBuilder()
sb.append("${pn}")
if (tn != null)
sb.append(":${tn}")
sb.append(" results: ")
- sb.append(colString(s, col && !nocol, colour, rt))
+ sb.append(colString(s, col && !nocol, colour, text))
sb.append(" (")
sb.append("${rc} tests, ")
sb.append(colString(s, col && rs > 0, 'green', rs))
props.put("getdown_txt_ui.instant_background_image", "${getdownImagesBuildDir}/${getdown_instant_background_image}")
props.put("getdown_txt_ui.error_background", "${getdownImagesBuildDir}/${getdown_error_background}")
props.put("getdown_txt_ui.progress_image", "${getdownImagesBuildDir}/${getdown_progress_image}")
- props.put("getdown_txt_ui.icon", "${getdownImagesBuildDir}/${getdown_icon}")
- props.put("getdown_txt_ui.mac_dock_icon", "${getdownImagesBuildDir}/${getdown_mac_dock_icon}")
+ props.put("getdown_txt_ui.icon", "${getdownImagesDir}/${getdown_icon}")
+ props.put("getdown_txt_ui.mac_dock_icon", "${getdownImagesDir}/${getdown_mac_dock_icon}")
}
props.put("getdown_txt_title", jalview_name)
'WRAPPER_LINK': getdownWrapperLink,
'BASH_WRAPPER_SCRIPT': getdown_bash_wrapper_script,
'POWERSHELL_WRAPPER_SCRIPT': getdown_powershell_wrapper_script,
+ 'BATCH_WRAPPER_SCRIPT': getdown_batch_wrapper_script,
'WRAPPER_SCRIPT_BIN_DIR': getdown_wrapper_script_dir,
'INSTALLER_NAME': install4jInstallerName,
'INSTALL4J_UTILS_DIR': install4j_utils_dir,
dependsOn jalviewjsBuildSite
}
+
+task jalviewjsCopyStderrLaunchFile(type: Copy) {
+ from file(jalviewjs_stderr_launch)
+ into jalviewjsSiteDir
+
+ inputs.file jalviewjs_stderr_launch
+ outputs.file jalviewjsStderrLaunchFilename
+}
+
+task jalviewjsChromiumProfile {
+ def profileDir = "${jalviewjsBuildDir}/${jalviewjs_chromium_user_dir}/${jalviewjs_chromium_profile_name}"
+ def firstRun = file("${profileDir}/First Run")
+
+ doFirst {
+ mkdir profileDir
+ firstRun.text = ""
+ }
+
+ outputs.file firstRun
+}
+
+task jalviewjsLaunchTest(type: Exec) {
+ group "Test"
+ description "Check JalviewJS opens in a browser"
+ dependsOn jalviewjsBuildSite
+ dependsOn jalviewjsCopyStderrLaunchFile
+ dependsOn jalviewjsChromiumProfile
+
+ def chromiumBinary = jalviewjs_chromium_binary
+ if (chromiumBinary.startsWith("~/")) {
+ chromiumBinary = System.getProperty("user.home") + chromiumBinary.substring(1)
+ }
+
+ doFirst {
+ def exec = file(chromiumBinary)
+ if (!exec.exists()) {
+ throw new GradleException("Could not find chromium binary '${chromiumBinary}'. Cannot run task ${name}.")
+ }
+ }
+
+ executable(chromiumBinary)
+ args([
+ "--headless=new",
+ "--timeout=60000",
+ "--virtual-time-budget=60000",
+ "--user-data-dir=${jalviewjsBuildDir}/${jalviewjs_chromium_user_dir}",
+ "--profile-directory=${jalviewjs_chromium_profile_name}",
+ "--allow-file-access-from-files",
+ "--enable-logging=stderr",
+ jalviewjsStderrLaunchFilename
+ ])
+
+ /*
+ standardOutput = new ByteArrayOutputStream()
+ errorOutput = new ByteArrayOutputStream()
+
+ doLast {
+ println("Chrome STDOUT: ")
+ println(standardOutput.toString())
+ println("Chrome STDERR: ")
+ println(errorOutput.toString())
+
+ def found = false
+ def stderr = errorOutput.toString()
+ stderr.eachLine { line ->
+ if (line.contains(jalviewjs_desktop_init_string)) {
+ println("Found line '"+line+"'")
+ found = true
+ return
+ }
+ }
+ if (!found) {
+ throw new GradleException("Could not find evidence of Desktop launch in JalviewJS.")
+ }
+ }
+ */
+}