From 4ee8c92beca64fad4f2bd0d329ee86330be6e267 Mon Sep 17 00:00:00 2001 From: Mark Harrah Date: Tue, 15 Dec 2009 19:11:59 -0500 Subject: [PATCH] * Fix issue with 'run' improperly interpreting System.exit(0) as a non-zero code * Updating more tests for 0.6.x --- src/main/scala/sbt/TrapExit.scala | 10 +++- .../dependency-management/classifier/test | 3 +- .../dependency-management/configurations/test | 46 ++++++++----------- .../exclude-transitive/test | 20 +++----- src/sbt-test/dependency-management/extra/test | 15 ++---- .../info/project/build/InfoTest.scala | 2 +- src/sbt-test/dependency-management/info/test | 22 ++++----- .../dependency-management/inherit-repo/test | 12 +---- .../project/build/src/TestProject.scala | 3 +- .../dependency-management/inline-default/test | 25 +++++----- .../project/build/src/UpdateTestProject.scala | 1 + .../inline-dependencies-a/test | 4 +- .../project/build/TestProject.scala | 6 +++ .../dependency-management/ivy-settings-a/test | 15 +----- .../project/build/src/UpdateTestProject.scala | 1 + .../dependency-management/ivy-settings-b/test | 10 +--- .../dependency-management/java.net/test | 3 +- .../dependency-management/module-confs/test | 17 ++----- .../parent-ivy-settings/test | 16 ++----- .../dependency-management/parent-publish/test | 3 +- .../dependency-management/provided/test | 27 ++--------- .../dependency-management/publish-local/test | 22 ++++----- .../dependency-management/sources/test | 5 +- src/sbt-test/dependency-management/url/test | 11 ++--- .../lazy-name/project/build/Test.scala | 6 +++ src/sbt-test/package/lazy-name/test | 17 +------ .../build/src/ManifestTestProject.scala | 5 +- src/sbt-test/package/manifest/test | 11 +---- .../build/src/ManifestTestProject.scala | 5 +- src/sbt-test/package/resources/test | 20 +++----- src/sbt-test/properties/multi-project-a/test | 7 ++- src/sbt-test/properties/multi-project-b/test | 7 ++- src/sbt-test/run/daemon-exit/test | 3 +- src/sbt-test/run/daemon/test | 1 - .../error/changes/RunExplicitFailure.scala | 4 ++ .../error/changes/RunExplicitSuccess.scala | 4 ++ src/sbt-test/run/error/test | 16 ++++--- src/sbt-test/run/spawn-exit/test | 3 +- src/sbt-test/run/spawn/test | 3 +- src/sbt-test/web/jsp/test | 9 +--- 40 files changed, 148 insertions(+), 272 deletions(-) create mode 100644 src/sbt-test/dependency-management/ivy-settings-a/project/build/TestProject.scala create mode 100644 src/sbt-test/package/lazy-name/project/build/Test.scala create mode 100644 src/sbt-test/run/error/changes/RunExplicitFailure.scala create mode 100644 src/sbt-test/run/error/changes/RunExplicitSuccess.scala diff --git a/src/main/scala/sbt/TrapExit.scala b/src/main/scala/sbt/TrapExit.scala index 7567f4b2f..5f00ed1b0 100644 --- a/src/main/scala/sbt/TrapExit.scala +++ b/src/main/scala/sbt/TrapExit.scala @@ -29,7 +29,15 @@ object TrapExit * the threads that were created by 'execute'.*/ val originalThreads = allThreads val code = new ExitCode - def executeMain = try { execute } catch { case x => code.set(1); throw x } + def executeMain = + try { execute } + catch + { + case e: TrapExitSecurityException => throw e + case x => + code.set(1) //exceptions in the main thread cause the exit code to be 1 + throw x + } val customThreadGroup = new ExitThreadGroup(new ExitHandler(Thread.getDefaultUncaughtExceptionHandler, originalThreads, code, log)) val executionThread = new Thread(customThreadGroup, "run-main") { override def run() { executeMain } } diff --git a/src/sbt-test/dependency-management/classifier/test b/src/sbt-test/dependency-management/classifier/test index 93397d07c..edf1fbdd5 100644 --- a/src/sbt-test/dependency-management/classifier/test +++ b/src/sbt-test/dependency-management/classifier/test @@ -1,2 +1 @@ -> update -[success] \ No newline at end of file +> update \ No newline at end of file diff --git a/src/sbt-test/dependency-management/configurations/test b/src/sbt-test/dependency-management/configurations/test index 841dc3bfe..4b534066b 100644 --- a/src/sbt-test/dependency-management/configurations/test +++ b/src/sbt-test/dependency-management/configurations/test @@ -1,48 +1,40 @@ # publish a jar with Published with managedStyle = ManagedStyle.Maven -$ copy-file changes/maven/Published.scala src/main/scala/Published.scala [success] +$ copy-file changes/maven/Published.scala src/main/scala/Published.scala > publish -[success] -$ delete src project lib_managed [success] +$ delete src project lib_managed # get and compile against each published jar with managedStyle = ManagedStyle.Maven -$ copy-file changes/maven/TestUse.scala project/build/TestUse.scala [success] -$ copy-file changes/maven/use.build.properties project/build.properties [success] -$ reload [success] -$ copy-file changes/maven/Use.scala src/main/scala/Use.scala [success] +$ copy-file changes/maven/TestUse.scala project/build/TestUse.scala +$ copy-file changes/maven/use.build.properties project/build.properties +> reload +$ copy-file changes/maven/Use.scala src/main/scala/Use.scala -> compile -[failure] +-> compile > update -[success] > compile -[success] -$ delete src project lib_managed repo [success] +$ delete src project lib_managed repo # publish a jar with PublishedIvy with managedStyle = ManagedStyle.Ivy -$ copy-file changes/ivy/publish.build.properties project/build.properties [success] -$ copy-file changes/ivy/TestPublish.scala project/build/TestPublish.scala [success] -$ reload [success] -$ copy-file changes/ivy/Published.scala src/main/scala/Published.scala [success] +$ copy-file changes/ivy/publish.build.properties project/build.properties +$ copy-file changes/ivy/TestPublish.scala project/build/TestPublish.scala +> reload +$ copy-file changes/ivy/Published.scala src/main/scala/Published.scala > publish -[success] # get and compile against each published jar with managedStyle = ManagedStyle.Ivy -$ delete src project lib_managed [success] -$ copy-file changes/ivy/TestUse.scala project/build/TestUse.scala [success] -$ copy-file changes/ivy/use.build.properties project/build.properties [success] -$ reload [success] -$ copy-file changes/ivy/Use.scala src/main/scala/Use.scala [success] +$ delete src project lib_managed +$ copy-file changes/ivy/TestUse.scala project/build/TestUse.scala +$ copy-file changes/ivy/use.build.properties project/build.properties +> reload +$ copy-file changes/ivy/Use.scala src/main/scala/Use.scala -> compile -[failure] +-> compile > update -[success] -> compile -[success] \ No newline at end of file +> compile \ No newline at end of file diff --git a/src/sbt-test/dependency-management/exclude-transitive/test b/src/sbt-test/dependency-management/exclude-transitive/test index d0b58e349..b55595ca6 100644 --- a/src/sbt-test/dependency-management/exclude-transitive/test +++ b/src/sbt-test/dependency-management/exclude-transitive/test @@ -1,29 +1,23 @@ # load the project definition with transitive dependencies enabled # and check that they are not downloaded -$ touch transitive [success] -$ reload [success] +$ touch transitive +$ reload > update -[success] > check-transitive -[success] -> check-intransitive -[failure] +-> check-intransitive # load the project definition with transitive dependencies disabled # and check that they are not downloaded $ delete ivy-cache -$ delete transitive [success] -$ reload [success] +$ delete transitive +> reload > update -[success] -> check-transitive -[failure] -> check-intransitive -[success] \ No newline at end of file +-> check-transitive +> check-intransitive \ No newline at end of file diff --git a/src/sbt-test/dependency-management/extra/test b/src/sbt-test/dependency-management/extra/test index e79c35cd1..1c3192000 100644 --- a/src/sbt-test/dependency-management/extra/test +++ b/src/sbt-test/dependency-management/extra/test @@ -1,21 +1,12 @@ > publish -[success] $ delete project/build/ -[success] $ copy-file changes/UseColor.scala project/build/UseColor.scala -[success] $ copy-file changes/blue color -[success] $ copy-file changes/build.properties project/build.properties -[success] -$ reload -[success] +> reload -> update -[failure] +-> update $ copy-file changes/red color -[success] -> update -[success] \ No newline at end of file +> update \ No newline at end of file diff --git a/src/sbt-test/dependency-management/info/project/build/InfoTest.scala b/src/sbt-test/dependency-management/info/project/build/InfoTest.scala index fc4759671..dc71382d8 100644 --- a/src/sbt-test/dependency-management/info/project/build/InfoTest.scala +++ b/src/sbt-test/dependency-management/info/project/build/InfoTest.scala @@ -7,7 +7,7 @@ class InfoTest(info: ProjectInfo) extends DefaultProject(info) override def ivyXML = if(customInfo) - ( + ( ScalaQuery is a type-safe database query API for Scala. diff --git a/src/sbt-test/dependency-management/info/test b/src/sbt-test/dependency-management/info/test index b301d8a4f..de451a8d3 100644 --- a/src/sbt-test/dependency-management/info/test +++ b/src/sbt-test/dependency-management/info/test @@ -1,13 +1,13 @@ -> update [success] -> check-download [success] -> deliver-local [success] -> check-info [success] +> update +> check-download +> deliver-local +> check-info -> clean [success] -> clean-lib [success] -$ touch info [success] +> clean +> clean-lib +$ touch info -> update [success] -> check-download [success] -> deliver-local [success] -> check-info [success] \ No newline at end of file +> update +> check-download +> deliver-local +> check-info \ No newline at end of file diff --git a/src/sbt-test/dependency-management/inherit-repo/test b/src/sbt-test/dependency-management/inherit-repo/test index 3c58ae287..5f48617db 100644 --- a/src/sbt-test/dependency-management/inherit-repo/test +++ b/src/sbt-test/dependency-management/inherit-repo/test @@ -1,31 +1,21 @@ # This should fail because the sub project declares a dependency that exists in an extra repository, which we haven't declared > update -[failure] # Copy the project definition with the extra repository declared in the parent and reload $ copy-file changes/CorrectProject.scala project/build/src/TestProject.scala -[success] $ reload -[success] # Try updating again, which should work because the repository declared in the parent should be inherited by the child > update -[success] # Copy the project definition with the extra repository declared in the child and parent and reload $ copy-file changes/CorrectProject2.scala project/build/src/TestProject.scala -[success] $ reload -[success] > update -[success] # Copy the project definition with the extra repository declared in the child and reload $ copy-file changes/CorrectProject3.scala project/build/src/TestProject.scala -[success] $ reload -[success] -> update -[success] \ No newline at end of file +> update \ No newline at end of file diff --git a/src/sbt-test/dependency-management/inline-default/project/build/src/TestProject.scala b/src/sbt-test/dependency-management/inline-default/project/build/src/TestProject.scala index 36c4016f4..ef14fd0cb 100644 --- a/src/sbt-test/dependency-management/inline-default/project/build/src/TestProject.scala +++ b/src/sbt-test/dependency-management/inline-default/project/build/src/TestProject.scala @@ -5,8 +5,7 @@ class TestProject(info: ProjectInfo) extends DefaultProject(info) val httpclient = "org.apache.httpcomponents" % "httpclient" % "4.0-beta2" intransitive() override def useDefaultConfigurations = - if("useDefaultConfigurations".asFile.exists) true - else false + if("useDefaultConfigurations".asFile.exists) true else false lazy val checkDefault = task { check(Configurations.Default) } lazy val checkCompile = task { check(Configurations.Compile) } diff --git a/src/sbt-test/dependency-management/inline-default/test b/src/sbt-test/dependency-management/inline-default/test index 025cf0969..e7c024b64 100644 --- a/src/sbt-test/dependency-management/inline-default/test +++ b/src/sbt-test/dependency-management/inline-default/test @@ -2,41 +2,40 @@ # Download jars. If successful, httpclient should be downloaded to the 'default' configuration > update -[success] + # The jar should exist in the 'default' configuration ... > check-default -[success] + # but not in the 'compile' configuration ... -> check-compile -[failure] +-> check-compile + # It should be present on the compile classpath > check-classpath -[success] + # reset test > clean-lib -[success] + # Indicate to the project definition that we now want useDefaultConfigurations = true $ touch useDefaultConfigurations -[success] + # Reload for change to take effect $ reload -[success] + ## Rerun test with useDefaultConfigurations=true # Download jars. If successful, httpclient should be downloaded to the 'compile' configuration > update -[success] + # The jar should not exist in the 'default' configuration ... -> check-default -[failure] +-> check-default + # It should exist in the 'compile' configuration > check-compile -[success] + # It should be present on the compile classpath > check-classpath -[success] \ No newline at end of file diff --git a/src/sbt-test/dependency-management/inline-dependencies-a/project/build/src/UpdateTestProject.scala b/src/sbt-test/dependency-management/inline-dependencies-a/project/build/src/UpdateTestProject.scala index 272ff3250..09885508b 100644 --- a/src/sbt-test/dependency-management/inline-dependencies-a/project/build/src/UpdateTestProject.scala +++ b/src/sbt-test/dependency-management/inline-dependencies-a/project/build/src/UpdateTestProject.scala @@ -5,4 +5,5 @@ class UpdateTestProject(info: ProjectInfo) extends DefaultProject(info) val sc = "org.scalacheck" % "scalacheck" % "1.5" def ivyCacheDirectory = outputPath / "ivy-cache" override def updateOptions = CacheDirectory(ivyCacheDirectory) :: super.updateOptions.toList + override def disableCrossPaths = true } \ No newline at end of file diff --git a/src/sbt-test/dependency-management/inline-dependencies-a/test b/src/sbt-test/dependency-management/inline-dependencies-a/test index 2110da54b..f63ec9192 100644 --- a/src/sbt-test/dependency-management/inline-dependencies-a/test +++ b/src/sbt-test/dependency-management/inline-dependencies-a/test @@ -1,5 +1,3 @@ > update -[success] -$ exists lib_managed/compile/scalacheck-1.5.jar -[success] \ No newline at end of file +$ exists lib_managed/compile/scalacheck-1.5.jar \ No newline at end of file diff --git a/src/sbt-test/dependency-management/ivy-settings-a/project/build/TestProject.scala b/src/sbt-test/dependency-management/ivy-settings-a/project/build/TestProject.scala new file mode 100644 index 000000000..f8cb6a639 --- /dev/null +++ b/src/sbt-test/dependency-management/ivy-settings-a/project/build/TestProject.scala @@ -0,0 +1,6 @@ +import sbt._ + +class TestProject(info: ProjectInfo) extends DefaultProject(info) +{ + override def disableCrossPaths = true +} \ No newline at end of file diff --git a/src/sbt-test/dependency-management/ivy-settings-a/test b/src/sbt-test/dependency-management/ivy-settings-a/test index 04e8dd8c9..48c7771b1 100644 --- a/src/sbt-test/dependency-management/ivy-settings-a/test +++ b/src/sbt-test/dependency-management/ivy-settings-a/test @@ -1,20 +1,9 @@ > update -[success] $ copy-file changes/scalacheck-ivy.xml ivy.xml -[success] - -> update -[failure] - +-> update $ absent lib_managed/default/scalacheck-1.5.jar -[success] $ copy-file changes/scala-tools-ivysettings.xml ivysettings.xml -[success] - > update -[success] - -$ exists lib_managed/default/scalacheck-1.5.jar -[success] \ No newline at end of file +$ exists lib_managed/default/scalacheck-1.5.jar \ No newline at end of file diff --git a/src/sbt-test/dependency-management/ivy-settings-b/project/build/src/UpdateTestProject.scala b/src/sbt-test/dependency-management/ivy-settings-b/project/build/src/UpdateTestProject.scala index 0f45f4a59..005f0cb62 100644 --- a/src/sbt-test/dependency-management/ivy-settings-b/project/build/src/UpdateTestProject.scala +++ b/src/sbt-test/dependency-management/ivy-settings-b/project/build/src/UpdateTestProject.scala @@ -3,4 +3,5 @@ import sbt._ class UpdateTestProject(info: ProjectInfo) extends DefaultProject(info) { val sc = "org.scalacheck" % "scalacheck" % "1.5" + override def disableCrossPaths = true } \ No newline at end of file diff --git a/src/sbt-test/dependency-management/ivy-settings-b/test b/src/sbt-test/dependency-management/ivy-settings-b/test index 90953e12e..bdbedd260 100644 --- a/src/sbt-test/dependency-management/ivy-settings-b/test +++ b/src/sbt-test/dependency-management/ivy-settings-b/test @@ -1,14 +1,6 @@ -> update -[error] - +-> update $ absent lib_managed/compile/scalacheck-1.5.jar -[success] $ copy-file changes/scala-tools-ivysettings.xml ivysettings.xml -[success] - > update -[success] - $ exists lib_managed/compile/scalacheck-1.5.jar -[success] diff --git a/src/sbt-test/dependency-management/java.net/test b/src/sbt-test/dependency-management/java.net/test index 93397d07c..edf1fbdd5 100644 --- a/src/sbt-test/dependency-management/java.net/test +++ b/src/sbt-test/dependency-management/java.net/test @@ -1,2 +1 @@ -> update -[success] \ No newline at end of file +> update \ No newline at end of file diff --git a/src/sbt-test/dependency-management/module-confs/test b/src/sbt-test/dependency-management/module-confs/test index 251e67e51..3c5aaf79b 100644 --- a/src/sbt-test/dependency-management/module-confs/test +++ b/src/sbt-test/dependency-management/module-confs/test @@ -1,25 +1,14 @@ > update -[success] > clean -[success] $ copy-file changes/WrongOrg.scala project/build/Test.scala -[success] $ reload -[success] -> update -[failure] +-> update $ copy-file changes/WrongVersion.scala project/build/Test.scala -[success] $ reload -[success] -> update -[failure] +-> update $ copy-file changes/WrongPattern.scala project/build/Test.scala -[success] $ reload -[success] -> update -[failure] +-> update diff --git a/src/sbt-test/dependency-management/parent-ivy-settings/test b/src/sbt-test/dependency-management/parent-ivy-settings/test index 86e43b4a1..22099a981 100644 --- a/src/sbt-test/dependency-management/parent-ivy-settings/test +++ b/src/sbt-test/dependency-management/parent-ivy-settings/test @@ -1,23 +1,13 @@ -> update -[failure] +-> update > clean-lib -[success] $ copy-file changes/ivysettings.xml sub/ivysettings.xml -[success] > update -[success] > clean-lib -[success] $ delete sub/ivysettings.xml -[success] -> update -[failure] +-> update > clean-lib -[success] $ copy-file changes/ivysettings.xml ivysettings.xml -[success] -> update -[success] \ No newline at end of file +> update \ No newline at end of file diff --git a/src/sbt-test/dependency-management/parent-publish/test b/src/sbt-test/dependency-management/parent-publish/test index 8c3241f84..262de7fc3 100644 --- a/src/sbt-test/dependency-management/parent-publish/test +++ b/src/sbt-test/dependency-management/parent-publish/test @@ -1,2 +1 @@ -> publish-local -[success] \ No newline at end of file +> publish-local \ No newline at end of file diff --git a/src/sbt-test/dependency-management/provided/test b/src/sbt-test/dependency-management/provided/test index 23adf7948..628240b5e 100644 --- a/src/sbt-test/dependency-management/provided/test +++ b/src/sbt-test/dependency-management/provided/test @@ -1,51 +1,30 @@ # verify that the classpaths are correct for when a dependency is in the provided configuration $ touch useProvided -[success] -$ reload -[success] +> reload > update -[success] > check-run -[success] > check-compile -[success] > check-provided -[success] > check-public -[success] > package -[success] - > check-war -[success] # verify that the classpaths are correct for when a dependency is in the compile configuration $ delete useProvided -[success] -$ reload -[success] +> reload > update -[success] > check-run -[success] > check-compile -[success] > check-provided -[success] > check-public -[success] # prepare-webapp is last modified based, so we need to force it to do work $ delete target -[success] > package -[success] - -> check-war -[success] \ No newline at end of file +> check-war \ No newline at end of file diff --git a/src/sbt-test/dependency-management/publish-local/test b/src/sbt-test/dependency-management/publish-local/test index ce87c08b9..c2dd386b7 100644 --- a/src/sbt-test/dependency-management/publish-local/test +++ b/src/sbt-test/dependency-management/publish-local/test @@ -1,20 +1,16 @@ > publish-local -[success] -> clean [success] -$ touch mavenStyle [success] -$ reload [success] +> clean +$ touch mavenStyle +> reload > publish-local -[success] -> clean [success] -$ touch sub/mavenStyle [success] -$ reload [success] +> clean +$ touch sub/mavenStyle +> reload > publish-local -[success] -> clean [success] -$ delete mavenStyle [success] -$ reload [success] +> clean +$ delete mavenStyle +> reload > publish-local -[success] \ No newline at end of file diff --git a/src/sbt-test/dependency-management/sources/test b/src/sbt-test/dependency-management/sources/test index 7739dd87c..b81a22c43 100644 --- a/src/sbt-test/dependency-management/sources/test +++ b/src/sbt-test/dependency-management/sources/test @@ -1,5 +1,2 @@ > update -[success] - -> check -[success] \ No newline at end of file +> check \ No newline at end of file diff --git a/src/sbt-test/dependency-management/url/test b/src/sbt-test/dependency-management/url/test index 20481d07b..7ceb7a895 100644 --- a/src/sbt-test/dependency-management/url/test +++ b/src/sbt-test/dependency-management/url/test @@ -1,12 +1,7 @@ -> check-in-test -[failure] -> check-in-compile -[failure] +-> check-in-test +-> check-in-compile > update -[success] > check-in-test -[success] -> check-in-compile -[failure] +-> check-in-compile diff --git a/src/sbt-test/package/lazy-name/project/build/Test.scala b/src/sbt-test/package/lazy-name/project/build/Test.scala new file mode 100644 index 000000000..7e621723c --- /dev/null +++ b/src/sbt-test/package/lazy-name/project/build/Test.scala @@ -0,0 +1,6 @@ +import sbt._ + +class Test(info: ProjectInfo) extends DefaultProject(info) +{ + override def disableCrossPaths = true +} \ No newline at end of file diff --git a/src/sbt-test/package/lazy-name/test b/src/sbt-test/package/lazy-name/test index 3b4b67352..97a9b3104 100755 --- a/src/sbt-test/package/lazy-name/test +++ b/src/sbt-test/package/lazy-name/test @@ -1,26 +1,11 @@ > package -[success] - $ exists "target/lazy-package-name-0.1.1.jar" -[success] - > clean -[success] > increment-version -[success] - > package -[success] - $ exists "target/lazy-package-name-0.1.2.jar" -[success] > increment-version -[success] - > package -[success] - -$ exists "target/lazy-package-name-0.1.3.jar" -[success] +$ exists "target/lazy-package-name-0.1.3.jar" \ No newline at end of file diff --git a/src/sbt-test/package/manifest/project/build/src/ManifestTestProject.scala b/src/sbt-test/package/manifest/project/build/src/ManifestTestProject.scala index 3cec27fde..a3b3387fe 100644 --- a/src/sbt-test/package/manifest/project/build/src/ManifestTestProject.scala +++ b/src/sbt-test/package/manifest/project/build/src/ManifestTestProject.scala @@ -2,15 +2,14 @@ import sbt._ class ManifestTestProject(info: ProjectInfo) extends DefaultProject(info) { - val scalaHome = system[String]("scala.home") override def mainClass = Some("jartest.Main") def manifestExtra = { import java.util.jar._ val mf = new Manifest - for(scalaH <- scalaHome.get) - mf.getMainAttributes.put(Attributes.Name.CLASS_PATH, scalaH + "/lib/scala-library.jar") + mf.getMainAttributes.put(Attributes.Name.CLASS_PATH, buildScalaInstance.libraryJar.getAbsolutePath) mf } override def packageOptions = JarManifest(manifestExtra) :: super.packageOptions.toList + override def disableCrossPaths = true } \ No newline at end of file diff --git a/src/sbt-test/package/manifest/test b/src/sbt-test/package/manifest/test index 61331f4fa..20c80ee3c 100644 --- a/src/sbt-test/package/manifest/test +++ b/src/sbt-test/package/manifest/test @@ -1,11 +1,4 @@ > package -[success] - -$ "exists" "./target/jar-manifest-test-0.2.jar" -[success] - +$ exists "./target/jar-manifest-test-0.2.jar" $ exec java -jar "./target/jar-manifest-test-0.2.jar" -[success] - -> run -[success] +> run \ No newline at end of file diff --git a/src/sbt-test/package/resources/project/build/src/ManifestTestProject.scala b/src/sbt-test/package/resources/project/build/src/ManifestTestProject.scala index 3cec27fde..a3b3387fe 100644 --- a/src/sbt-test/package/resources/project/build/src/ManifestTestProject.scala +++ b/src/sbt-test/package/resources/project/build/src/ManifestTestProject.scala @@ -2,15 +2,14 @@ import sbt._ class ManifestTestProject(info: ProjectInfo) extends DefaultProject(info) { - val scalaHome = system[String]("scala.home") override def mainClass = Some("jartest.Main") def manifestExtra = { import java.util.jar._ val mf = new Manifest - for(scalaH <- scalaHome.get) - mf.getMainAttributes.put(Attributes.Name.CLASS_PATH, scalaH + "/lib/scala-library.jar") + mf.getMainAttributes.put(Attributes.Name.CLASS_PATH, buildScalaInstance.libraryJar.getAbsolutePath) mf } override def packageOptions = JarManifest(manifestExtra) :: super.packageOptions.toList + override def disableCrossPaths = true } \ No newline at end of file diff --git a/src/sbt-test/package/resources/test b/src/sbt-test/package/resources/test index 3e4d841cb..aa29e4d8c 100644 --- a/src/sbt-test/package/resources/test +++ b/src/sbt-test/package/resources/test @@ -4,33 +4,27 @@ # This should fail because the Main object is in package jartest and the resource is directly # in src/main/resources -> run -[failure] +-> run > package -[success] # This should fail because sbt should include the resource in the jar but it won't have the right # directory structure -$ exec java -jar "./target/main-resources-test-0.1.jar" -[failure] +-$ exec java -jar "./target/main-resources-test-0.1.jar" # Give the resource the right directory structure -$ mkdir src/main/resources/jartest [success] -$ copy-file src/main/resources/main_resource_test src/main/resources/jartest/main_resource_test [success] -$ delete src/main/resources/main_resource_test [success] +$ mkdir src/main/resources/jartest +$ copy-file src/main/resources/main_resource_test src/main/resources/jartest/main_resource_test +$ delete src/main/resources/main_resource_test # This should succeed because sbt should put the resource on the runClasspath > run -[success] # This is necessary because package bases whether or not to run on last modified times, which don't have # high enough resolution to notice the above move of main_resource_test -> clean [success] +> clean > package -[success] # This should succeed because sbt should include the resource in the jar with the right directory structure -$ exec java -jar "./target/main-resources-test-0.1.jar" -[success] \ No newline at end of file +$ exec java -jar "./target/main-resources-test-0.1.jar" \ No newline at end of file diff --git a/src/sbt-test/properties/multi-project-a/test b/src/sbt-test/properties/multi-project-a/test index b21259178..4806c9649 100644 --- a/src/sbt-test/properties/multi-project-a/test +++ b/src/sbt-test/properties/multi-project-a/test @@ -1,5 +1,4 @@ +> project "Sub project A" +> get sbt.version $ absent a/project -[success] - -$ absent b/project -[success] \ No newline at end of file +$ absent b/project \ No newline at end of file diff --git a/src/sbt-test/properties/multi-project-b/test b/src/sbt-test/properties/multi-project-b/test index b21259178..4806c9649 100644 --- a/src/sbt-test/properties/multi-project-b/test +++ b/src/sbt-test/properties/multi-project-b/test @@ -1,5 +1,4 @@ +> project "Sub project A" +> get sbt.version $ absent a/project -[success] - -$ absent b/project -[success] \ No newline at end of file +$ absent b/project \ No newline at end of file diff --git a/src/sbt-test/run/daemon-exit/test b/src/sbt-test/run/daemon-exit/test index 57bd0350e..9e4c2371c 100644 --- a/src/sbt-test/run/daemon-exit/test +++ b/src/sbt-test/run/daemon-exit/test @@ -1,2 +1 @@ -> run -[success] +> run \ No newline at end of file diff --git a/src/sbt-test/run/daemon/test b/src/sbt-test/run/daemon/test index 57bd0350e..62ea636c1 100644 --- a/src/sbt-test/run/daemon/test +++ b/src/sbt-test/run/daemon/test @@ -1,2 +1 @@ > run -[success] diff --git a/src/sbt-test/run/error/changes/RunExplicitFailure.scala b/src/sbt-test/run/error/changes/RunExplicitFailure.scala new file mode 100644 index 000000000..b7e371d60 --- /dev/null +++ b/src/sbt-test/run/error/changes/RunExplicitFailure.scala @@ -0,0 +1,4 @@ +object Spawn +{ + def main(args: Array[String]) { System.exit(1); } +} \ No newline at end of file diff --git a/src/sbt-test/run/error/changes/RunExplicitSuccess.scala b/src/sbt-test/run/error/changes/RunExplicitSuccess.scala new file mode 100644 index 000000000..f02b5236c --- /dev/null +++ b/src/sbt-test/run/error/changes/RunExplicitSuccess.scala @@ -0,0 +1,4 @@ +object Spawn +{ + def main(args: Array[String]) { System.exit(0); } +} \ No newline at end of file diff --git a/src/sbt-test/run/error/test b/src/sbt-test/run/error/test index 8f7c86954..d3599f40d 100644 --- a/src/sbt-test/run/error/test +++ b/src/sbt-test/run/error/test @@ -1,16 +1,18 @@ $ copy-file changes/RunSuccess.scala src/main/scala/Run.scala -[success] > run -[success] # an exception in the main thread should be a nonzero exit code $ copy-file changes/RunFailureMain.scala src/main/scala/Run.scala -[success] -> run -[failure] +-> run # an exception in a non-main thread should still be exit code 0 $ copy-file changes/ThreadRunError.scala src/main/scala/Run.scala -[success] > run -[success] + +# explicitly calling System.exit(0) should succeed +$ copy-file changes/RunExplicitSuccess.scala src/main/scala/Run.scala +> run + +# explicitly calling System.exit(1) should fail the 'run' task +$ copy-file changes/RunExplicitFailure.scala src/main/scala/Run.scala +-> run \ No newline at end of file diff --git a/src/sbt-test/run/spawn-exit/test b/src/sbt-test/run/spawn-exit/test index 57bd0350e..9e4c2371c 100644 --- a/src/sbt-test/run/spawn-exit/test +++ b/src/sbt-test/run/spawn-exit/test @@ -1,2 +1 @@ -> run -[success] +> run \ No newline at end of file diff --git a/src/sbt-test/run/spawn/test b/src/sbt-test/run/spawn/test index 57bd0350e..9e4c2371c 100644 --- a/src/sbt-test/run/spawn/test +++ b/src/sbt-test/run/spawn/test @@ -1,2 +1 @@ -> run -[success] +> run \ No newline at end of file diff --git a/src/sbt-test/web/jsp/test b/src/sbt-test/web/jsp/test index f18db92d3..0ea28e8a8 100644 --- a/src/sbt-test/web/jsp/test +++ b/src/sbt-test/web/jsp/test @@ -1,11 +1,4 @@ > update -[success] - > jetty-run -[success] - > check-page -[success] - -> jetty-stop -[success] \ No newline at end of file +> jetty-stop \ No newline at end of file