summaryrefslogtreecommitdiff
path: root/src/partest
diff options
context:
space:
mode:
authorPhilipp Haller <hallerp@gmail.com>2008-10-15 21:26:38 +0000
committerPhilipp Haller <hallerp@gmail.com>2008-10-15 21:26:38 +0000
commit8a3bbb52a720df0864526f5817030aa1879a786a (patch)
treeccc2be550de83a59645b15ccae33dfa318d69824 /src/partest
parentacd4c9471dcccc1ba1e97d4e6f4f86323e52355f (diff)
downloadscala-8a3bbb52a720df0864526f5817030aa1879a786a.tar.gz
scala-8a3bbb52a720df0864526f5817030aa1879a786a.tar.bz2
scala-8a3bbb52a720df0864526f5817030aa1879a786a.zip
Improved error reporting when running external ...
Improved error reporting when running external programs such as javac.
Diffstat (limited to 'src/partest')
-rw-r--r--src/partest/scala/tools/partest/nest/Worker.scala16
1 files changed, 13 insertions, 3 deletions
diff --git a/src/partest/scala/tools/partest/nest/Worker.scala b/src/partest/scala/tools/partest/nest/Worker.scala
index 2e856b956e..c6462cacae 100644
--- a/src/partest/scala/tools/partest/nest/Worker.scala
+++ b/src/partest/scala/tools/partest/nest/Worker.scala
@@ -174,13 +174,16 @@ class Worker(val fileManager: FileManager) extends Actor {
" -classpath "+outDir+File.pathSeparator+CLASSPATH+
" "+files.mkString(" ")
- runCommand(cmd, output)
+ val exitCode = runCommand(cmd, output)
+ if (exitCode != 0) {
+ NestUI.failure("Running \"javac\" failed with exit code: "+exitCode+"\n")
+ }
}
/** Runs <code>command</code> redirecting standard out and
* error out to <code>output</code> file.
*/
- def runCommand(command: String, output: File) {
+ def runCommand(command: String, output: File): Int = {
NestUI.verbose("running command:\n"+command)
val proc = Runtime.getRuntime.exec(command)
val in = proc.getInputStream
@@ -195,6 +198,11 @@ class Worker(val fileManager: FileManager) extends Actor {
inApp.run()
async.join()
writer.close()
+ try {
+ proc.exitValue()
+ } catch {
+ case e: IllegalThreadStateException => 1
+ }
}
def execTest(outDir: File, logFile: File, fileBase: String) {
@@ -322,7 +330,9 @@ class Worker(val fileManager: FileManager) extends Actor {
script(logFile, outDir)
} catch {
case e: Exception =>
- e.printStackTrace
+ val writer = new PrintWriter(new FileWriter(logFile), true)
+ e.printStackTrace(writer)
+ writer.close()
succeeded = false
}