Skip to content

Commit

Permalink
Merge remote-tracking branch 'upstream/master' into fix_2039
Browse files Browse the repository at this point in the history
  • Loading branch information
AndreasTu committed Dec 21, 2024
2 parents cc4160c + 78787ce commit 5999e3b
Show file tree
Hide file tree
Showing 10 changed files with 77 additions and 31 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -19,11 +19,43 @@ package org.spockframework.gradle
import groovy.transform.CompileStatic
import org.gradle.api.Plugin
import org.gradle.api.Project
import org.gradle.api.plugins.JavaPlugin
import org.gradle.api.tasks.compile.GroovyCompile
import org.gradle.api.tasks.compile.JavaCompile
import org.gradle.api.tasks.testing.Test
import org.gradle.jvm.toolchain.JavaLanguageVersion
import org.gradle.jvm.toolchain.JavaToolchainService
import org.jetbrains.annotations.VisibleForTesting

@CompileStatic
class SpockBasePlugin implements Plugin<Project> {

@VisibleForTesting
public static final JavaLanguageVersion COMPILER_VERSION = JavaLanguageVersion.of(8)

void apply(Project project) {
compileTasks(project)
testTasks(project)
}

private static void compileTasks(Project project) {
project.with {
def javaToolchains = extensions.getByType(JavaToolchainService)
tasks.withType(JavaCompile).configureEach { comp ->
if (comp.name == JavaPlugin.COMPILE_JAVA_TASK_NAME) {
comp.javaCompiler.set(javaToolchains.compilerFor {
it.languageVersion.set(COMPILER_VERSION)
})
}
comp.options.encoding = 'UTF-8'
}
tasks.withType(GroovyCompile).configureEach {
it.options.encoding = 'UTF-8'
}
}
}

private static void testTasks(Project project) {
project.tasks.withType(Test).configureEach { task ->
def taskName = task.name.capitalize()
File configFile = project.file("Spock${taskName}Config.groovy")
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
package org.spockframework.gradle

import org.gradle.api.Project
import org.gradle.api.plugins.JavaPlugin
import org.gradle.api.tasks.compile.JavaCompile
import org.gradle.testfixtures.ProjectBuilder
import spock.lang.Specification

class SpockBasePluginSpec extends Specification {

def 'Compile settings are configured'() {
setup:
def project = createProject()

when:
def compileJavaTasks = project.tasks.withType(JavaCompile)
def compileJava = project.tasks.getByName(JavaPlugin.COMPILE_JAVA_TASK_NAME) as JavaCompile

then:
compileJavaTasks.every { it.options.encoding == "UTF-8" }
compileJava.javaCompiler.get().metadata.languageVersion == SpockBasePlugin.COMPILER_VERSION
}

private static Project createProject() {
def result = ProjectBuilder.builder()
.build()
result.plugins.apply("java-library")
result.plugins.apply("groovy")
result.plugins.apply(SpockBasePlugin)
return result
}
}
13 changes: 1 addition & 12 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -102,25 +102,14 @@ subprojects {
apply plugin: "java-library"
apply plugin: "groovy"
apply plugin: "jacoco"
apply plugin: "org.spockframework.base"

java {
toolchain {
languageVersion = JavaLanguageVersion.of(javaVersion)
}
}

tasks.withType(JavaCompile).configureEach {
if (it.name == 'compileJava') {
javaCompiler = javaToolchains.compilerFor {
languageVersion = JavaLanguageVersion.of(8)
}
}
options.encoding = 'UTF-8'
}
tasks.withType(GroovyCompile).configureEach {
options.encoding = 'UTF-8'
}

sourceSets.all { ss ->
for (gv in variants.findAll { variant <= it }) {
java {
Expand Down
4 changes: 2 additions & 2 deletions gradle/wrapper/gradle-wrapper.properties
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionSha256Sum=f397b287023acdba1e9f6fc5ea72d22dd63669d59ed4a289a29b1a76eee151c6
distributionUrl=https\://services.gradle.org/distributions/gradle-8.11.1-bin.zip
distributionSha256Sum=7a00d51fb93147819aab76024feece20b6b84e420694101f276be952e08bef03
distributionUrl=https\://services.gradle.org/distributions/gradle-8.12-bin.zip
networkTimeout=10000
validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME
Expand Down
3 changes: 1 addition & 2 deletions gradlew
Original file line number Diff line number Diff line change
Expand Up @@ -86,8 +86,7 @@ done
# shellcheck disable=SC2034
APP_BASE_NAME=${0##*/}
# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036)
APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s
' "$PWD" ) || exit
APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s\n' "$PWD" ) || exit

# Use the maximum available, or set MAX_FD != -1 to use that value.
MAX_FD=maximum
Expand Down
4 changes: 2 additions & 2 deletions spock-core/core.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -96,7 +96,7 @@ tasks.named("processResources") {
tasks.register("coreConsole", JavaExec) {
description = 'Start a groovy Console with Spock Core Classpath, useful for AST-Inspection'
mainClass = variant == 2.5 ? "groovy.ui.Console" : "groovy.console.ui.Console"
classpath(sourceSets.named("main").map {it.runtimeClasspath }, configurations.named("coreConsoleRuntime"))
classpath(sourceSets.named("main").map { it.runtimeClasspath }, configurations.named("coreConsoleRuntime"))
workingDir = file('build/console')
ignoreExitValue true
args file('CoreConsole.groovy').absolutePath
Expand All @@ -119,7 +119,7 @@ def osgiProperties = tasks.register('osgiProperties', WriteProperties) {
// that its metadata is valid. If the metadata is invalid this task will
// fail.
def verifyOSGi = tasks.register('verifyOSGi', Resolve) {
getBndrun().fileProvider(osgiProperties.map { it.outputFile })
getBndrun().set(osgiProperties.flatMap { it.destinationFile })
getOutputBndrun().set(layout.getBuildDirectory().file("resolvedOSGiProperties.bndrun"))
reportOptional = false
// By default bnd will use jars found in:
Expand Down
4 changes: 0 additions & 4 deletions spock-specs/specs.gradle
Original file line number Diff line number Diff line change
@@ -1,9 +1,5 @@
import org.spockframework.gradle.JacocoJavaagentProvider

plugins {
id 'org.spockframework.base'
}

ext.displayName = "Spock Framework - Specs for Core Module"

description = "Spock specifications for the Core Module. Yes, we eat our own dog food."
Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,13 @@
package org.spockframework.smoke.extension


import spock.lang.Isolated
import spock.timeout.BaseTimeoutExtensionSpecification

import java.time.Duration

import org.spockframework.runtime.SpockTimeoutError

@Isolated("The timings are quite tight and it can get flaky on weak machines if run in parallel.")
class GlobalTimeoutExtension extends BaseTimeoutExtensionSpecification {
def "applies timeout to features"() {
given:
Expand Down Expand Up @@ -151,7 +152,7 @@ class GlobalTimeoutExtension extends BaseTimeoutExtensionSpecification {

def "can exclude fixture methods from global timeout"() {
given:
enableGlobalTimeout(false, Duration.ofMillis(5))
enableGlobalTimeout(false, Duration.ofMillis(20))

when:
runner.runSpecBody("""
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,9 +19,10 @@ import spock.lang.*
import java.util.concurrent.TimeUnit
import org.spockframework.runtime.SpockTimeoutError

@Isolated("The test can get flaky on weak machines if run in parallel.")
class BlockingVariableSpec extends Specification {
def "variable is read after it is written"() {
def list = new BlockingVariable<List<String>>()
def list = new BlockingVariable<List<Integer>>()

when:
Thread.start {
Expand All @@ -35,7 +36,7 @@ class BlockingVariableSpec extends Specification {
}

def "variable is read before it is written"() {
def list = new BlockingVariable<List<String>>()
def list = new BlockingVariable<List<Integer>>()

when:
Thread.start {
Expand All @@ -49,7 +50,7 @@ class BlockingVariableSpec extends Specification {
}

def "read times out if no write occurs"() {
def list = new BlockingVariable<String>()
def list = new BlockingVariable<Integer>()

when:
list.get()
Expand Down
4 changes: 0 additions & 4 deletions spock-testkit/testkit.gradle
Original file line number Diff line number Diff line change
@@ -1,7 +1,3 @@
plugins {
id 'org.spockframework.base'
}

ext.displayName = "Spock Framework - Temp Specs for Core Module"

//configurations {
Expand Down

0 comments on commit 5999e3b

Please sign in to comment.