+
+task createClassloaderSpecificTestsJar(type: Jar) {
+ archiveName = "classloader_specific_tests.jar"
+ destinationDir = file("${buildDir}")
+
+ group = "JPF Jars"
+ description = "Creates the ${archiveName} file."
+
+ dependsOn compile
+ dependsOn copyResources
+
+ from(sourceSets.test.java.outputDir) {
+ include "classloader_specific_tests/*.class"
+ }
+}
+
+task createRunJpfJar(type: Jar) {
+ archiveName = "RunJPF.jar"
+ destinationDir = file("${buildDir}")
+
+ description = "Creates the ${archiveName} file."
+ group = "JPF Jars"
+
+ dependsOn compile
+ dependsOn copyResources
+
+ from(sourceSets.main.java.outputDir) {
+ include "gov/nasa/jpf/tool/Run.class"
+ include "gov/nasa/jpf/tool/RunJPF.class"
+ include "gov/nasa/jpf/Config.class"
+ include "gov/nasa/jpf/ConfigChangeListener.class"
+ include "gov/nasa/jpf/Config\$MissingRequiredKeyException.class"
+ include "gov/nasa/jpf/JPFClassLoader.class"
+ include "gov/nasa/jpf/JPFShell.class"
+ include "gov/nasa/jpf/JPFException.class"
+ include "gov/nasa/jpf/JPFConfigException.class"
+ include "gov/nasa/jpf/JPFTargetException.class"
+ include "gov/nasa/jpf/util/JPFSiteUtils.class"
+ include "gov/nasa/jpf/util/FileUtils.class"
+ include "gov/nasa/jpf/util/StringMatcher.class"
+ include "gov/nasa/jpf/util/Pair.class"
+ }
+ manifest {
+ attributes(
+ "Implementation-Title": "Java Pathfinder core launch system",
+ "Main-Class": "gov.nasa.jpf.tool.RunJPF"
+ )
+ from manifestCommonAttrbutes
+ }
+}
+
+task createRunTestJar(type: Jar) {
+ archiveName = "RunTest.jar"
+ destinationDir = file("${buildDir}")
+
+ description = "Creates the ${archiveName} file."
+ group = "JPF Jars"
+
+ dependsOn compile
+ dependsOn copyResources
+
+ from(sourceSets.main.java.outputDir) {
+ include "gov/nasa/jpf/tool/Run.class"
+ include "gov/nasa/jpf/tool/RunTest.class"
+ include "gov/nasa/jpf/tool/RunTest\$Failed.class"
+ include "gov/nasa/jpf/Config.class"
+ include "gov/nasa/jpf/ConfigChangeListener.class"
+ include "gov/nasa/jpf/Config\$MissingRequiredKeyException.class"
+ include "gov/nasa/jpf/JPFClassLoader.class"
+ include "gov/nasa/jpf/JPFException.class"
+ include "gov/nasa/jpf/JPFConfigException.class"
+ include "gov/nasa/jpf/util/JPFSiteUtils.class"
+ include "gov/nasa/jpf/util/FileUtils.class"
+ include "gov/nasa/jpf/util/StringMatcher.class"
+ include "gov/nasa/jpf/util/DevNullPrintStream.class"
+ }
+ manifest {
+ attributes(
+ "Implementation-Title": "Java Pathfinder test launch system",
+ "Main-Class": "gov.nasa.jpf.tool.RunTest"
+ )
+ from manifestCommonAttrbutes
+ }
+}
+
+task buildJars {
+ group = "JPF Build"
+ description = "Generates all core JPF jar files."
+
+ dependsOn createClassloaderSpecificTestsJar
+ dependsOn createAnnotationsJar
+ dependsOn createJpfClassesJar
+ dependsOn createJpfJar
+ dependsOn createRunJpfJar
+ dependsOn createRunTestJar
+}
+
+test {
+ description = "Runs core regression tests."
+
+ dependsOn buildJars
+
+ forkEvery = 1
+ enableAssertions = true
+ maxHeapSize = "1024m"
+
+ include "**/*Test.class"
+ exclude "**/SplitInputStreamTest.class"
+ exclude "**/JPF_*.class"
+
+ testLogging {
+ events "passed", "skipped", "failed"
+ }
+
+ afterSuite { testDescriptor, result ->
+ if (!testDescriptor.parent) {
+ println "Test Execution: ${result.resultType}"
+
+ def summaryFields = ["${result.testCount} tests",
+ "${result.successfulTestCount} passed",
+ "${result.failedTestCount} failed",
+ "${result.skippedTestCount} skipped"]
+
+ println "Summary: " + summaryFields.join(", ")
+ }
+ }
+}
+
+defaultTasks "buildJars"