[gradle][plugin] Fix tests (#7384)

Tests running under Gradle 5.6.4 were breaking due to a change in
informational output. It's not clear when this was introduced, but it
looks like the upgrade to Gradle 5.6.4 may have stopped running tests
during builds.
This commit is contained in:
Jim Schubert 2020-09-09 23:42:33 -04:00 committed by GitHub
parent 4d8ac0e055
commit 1eb8c2991d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
7 changed files with 140 additions and 98 deletions

View File

@ -1,6 +1,5 @@
#Thu Jan 30 22:14:34 EST 2020
distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.4-all.zip
distributionBase=GRADLE_USER_HOME distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists distributionPath=wrapper/dists
zipStorePath=wrapper/dists distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.4-all.zip
zipStoreBase=GRADLE_USER_HOME zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists

View File

@ -1,5 +1,21 @@
#!/usr/bin/env sh #!/usr/bin/env sh
#
# Copyright 2015 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
#
# https://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.
#
############################################################################## ##############################################################################
## ##
## Gradle start up script for UN*X ## Gradle start up script for UN*X
@ -28,7 +44,7 @@ APP_NAME="Gradle"
APP_BASE_NAME=`basename "$0"` APP_BASE_NAME=`basename "$0"`
# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. # Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
DEFAULT_JVM_OPTS="" DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
# Use the maximum available, or set MAX_FD != -1 to use that value. # Use the maximum available, or set MAX_FD != -1 to use that value.
MAX_FD="maximum" MAX_FD="maximum"
@ -109,8 +125,8 @@ if $darwin; then
GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
fi fi
# For Cygwin, switch paths to Windows format before running java # For Cygwin or MSYS, switch paths to Windows format before running java
if $cygwin ; then if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then
APP_HOME=`cygpath --path --mixed "$APP_HOME"` APP_HOME=`cygpath --path --mixed "$APP_HOME"`
CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
JAVACMD=`cygpath --unix "$JAVACMD"` JAVACMD=`cygpath --unix "$JAVACMD"`

View File

@ -1,84 +1,100 @@
@if "%DEBUG%" == "" @echo off @rem
@rem ########################################################################## @rem Copyright 2015 the original author or authors.
@rem @rem
@rem Gradle startup script for Windows @rem Licensed under the Apache License, Version 2.0 (the "License");
@rem @rem you may not use this file except in compliance with the License.
@rem ########################################################################## @rem You may obtain a copy of the License at
@rem
@rem Set local scope for the variables with windows NT shell @rem https://www.apache.org/licenses/LICENSE-2.0
if "%OS%"=="Windows_NT" setlocal @rem
@rem Unless required by applicable law or agreed to in writing, software
set DIRNAME=%~dp0 @rem distributed under the License is distributed on an "AS IS" BASIS,
if "%DIRNAME%" == "" set DIRNAME=. @rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
set APP_BASE_NAME=%~n0 @rem See the License for the specific language governing permissions and
set APP_HOME=%DIRNAME% @rem limitations under the License.
@rem
@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
set DEFAULT_JVM_OPTS= @if "%DEBUG%" == "" @echo off
@rem ##########################################################################
@rem Find java.exe @rem
if defined JAVA_HOME goto findJavaFromJavaHome @rem Gradle startup script for Windows
@rem
set JAVA_EXE=java.exe @rem ##########################################################################
%JAVA_EXE% -version >NUL 2>&1
if "%ERRORLEVEL%" == "0" goto init @rem Set local scope for the variables with windows NT shell
if "%OS%"=="Windows_NT" setlocal
echo.
echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. set DIRNAME=%~dp0
echo. if "%DIRNAME%" == "" set DIRNAME=.
echo Please set the JAVA_HOME variable in your environment to match the set APP_BASE_NAME=%~n0
echo location of your Java installation. set APP_HOME=%DIRNAME%
goto fail @rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m"
:findJavaFromJavaHome
set JAVA_HOME=%JAVA_HOME:"=% @rem Find java.exe
set JAVA_EXE=%JAVA_HOME%/bin/java.exe if defined JAVA_HOME goto findJavaFromJavaHome
if exist "%JAVA_EXE%" goto init set JAVA_EXE=java.exe
%JAVA_EXE% -version >NUL 2>&1
echo. if "%ERRORLEVEL%" == "0" goto init
echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
echo. echo.
echo Please set the JAVA_HOME variable in your environment to match the echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
echo location of your Java installation. echo.
echo Please set the JAVA_HOME variable in your environment to match the
goto fail echo location of your Java installation.
:init goto fail
@rem Get command-line arguments, handling Windows variants
:findJavaFromJavaHome
if not "%OS%" == "Windows_NT" goto win9xME_args set JAVA_HOME=%JAVA_HOME:"=%
set JAVA_EXE=%JAVA_HOME%/bin/java.exe
:win9xME_args
@rem Slurp the command line arguments. if exist "%JAVA_EXE%" goto init
set CMD_LINE_ARGS=
set _SKIP=2 echo.
echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
:win9xME_args_slurp echo.
if "x%~1" == "x" goto execute echo Please set the JAVA_HOME variable in your environment to match the
echo location of your Java installation.
set CMD_LINE_ARGS=%*
goto fail
:execute
@rem Setup the command line :init
@rem Get command-line arguments, handling Windows variants
set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
if not "%OS%" == "Windows_NT" goto win9xME_args
@rem Execute Gradle
"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS% :win9xME_args
@rem Slurp the command line arguments.
:end set CMD_LINE_ARGS=
@rem End local scope for the variables with windows NT shell set _SKIP=2
if "%ERRORLEVEL%"=="0" goto mainEnd
:win9xME_args_slurp
:fail if "x%~1" == "x" goto execute
rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
rem the _cmd.exe /c_ return code! set CMD_LINE_ARGS=%*
if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
exit /b 1 :execute
@rem Setup the command line
:mainEnd
if "%OS%"=="Windows_NT" endlocal set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
:omega @rem Execute Gradle
"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
:end
@rem End local scope for the variables with windows NT shell
if "%ERRORLEVEL%"=="0" goto mainEnd
:fail
rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
rem the _cmd.exe /c_ return code!
if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
exit /b 1
:mainEnd
if "%OS%"=="Windows_NT" endlocal
:omega

View File

@ -94,6 +94,7 @@
<tasks> <tasks>
<!-- calls "clean assemble install" --> <!-- calls "clean assemble install" -->
<task>clean</task> <task>clean</task>
<task>check</task>
<task>assemble</task> <task>assemble</task>
<task>publishToMavenLocal</task> <task>publishToMavenLocal</task>
<task>publishPluginMavenPublicationToMavenLocal</task> <task>publishPluginMavenPublicationToMavenLocal</task>

View File

@ -5,6 +5,7 @@ import org.gradle.testkit.runner.TaskOutcome
import org.testng.annotations.Test import org.testng.annotations.Test
import java.io.File import java.io.File
import kotlin.test.assertEquals import kotlin.test.assertEquals
import kotlin.test.assertFalse
import kotlin.test.assertTrue import kotlin.test.assertTrue
class GenerateTaskDslTest : TestBase() { class GenerateTaskDslTest : TestBase() {
@ -78,17 +79,17 @@ class GenerateTaskDslTest : TestBase() {
// Act // Act
val resultFirstRun = GradleRunner.create() val resultFirstRun = GradleRunner.create()
.withProjectDir(temp) .withProjectDir(temp)
.withArguments("openApiGenerate") .withArguments("openApiGenerate", "--info")
.withPluginClasspath() .withPluginClasspath()
.build() .build()
val resultSecondRun = GradleRunner.create() val resultSecondRun = GradleRunner.create()
.withProjectDir(temp) .withProjectDir(temp)
.withArguments("openApiGenerate") .withArguments("openApiGenerate", "--info")
.withPluginClasspath() .withPluginClasspath()
.build() .build()
// Assert // Assert
assertTrue(resultFirstRun.output.contains("Task ':openApiGenerate' is not up-to-date"), "First run should not be up-to-date") assertFalse(resultFirstRun.output.contains("Task :openApiGenerate UP-TO-DATE"), "First run should not be up-to-date")
assertTrue(resultSecondRun.output.contains("Task :openApiGenerate UP-TO-DATE"), "Task of second run should be up-to-date") assertTrue(resultSecondRun.output.contains("Task :openApiGenerate UP-TO-DATE"), "Task of second run should be up-to-date")
} }
@ -103,7 +104,7 @@ class GenerateTaskDslTest : TestBase() {
// Act // Act
val resultFirstRun = GradleRunner.create() val resultFirstRun = GradleRunner.create()
.withProjectDir(temp) .withProjectDir(temp)
.withArguments("openApiGenerate", "--build-cache") .withArguments("openApiGenerate", "--build-cache", "--info")
.withPluginClasspath() .withPluginClasspath()
.build() .build()
@ -113,13 +114,22 @@ class GenerateTaskDslTest : TestBase() {
// re-run // re-run
val resultSecondRun = GradleRunner.create() val resultSecondRun = GradleRunner.create()
.withProjectDir(temp) .withProjectDir(temp)
.withArguments("openApiGenerate", "--build-cache") .withArguments("openApiGenerate", "--build-cache", "--info")
.withPluginClasspath() .withPluginClasspath()
.build() .build()
// re-run without deletes
val resultThirdRun = GradleRunner.create()
.withProjectDir(temp)
.withArguments("openApiGenerate", "--build-cache", "--info")
.withPluginClasspath()
.build()
// Assert // Assert
assertTrue(resultFirstRun.output.contains("Task ':openApiGenerate' is not up-to-date"), "First run should not be up-to-date") assertTrue(resultFirstRun.output.contains("No history is available."), "First run should not be up-to-date")
assertTrue(resultSecondRun.output.contains("Task :openApiGenerate FROM-CACHE"), "Task of second run should be from cache") assertFalse(resultSecondRun.output.contains("No history is available."), "Task of second run should be from cache")
assertTrue(resultSecondRun.output.contains("has been removed."), "Task of second run should detect cache changes for untracked files")
assertTrue(resultThirdRun.output.contains("Skipping task ':openApiGenerate' as it is up-to-date."), "Task of third run should not require rebuild")
} }
@Test @Test

View File

@ -32,7 +32,7 @@ class ValidateTaskDslTest : TestBase() {
.buildAndFail() .buildAndFail()
// Assert // Assert
assertTrue(result.output.contains("unable to read location `some_location`"), "Unexpected/no message presented to the user for a spec pointing to an invalid URI.") assertTrue(result.output.contains("some_location' specified for property 'inputSpec' does not exist"), "Unexpected/no message presented to the user for a spec pointing to an invalid URI.")
assertEquals(FAILED, result.task(":openApiValidate")?.outcome, assertEquals(FAILED, result.task(":openApiValidate")?.outcome,
"Expected a failed run, but found ${result.task(":openApiValidate")?.outcome}") "Expected a failed run, but found ${result.task(":openApiValidate")?.outcome}")
} }