From c11040c968d8761515d8e57db1872e1c889b3a06 Mon Sep 17 00:00:00 2001 From: Eugene Yokota Date: Sat, 28 Dec 2019 02:37:14 -0500 Subject: [PATCH 1/2] Fixes quoted arugment with whitespace Ref https://github.com/sbt/sbt/issues/5343 Fixes https://github.com/sbt/sbt/issues/5210 --- CONTRIBUTING.md | 15 +++++++++++++++ citest/build.sbt | 2 ++ citest/src/test/scala/HelloTest.scala | 7 +++++++ integration-test/src/test/scala/RunnerTest.scala | 6 ++++++ src/universal/bin/sbt.bat | 14 +++++++------- 5 files changed, 37 insertions(+), 7 deletions(-) create mode 100644 citest/src/test/scala/HelloTest.scala diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 499d2e429..dfb55c095 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -11,3 +11,18 @@ $ sbt -Dsbt.build.version=1.0.3 -Dsbt.build.offline=true > rpm:releaseAllStaged ``` +## Notes on batch + +### Testing if a variable is blank + +``` +if not defined _JAVACMD set _JAVACMD=java +``` + +### Testing if an argument %0 is blank + +``` +if "%~0" == "" goto echolist_end +``` + +The above would work in case `%0` contains either double quote (`"`) or whitespace. diff --git a/citest/build.sbt b/citest/build.sbt index 567f42ae1..c6f2f6ac5 100644 --- a/citest/build.sbt +++ b/citest/build.sbt @@ -5,6 +5,8 @@ lazy val root = (project in file(".")) .settings( scalaVersion := "2.12.4", name := "Hello", + libraryDependencies += "com.eed3si9n.verify" %% "verify" % "0.2.0" % Test, + testFrameworks += new TestFramework("verify.runner.Framework"), check := { val xs = IO.readLines(file("output.txt")).toVector diff --git a/citest/src/test/scala/HelloTest.scala b/citest/src/test/scala/HelloTest.scala new file mode 100644 index 000000000..863715d84 --- /dev/null +++ b/citest/src/test/scala/HelloTest.scala @@ -0,0 +1,7 @@ +import verify._ + +object HelloTest extends BasicTestSuite { + test("addition") { + assert(2 == 1 + 1) + } +} diff --git a/integration-test/src/test/scala/RunnerTest.scala b/integration-test/src/test/scala/RunnerTest.scala index 3fd609c69..0fd04878b 100755 --- a/integration-test/src/test/scala/RunnerTest.scala +++ b/integration-test/src/test/scala/RunnerTest.scala @@ -174,4 +174,10 @@ object SbtRunnerTest extends SimpleTestSuite with PowerAssertions { ) () } + + test("sbt \"testOnly *\"") { + val out = sbtProcess("testOnly *", "--no-colors", "-v").!!.linesIterator.toList + assert(out.contains[String]("[info] HelloTest")) + () + } } diff --git a/src/universal/bin/sbt.bat b/src/universal/bin/sbt.bat index d9a467801..105c9e7b2 100755 --- a/src/universal/bin/sbt.bat +++ b/src/universal/bin/sbt.bat @@ -118,7 +118,7 @@ if not defined _SBT_OPTS if defined default_sbt_opts set _SBT_OPTS=!default_sbt_ :args_loop shift -if [%0] EQU [] goto args_end +if "%~0" == "" goto args_end set g=%~0 rem make sure the sbt_args_debug gets set first incase any argument parsing uses :dlog @@ -369,7 +369,7 @@ if "%~0" == "--jvm-debug" set _jvm_debug_arg=true if defined _jvm_debug_arg ( set _jvm_debug_arg= - if [%1] NEQ [] ( + if not "%~1" == "" ( set /a JVM_DEBUG_PORT=%~1 2>nul >nul if !JVM_DEBUG_PORT! EQU 0 ( rem next argument wasn't a port, set a default and process next arg @@ -384,7 +384,7 @@ if "%~0" == "--java-home" set _java_home_arg=true if defined _java_home_arg ( set _java_home_arg= - if [%1] NEQ [] ( + if not "%~1" == "" ( if exist "%~1\bin\java.exe" ( set "_JAVACMD=%~1\bin\java.exe" set "JAVA_HOME=%~1" @@ -596,7 +596,7 @@ if defined sbt_args_verbose ( echo -cp echo "!sbt_jar!" echo xsbt.boot.Boot - if not [%~1] == [] ( call :echolist %* ) + if not "%~1" == "" ( call :echolist %* ) echo. ) @@ -610,8 +610,8 @@ rem fixes dealing with quotes after = args: -Dscala.ext.dirs="C:\Users\First Las rem call method is in first call of %0 shift -if [%0] EQU [] goto echolist_end -set "p=%0" +if "%~0" == "" goto echolist_end +set "p=%~0" if "%p:~0,2%" == "-D" ( rem special handling for -D since '=' gets parsed away @@ -791,7 +791,7 @@ if /I !JAVA_VERSION! GEQ 9 ( exit /B 0 :sync_preloaded -if [!init_sbt_version] == [] ( +if not defined init_sbt_version ( rem FIXME: better !init_sbt_version! detection FOR /F "tokens=* usebackq" %%F IN (`dir /b "!SBT_HOME!\lib\local-preloaded\org\scala-sbt\sbt" /B`) DO ( SET init_sbt_version=%%F From d2818865847339210bb9bdf85454f912ac536d6f Mon Sep 17 00:00:00 2001 From: Eugene Yokota Date: Sat, 4 Jan 2020 15:12:31 -0500 Subject: [PATCH 2/2] consolidate Travis CI build jobs --- .travis.yml | 19 ++++++------------- 1 file changed, 6 insertions(+), 13 deletions(-) diff --git a/.travis.yml b/.travis.yml index 20da207be..61df38bfb 100755 --- a/.travis.yml +++ b/.travis.yml @@ -48,21 +48,14 @@ matrix: - sbt -Dsbt.build.version=$SBT_VER universal:packageBin universal:stage integrationTest/test - cd citest && ./test.sh - - name: "build using JDK 8 test using JDK 8" - script: - - sbt -Dsbt.build.version=$SBT_VER universal:packageBin universal:stage integrationTest/test - - cd citest && ./test.sh - - - name: "build using JDK 8, test using OpenJDK 11" - script: - - sbt -Dsbt.build.version=$SBT_VER universal:packageBin universal:stage integrationTest/test - - $JABBA_HOME/bin/jabba install $TRAVIS_JDK11 && export JAVA_HOME="$JABBA_HOME/jdk/$TRAVIS_JDK11" && export PATH="$JAVA_HOME/bin:$PATH" - - java -Xmx32m -version - - cd citest && ./test.sh - - - name: "Linux package testing" + - name: "build using JDK 8 test using JDK 8 and JDK 11" script: - sbt -Dsbt.build.version=$SBT_VER rpm:packageBin debian:packageBin + - sbt -Dsbt.build.version=$SBT_VER universal:packageBin universal:stage integrationTest/test + - cd citest && ./test.sh + - $JABBA_HOME/bin/jabba install $TRAVIS_JDK11 && export JAVA_HOME="$JABBA_HOME/jdk/$TRAVIS_JDK11" && export PATH="$JAVA_HOME/bin:$PATH" + - java -Xmx32m -version + - ./test.sh addons: apt: packages: