3 def getCurrentVersion() {
7 version = currentVersion
9 sourceCompatibility = 1.8
10 targetCompatibility = 1.8
17 testImplementation "junit:junit:4.12"
20 ext.manifestCommonAttrbutes = manifest {
22 "Built-By": System.getProperty("user.name"),
23 "Implementation-Vendor": "NASA Ames Research Center",
24 "Implementation-Version": version
28 apply from: "gradle/ide-support.gradle"
29 apply from: "gradle/distribution.gradle"
30 apply from: "gradle/source-sets.gradle"
31 apply from: "gradle/build-resources.gradle"
35 description = "Compiles all JPF core sources."
37 // These are automatic generated tasks from the Java Gradle Plugin.
38 // Gradle is able to infer the order of the source sets
39 // due to the compileClasspath attribute
40 dependsOn compileTestJava
41 dependsOn compileExamplesJava
44 task createJpfClassesJar(type: Jar) {
45 archiveName = "jpf-classes.jar"
46 destinationDir = file("${buildDir}")
49 description = "Creates the ${archiveName} file."
52 dependsOn copyResources
54 from sourceSets.classes.java.outputDir
55 from sourceSets.annotations.java.outputDir
56 from(sourceSets.main.java.outputDir) {
57 include "gov/nasa/jpf/JPFShell.class"
58 include "gov/nasa/jpf/vm/Verify.class"
59 include "gov/nasa/jpf/util/TypeRef.class"
60 include "gov/nasa/jpf/util/test/TestJPF.class"
61 include "gov/nasa/jpf/util/test/TestMultiProcessJPF.class"
62 include "gov/nasa/jpf/util/test/TestJPFHelper.class"
66 task createJpfJar(type: Jar) {
67 archiveName = "jpf.jar"
68 destinationDir = file("${buildDir}")
71 description = "Creates the ${archiveName} file."
74 dependsOn copyResources
76 from sourceSets.main.java.outputDir
77 from sourceSets.peers.java.outputDir
78 from sourceSets.annotations.java.outputDir
79 from(sourceSets.classes.java.outputDir) {
80 include "org/junit/*.class"
84 attributes "Implementation-Title": "Java Pathfinder core system"
85 from manifestCommonAttrbutes
89 task createAnnotationsJar(type: Jar) {
90 archiveName = "jpf-annotations.jar"
91 destinationDir = file("${buildDir}")
94 description = "Creates the ${archiveName} file."
97 dependsOn copyResources
99 from sourceSets.annotations.java.outputDir
102 task createClassloaderSpecificTestsJar(type: Jar) {
103 archiveName = "classloader_specific_tests.jar"
104 destinationDir = file("${buildDir}")
107 description = "Creates the ${archiveName} file."
110 dependsOn copyResources
112 from(sourceSets.test.java.outputDir) {
113 include "classloader_specific_tests/*.class"
117 task createRunJpfJar(type: Jar) {
118 archiveName = "RunJPF.jar"
119 destinationDir = file("${buildDir}")
121 description = "Creates the ${archiveName} file."
125 dependsOn copyResources
127 from(sourceSets.main.java.outputDir) {
128 include "gov/nasa/jpf/tool/Run.class"
129 include "gov/nasa/jpf/tool/RunJPF.class"
130 include "gov/nasa/jpf/Config.class"
131 include "gov/nasa/jpf/ConfigChangeListener.class"
132 include "gov/nasa/jpf/Config\$MissingRequiredKeyException.class"
133 include "gov/nasa/jpf/JPFClassLoader.class"
134 include "gov/nasa/jpf/JPFShell.class"
135 include "gov/nasa/jpf/JPFException.class"
136 include "gov/nasa/jpf/JPFConfigException.class"
137 include "gov/nasa/jpf/JPFTargetException.class"
138 include "gov/nasa/jpf/util/JPFSiteUtils.class"
139 include "gov/nasa/jpf/util/FileUtils.class"
140 include "gov/nasa/jpf/util/StringMatcher.class"
141 include "gov/nasa/jpf/util/Pair.class"
145 "Implementation-Title": "Java Pathfinder core launch system",
146 "Main-Class": "gov.nasa.jpf.tool.RunJPF"
148 from manifestCommonAttrbutes
152 task createRunTestJar(type: Jar) {
153 archiveName = "RunTest.jar"
154 destinationDir = file("${buildDir}")
156 description = "Creates the ${archiveName} file."
160 dependsOn copyResources
162 from(sourceSets.main.java.outputDir) {
163 include "gov/nasa/jpf/tool/Run.class"
164 include "gov/nasa/jpf/tool/RunTest.class"
165 include "gov/nasa/jpf/tool/RunTest\$Failed.class"
166 include "gov/nasa/jpf/Config.class"
167 include "gov/nasa/jpf/ConfigChangeListener.class"
168 include "gov/nasa/jpf/Config\$MissingRequiredKeyException.class"
169 include "gov/nasa/jpf/JPFClassLoader.class"
170 include "gov/nasa/jpf/JPFException.class"
171 include "gov/nasa/jpf/JPFConfigException.class"
172 include "gov/nasa/jpf/util/JPFSiteUtils.class"
173 include "gov/nasa/jpf/util/FileUtils.class"
174 include "gov/nasa/jpf/util/StringMatcher.class"
175 include "gov/nasa/jpf/util/DevNullPrintStream.class"
179 "Implementation-Title": "Java Pathfinder test launch system",
180 "Main-Class": "gov.nasa.jpf.tool.RunTest"
182 from manifestCommonAttrbutes
188 description = "Generates all core JPF jar files."
190 dependsOn createClassloaderSpecificTestsJar
191 dependsOn createAnnotationsJar
192 dependsOn createJpfClassesJar
193 dependsOn createJpfJar
194 dependsOn createRunJpfJar
195 dependsOn createRunTestJar
199 description = "Runs core regression tests."
204 enableAssertions = true
205 maxHeapSize = "1024m"
207 include "**/*Test.class"
208 exclude "**/SplitInputStreamTest.class"
209 exclude "**/JPF_*.class"
212 events "passed", "skipped", "failed"
215 afterSuite { testDescriptor, result ->
216 if (!testDescriptor.parent) {
217 println "Test Execution: ${result.resultType}"
219 def summaryFields = ["${result.testCount} tests",
220 "${result.successfulTestCount} passed",
221 "${result.failedTestCount} failed",
222 "${result.skippedTestCount} skipped"]
224 println "Summary: " + summaryFields.join(", ")
229 defaultTasks "buildJars"