summaryrefslogtreecommitdiff
path: root/src/partest
diff options
context:
space:
mode:
authorPhilipp Haller <hallerp@gmail.com>2008-04-07 16:34:10 +0000
committerPhilipp Haller <hallerp@gmail.com>2008-04-07 16:34:10 +0000
commitf6c4b03cb2f8d3dfe44a1a147ac698f232ad302c (patch)
tree4a34ee979dfa7c035da30c40352ad62edbe8dc50 /src/partest
parent9d37cdde4271f2e8016e369c90b2748616d87e49 (diff)
downloadscala-f6c4b03cb2f8d3dfe44a1a147ac698f232ad302c.tar.gz
scala-f6c4b03cb2f8d3dfe44a1a147ac698f232ad302c.tar.bz2
scala-f6c4b03cb2f8d3dfe44a1a147ac698f232ad302c.zip
Fixed issue that caused neg tests to succeed if...
Fixed issue that caused neg tests to succeed if no check file was present.
Diffstat (limited to 'src/partest')
-rw-r--r--src/partest/scala/tools/partest/nest/Worker.scala28
1 files changed, 27 insertions, 1 deletions
diff --git a/src/partest/scala/tools/partest/nest/Worker.scala b/src/partest/scala/tools/partest/nest/Worker.scala
index e59db11fd9..68ff696c6f 100644
--- a/src/partest/scala/tools/partest/nest/Worker.scala
+++ b/src/partest/scala/tools/partest/nest/Worker.scala
@@ -217,6 +217,17 @@ class Worker(val fileManager: FileManager) extends Actor {
}
}
+ def existsCheckFile(dir: File, fileBase: String, kind: String) = {
+ val checkFile = {
+ val chkFile = new File(dir, fileBase + ".check")
+ if (chkFile.isFile)
+ chkFile
+ else
+ new File(dir, fileBase + "-" + kind + ".check")
+ }
+ checkFile.exists && checkFile.canRead
+ }
+
def compareOutput(dir: File, fileBase: String, kind: String, logFile: File): String = {
// if check file exists, compare with log file
val checkFile = {
@@ -230,6 +241,16 @@ class Worker(val fileManager: FileManager) extends Actor {
else fileManager.compareFiles(logFile, checkFile)
}
+ def file2String(logFile: File) = {
+ val logReader = new BufferedReader(new FileReader(logFile))
+ val strWriter = new StringWriter
+ val logWriter = new PrintWriter(strWriter, true)
+ val logAppender = new StreamAppender(logReader, logWriter)
+ logAppender.run()
+ logReader.close()
+ strWriter.toString
+ }
+
/** Runs a list of tests.
*
* @param kind The test kind (pos, neg, run, etc.)
@@ -333,7 +354,12 @@ class Worker(val fileManager: FileManager) extends Actor {
} else { // compare log file to check file
val fileBase = basename(file.getName)
val dir = file.getParentFile
- diff = compareOutput(dir, fileBase, kind, logFile)
+ if (!existsCheckFile(dir, fileBase, kind)) {
+ // diff is contents of logFile
+ diff = file2String(logFile)
+ } else
+ diff = compareOutput(dir, fileBase, kind, logFile)
+
if (!diff.equals("")) {
NestUI.verbose("output differs from log file\n")
succeeded = false