Skip to content

Commit

Permalink
Merge pull request gradle#25909 Fix failing docs tests on Java 20
Browse files Browse the repository at this point in the history
This PR fixes several problems in DocsTest on Java 20:

- Upgrade `spotbugs-gradle-plugin`.
- Upgrade `groovy-all`
- Somehow there're some empty lines in `building-spring-boot-web-applications` sample output. Add a new normalizer to fix.

Co-authored-by: Bo Zhang <[email protected]>
  • Loading branch information
bot-gradle and blindpirate committed Jul 26, 2023
2 parents 2629602 + 95051d3 commit 3f17174
Show file tree
Hide file tree
Showing 10 changed files with 83 additions and 9 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@
import org.gradle.integtests.fixtures.logging.GradleWelcomeOutputNormalizer;
import org.gradle.integtests.fixtures.logging.NativeComponentReportOutputNormalizer;
import org.gradle.integtests.fixtures.logging.SampleOutputNormalizer;
import org.gradle.integtests.fixtures.logging.SpringBootWebAppTestOutputNormalizer;
import org.gradle.integtests.fixtures.logging.ToolchainDownloadOutputNormalizer;
import org.gradle.integtests.fixtures.logging.ZincScalaCompilerOutputNormalizer;
import org.gradle.integtests.fixtures.mirror.SetMirrorsSampleModifier;
Expand All @@ -47,7 +48,8 @@
ConfigurationCacheOutputNormalizer.class,
EmbeddedKotlinOutputNormalizer.class,
ZincScalaCompilerOutputNormalizer.class,
ToolchainDownloadOutputNormalizer.class
ToolchainDownloadOutputNormalizer.class,
SpringBootWebAppTestOutputNormalizer.class,
})
@SampleModifiers({
SetMirrorsSampleModifier.class,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ repositories {
}

dependencies {
implementation 'com.github.spotbugs.snom:spotbugs-gradle-plugin:5.0.12'
implementation 'com.github.spotbugs.snom:spotbugs-gradle-plugin:5.0.14'
testImplementation platform("org.spockframework:spock-bom:2.2-groovy-3.0")
testImplementation 'org.spockframework:spock-core'
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ repositories {
}

dependencies {
implementation("com.github.spotbugs.snom:spotbugs-gradle-plugin:5.0.12")
implementation("com.github.spotbugs.snom:spotbugs-gradle-plugin:5.0.14")
testImplementation("junit:junit:4.13")
}
// end::repositories-and-dependencies[]
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ repositories {
}

dependencies {
implementation 'com.github.spotbugs.snom:spotbugs-gradle-plugin:5.0.12'
implementation 'com.github.spotbugs.snom:spotbugs-gradle-plugin:5.0.14'
testImplementation platform("org.spockframework:spock-bom:2.2-groovy-3.0")
testImplementation 'org.spockframework:spock-core'
testRuntimeOnly 'org.junit.platform:junit-platform-launcher'
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ repositories {
}

dependencies {
implementation("com.github.spotbugs.snom:spotbugs-gradle-plugin:5.0.12")
implementation("com.github.spotbugs.snom:spotbugs-gradle-plugin:5.0.14")
testImplementation("junit:junit:4.13")
}
// end::repositories-and-dependencies[]
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ repositories {
}

dependencies {
implementation 'org.codehaus.groovy:groovy-all:3.0.13'
implementation 'org.codehaus.groovy:groovy-all:3.0.18'
}

publishing {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ repositories {
}

dependencies {
implementation("org.codehaus.groovy:groovy-all:3.0.13")
implementation("org.codehaus.groovy:groovy-all:3.0.18")
}

publishing {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,6 @@ repositories {
}

dependencies {
implementation 'com.github.spotbugs.snom:spotbugs-gradle-plugin:5.0.12'
implementation 'com.github.spotbugs.snom:spotbugs-gradle-plugin:5.0.14'
}
// end::repositories-and-dependencies[]
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,6 @@ repositories {
}

dependencies {
implementation("com.github.spotbugs.snom:spotbugs-gradle-plugin:5.0.12")
implementation("com.github.spotbugs.snom:spotbugs-gradle-plugin:5.0.14")
}
// end::repositories-and-dependencies[]
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
/*
* Copyright 2021 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

package org.gradle.integtests.fixtures.logging

import org.gradle.exemplar.executor.ExecutionMetadata
import org.gradle.exemplar.test.normalizer.OutputNormalizer

/**
* Removes extra empty lines from `spring-boot-web-application` sample output.
* Before:
* <pre>
> Task :app:compileJava
> Task :app:processResources
> Task :app:classes
> Task :app:compileTestJava
> Task :app:processTestResources NO-SOURCE
> Task :app:testClasses
> Task :app:test
BUILD SUCCESSFUL in 0s
4 actionable tasks: 4 executed
</pre>
*
* After:
<pre>
> Task :app:compileJava
> Task :app:processResources
> Task :app:classes
> Task :app:compileTestJava
> Task :app:processTestResources NO-SOURCE
> Task :app:testClasses
> Task :app:test
BUILD SUCCESSFUL in 0s
4 actionable tasks: 4 executed
</pre>
* */
class SpringBootWebAppTestOutputNormalizer implements OutputNormalizer {

@Override
String normalize(String output, ExecutionMetadata executionMetadata) {
return executionMetadata.tempSampleProjectDir.name.contains('building-spring-boot-web-applications')
? removeEmptyLinesBeforeBuildSuccessful(output)
: output
}

private static String removeEmptyLinesBeforeBuildSuccessful(String output) {
List<String> lines = output.readLines()
int buildSuccessfulLineIndex = lines.indexOf("BUILD SUCCESSFUL in 0s")
assert buildSuccessfulLineIndex != -1

List<String> normalized = lines.subList(0, buildSuccessfulLineIndex).grep { !it.isEmpty() } + "" + lines.subList(buildSuccessfulLineIndex, lines.size())
return normalized.join("\n")
}
}

0 comments on commit 3f17174

Please sign in to comment.