| test { |
| jvmArgs "-ea", "-Xms${groovyJUnit_ms}", "-Xmx${groovyJUnit_mx}", "-XX:PermSize=${groovyJUnit_permSize}", "-XX:MaxPermSize=${groovyJUnit_maxPermSize}" |
| def headless = System.properties['java.awt.headless'] |
| if (headless == 'true') { |
| systemProperties 'java.awt.headless': "true" |
| } |
| def testdb = System.properties['groovy.testdb.props'] |
| if (testdb) { |
| systemProperties 'groovy.testdb.props': testdb |
| } |
| systemProperties 'apple.awt.UIElement': "true", "javadocAssertion.src.dir": './src/main' |
| systemProperties "gradle.home": gradle.gradleHomeDir // this is needed by the security.policy |
| doFirst { |
| // this is needed by the security.policy. We set it at execution time to avoid resolving a configuration when not needed. |
| systemProperties "gradle.junit": configurations.testCompile.fileCollection { dep -> dep.name == 'junit' }.singleFile.absolutePath |
| } |
| classpath = files('src/test') + classpath |
| forkEvery = 1 |
| scanForTestClasses = false |
| ignoreFailures = false |
| resultText = '' |
| includes = includePattern |
| } |
| |
| tasks.addRule("Pattern: testSingle<Name> will test **/<Name>.class") {String taskName -> |
| if (taskName.startsWith("testSingle")) { |
| tasks.add(taskName).dependsOn(test) |
| test.includes = ['**/' + taskName.substring(10) + '.class'] |
| test.outputs.upToDateWhen { false } |
| } |
| } |
| |
| def getIncludePattern() { |
| def baseInclude = ['UberTestCaseBugs.class', |
| 'UberTestCaseGroovySourceCodehausPackages.class', |
| 'UberTestCaseGroovySourceRootPackage.class', |
| "UberTestCaseGroovySourceSubPackages.class", |
| "UberTestCaseJavaSourceCodehausPackages.class", |
| "UberTestCaseJavaSourceGroovyPackagesNonSecurity.class", |
| "UberTestCaseTCK.class", |
| "UberTestCaseJavaSourceGroovyPackagesSecurity.class"] |
| if (System.properties['junit.network']) { |
| baseInclude += ['groovy/grape/*Test.class'] |
| } |
| if (isJava16()) { |
| baseInclude += [ |
| "UberTestCaseGroovySourceSubPackages_VM6.class", |
| "UberTestCaseGroovySourceCodehausPackages_VM6.class" |
| ] |
| } |
| baseInclude |
| } |
| |
| task compareTests << { |
| def uberTestCases = ['UberTestCaseBugs.xml', |
| 'UberTestCaseGroovySourceCodehausPackages.xml', |
| 'UberTestCaseGroovySourceRootPackage.xml', |
| "UberTestCaseGroovySourceSubPackages.xml", |
| "UberTestCaseJavaSourceCodehausPackages.xml", |
| "UberTestCaseJavaSourceGroovyPackagesNonSecurity.xml", |
| "UberTestCaseTCK.xml", |
| "UberTestCaseGroovySourceSubPackages_VM6.xml", |
| "UberTestCaseJavaSourceGroovyPackagesSecurity.xml"] |
| uberTestCases.each { testCaseName -> |
| compareAntWithGradle("target/test-reports/TEST-$testCaseName" as File, "target/test-results/TEST-$testCaseName" as File) |
| } |
| } |
| |
| def compareAntWithGradle(File antResult, File gradleResult) { |
| Set antTests = testsRun(antResult) |
| Set gradleTests = testsRun(gradleResult) |
| Set commonTests = antTests.intersect(gradleTests) |
| Set antOnly = antTests - commonTests |
| Set gradleOnly = gradleTests - commonTests |
| if (antOnly) { |
| println "Tests only run by Ant: " + antOnly |
| } |
| if (gradleOnly) { |
| println "Tests only run by Gradle: " + gradleOnly |
| } |
| } |
| |
| Set testsRun(File resultsXmlFile) { |
| def testsuite = new XmlParser().parse(resultsXmlFile) |
| Set tests = [] |
| testsuite.testcase.each { testcase -> |
| tests.add("${testcase.'@classname'}:${testcase.'@name'}") |
| } |
| tests |
| } |