[P-unit-devel] SF.net SVN: p-unit: [254] trunk/punit/src/org/punit
Status: Beta
Brought to you by:
zhanghuangzhu
|
From: <zha...@us...> - 2007-11-27 12:54:35
|
Revision: 254
http://p-unit.svn.sourceforge.net/p-unit/?rev=254&view=rev
Author: zhanghuangzhu
Date: 2007-11-27 04:54:38 -0800 (Tue, 27 Nov 2007)
Log Message:
-----------
az: Added a Message hack, and refactored StreamLogger. Now p-unit is ready for Android!
Modified Paths:
--------------
trunk/punit/src/org/punit/message/Messages.java
trunk/punit/src/org/punit/reporter/stream/StreamLogger.java
trunk/punit/src/org/punit/reporter/stream/console/ConsoleLogger.java
trunk/punit/src/org/punit/reporter/stream/file/FileLogger.java
trunk/punit/src/org/punit/runner/AbstractRunner.java
trunk/punit/src/org/punit/util/ReporterUtil.java
Added Paths:
-----------
trunk/punit/src/org/punit/message/MessageStrings.java
trunk/punit/src/org/punit/method/runner/VanillaRunner.java
Added: trunk/punit/src/org/punit/message/MessageStrings.java
===================================================================
--- trunk/punit/src/org/punit/message/MessageStrings.java (rev 0)
+++ trunk/punit/src/org/punit/message/MessageStrings.java 2007-11-27 12:54:38 UTC (rev 254)
@@ -0,0 +1,30 @@
+package org.punit.message;
+
+public class MessageStrings {
+ public static String[][] DATA = new String[][] {
+ {"builder.01", "\\ should implement"},
+ {"logger.01", "Starting"},
+ {"logger.total", "total:"},
+ {"logger.failures","failures:"},
+ {"logger.green","GREEN"},
+ {"logger.red", "RED"},
+ {"logger.06", "TestSuite:"},
+ {"runner.01", "solo"},
+ {"runner.02", "solo.param"},
+ {"runner.03", "concurrent"},
+ {"runner.04", "concurrent.param"},
+ {"runner.arguments", "\\ arguments"},
+ {"watcher.bytes", "bytes"},
+ {"watcher.ms", "ms"},
+ {"watcher.memory", "Memory"},
+ {"watcher.time", "Time"},
+ {"reporter.01", "result"},
+ {"reporter.02", "overview"},
+ {"PDFRender.01", "PUnit result\n"},
+ {"PDFRender.02", "the open source performance benchmark framework\n"},
+ {"assert.expected", "Expected"},
+ {"assert.got", ", but got"},
+ {"assert.notsame", "Expected a different object:"},
+ };
+
+}
Property changes on: trunk/punit/src/org/punit/message/MessageStrings.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Modified: trunk/punit/src/org/punit/message/Messages.java
===================================================================
--- trunk/punit/src/org/punit/message/Messages.java 2007-11-19 05:22:16 UTC (rev 253)
+++ trunk/punit/src/org/punit/message/Messages.java 2007-11-27 12:54:38 UTC (rev 254)
@@ -5,17 +5,46 @@
public class Messages {
private static final String BUNDLE_NAME = "punit"; //$NON-NLS-1$
- private static final ResourceBundle RESOURCE_BUNDLE = ResourceBundle
- .getBundle(BUNDLE_NAME);
+ private static ResourceBundle RESOURCE_BUNDLE = null;
+ private static Hashtable MESSAGE_TABLE = null;
+
+ private static boolean isAndroid;
+
private Messages() {
}
+ static {
+ // TODO: The code is a temp quick hack for Android, and will be removed
+ // when Android supports i18n (which has been committed).
+ isAndroid = isAndroid();
+ if (isAndroid) {
+ initMessageTable();
+ } else {
+ RESOURCE_BUNDLE = ResourceBundle.getBundle(BUNDLE_NAME);
+ }
+ }
+
+ private static void initMessageTable() {
+ MESSAGE_TABLE = new Hashtable();
+ for (int i = 0; i < MessageStrings.DATA.length; ++i) {
+ MESSAGE_TABLE.put(MessageStrings.DATA[i][0],
+ MessageStrings.DATA[i][1]);
+ }
+ }
+
public static String getString(String key) {
+ if(isAndroid) {
+ return (String) MESSAGE_TABLE.get(key);
+ }
try {
return RESOURCE_BUNDLE.getString(key);
} catch (MissingResourceException e) {
return '!' + key + '!';
}
}
+
+ public static boolean isAndroid() {
+ return "Dalvik".equals(System.getProperty("java.vm.name"));
+ }
}
Added: trunk/punit/src/org/punit/method/runner/VanillaRunner.java
===================================================================
--- trunk/punit/src/org/punit/method/runner/VanillaRunner.java (rev 0)
+++ trunk/punit/src/org/punit/method/runner/VanillaRunner.java 2007-11-27 12:54:38 UTC (rev 254)
@@ -0,0 +1,70 @@
+/* (C) Copyright 2007, by Andrew Zhang */
+package org.punit.method.runner;
+
+import java.util.*;
+
+import org.punit.events.EventListener;
+import org.punit.method.builder.*;
+import org.punit.reporter.*;
+import org.punit.runner.*;
+import org.punit.suite.builder.*;
+
+public class VanillaRunner implements Runner {
+ private Runner _runner;
+
+ public VanillaRunner(Runner runner) {
+ _runner = runner;
+ }
+
+ public TestMethodBuilder methodBuilder() {
+ return _runner.methodBuilder();
+ }
+
+ public MethodRunner methodRunner() {
+ return _runner.methodRunner();
+ }
+
+ public RunnerProperties properties() {
+ return _runner.properties();
+ }
+
+ public void resultFolder(String folder) {
+ _runner.resultFolder(folder);
+ }
+
+ public String resultFolder() {
+ return _runner.resultFolder();
+ }
+
+ public int run(Class clazz) {
+ return _runner.run(clazz);
+ }
+
+ public int run(Class clazz, RunnerProperties properties) {
+ return _runner.run(clazz, properties);
+ }
+
+ public TestSuiteBuilder suiteBuilder() {
+ return _runner.suiteBuilder();
+ }
+
+ public TestResult testResult() {
+ return _runner.testResult();
+ }
+
+ public void addEventListener(EventListener listener) {
+ _runner.addEventListener(listener);
+ }
+
+ public List eventListeners() {
+ return _runner.eventListeners();
+ }
+
+ public void removeEventListener(EventListener listener) {
+ _runner.removeEventListener(listener);
+ }
+
+ public String punitName() {
+ return _runner.punitName();
+ }
+}
Property changes on: trunk/punit/src/org/punit/method/runner/VanillaRunner.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Modified: trunk/punit/src/org/punit/reporter/stream/StreamLogger.java
===================================================================
--- trunk/punit/src/org/punit/reporter/stream/StreamLogger.java 2007-11-19 05:22:16 UTC (rev 253)
+++ trunk/punit/src/org/punit/reporter/stream/StreamLogger.java 2007-11-27 12:54:38 UTC (rev 254)
@@ -2,7 +2,7 @@
package org.punit.reporter.stream;
-import java.io.PrintStream;
+import java.io.PrintWriter;
import java.lang.reflect.Method;
import java.util.Iterator;
import java.util.List;
@@ -21,10 +21,8 @@
public abstract class StreamLogger implements EventListener {
- protected transient PrintStream _outStream;
+ protected transient PrintWriter _writer;
- protected transient PrintStream _errStream;
-
protected transient TestResult _result;
public Level _level = Level.INFO;
@@ -32,11 +30,11 @@
private TimeWatcher _timeWatcher;
public StreamLogger() {
+
}
- public StreamLogger(PrintStream out, PrintStream err) {
- _outStream = out;
- _errStream = err;
+ public StreamLogger(PrintWriter writer) {
+ _writer = writer;
}
public void onRunnerStart(Class clazz, Runner runner) {
@@ -60,8 +58,13 @@
public void onRunnerEnd(Class clazz, Runner runner) {
logResult();
+ closeStream();
}
+ protected void closeStream() {
+ _writer.close();
+ }
+
public void logResult() {
stopTimeWatcher();
StringBuffer sb = new StringBuffer();
@@ -81,13 +84,13 @@
sb.append(") - "); //$NON-NLS-1$
sb.append(_timeWatcher.stringValue());
sb.append(ReporterUtil.LINE_SEPERATOR);
- logErr(sb.toString(), Level.SEVERE);
+ log(sb.toString(), Level.SEVERE);
TraverserUtil.traverse(failures.iterator(), new Traverser() {
int count = 0;
public void traverse(Object obj) {
- logErr(++count + ")", Level.SEVERE); //$NON-NLS-1$
+ log(++count + ")", Level.SEVERE); //$NON-NLS-1$
if(shouldLog(Level.SEVERE)) {
- ((Throwable) obj).printStackTrace(_errStream);
+ ((Throwable) obj).printStackTrace(_writer);
}
}
});
@@ -106,7 +109,7 @@
}
public void onClassStart(Object testInstance) {
- // logln(testInstance.getClass().getName(), Level.INFO);
+ logln(testInstance.getClass().getName(), Level.INFO);
}
public void onClassEnd(Object testInstance, Throwable t) {
@@ -145,17 +148,13 @@
log(sb.toString(), Level.INFO);
}
- public void setStream(PrintStream out, PrintStream err) {
- _outStream = out;
- _errStream = err;
+ public void setWriter(PrintWriter writer) {
+ _writer = writer;
}
- public PrintStream outPrintStream() {
- return _outStream;
- }
- public PrintStream errPrintStream() {
- return _errStream;
+ public PrintWriter writer() {
+ return _writer;
}
public void logln(Level level) {
@@ -167,14 +166,10 @@
}
public void log(String message, Level level) {
- log(_outStream, message, level);
+ log(_writer, message, level);
}
- public void logErr(String message, Level level) {
- log(_errStream, message, level);
- }
-
- private void log(PrintStream ps, String message, Level level) {
+ private void log(PrintWriter ps, String message, Level level) {
if (ps == null) {
return;
}
Modified: trunk/punit/src/org/punit/reporter/stream/console/ConsoleLogger.java
===================================================================
--- trunk/punit/src/org/punit/reporter/stream/console/ConsoleLogger.java 2007-11-19 05:22:16 UTC (rev 253)
+++ trunk/punit/src/org/punit/reporter/stream/console/ConsoleLogger.java 2007-11-27 12:54:38 UTC (rev 254)
@@ -2,6 +2,8 @@
package org.punit.reporter.stream.console;
+import java.io.PrintWriter;
+
import org.punit.reporter.stream.StreamLogger;
public class ConsoleLogger extends StreamLogger {
@@ -10,15 +12,18 @@
private void readObject(java.io.ObjectInputStream in)
throws java.io.IOException, ClassNotFoundException {
- _outStream = System.out;
- _errStream = System.err;
+ _writer = new PrintWriter(System.err);
}
public ConsoleLogger() {
- super(System.out, System.err);
+ super(new PrintWriter(System.err));
}
public boolean supportParentRunner() {
return false;
}
+
+ protected void closeStream() {
+
+ }
}
Modified: trunk/punit/src/org/punit/reporter/stream/file/FileLogger.java
===================================================================
--- trunk/punit/src/org/punit/reporter/stream/file/FileLogger.java 2007-11-19 05:22:16 UTC (rev 253)
+++ trunk/punit/src/org/punit/reporter/stream/file/FileLogger.java 2007-11-27 12:54:38 UTC (rev 254)
@@ -2,7 +2,7 @@
package org.punit.reporter.stream.file;
-import java.io.PrintStream;
+import java.io.PrintWriter;
import org.punit.reporter.stream.StreamLogger;
import org.punit.runner.Runner;
@@ -24,13 +24,14 @@
public void onRunnerStart(Class clazz, Runner runner) {
if(_fileName == null) {
+ ReporterUtil.initResultFolder(runner);
_fileName = ReporterUtil.defaultFileName(clazz, runner) + ".txt"; //$NON-NLS-1$
_fileName = ReporterUtil.generateFileName(_fileName, runner);
}
try {
- PrintStream ps = new PrintStream(_fileName);
- setStream(ps, ps);
+ PrintWriter ps = new PrintWriter(_fileName);
+ setWriter(ps);
} catch (Exception e) {
throw new IllegalStateException(e);
}
@@ -39,9 +40,11 @@
public void onRunnerEnd(Class clazz, Runner runner) {
super.onRunnerEnd(clazz, runner);
- _outStream.close();
}
+ public void close() {
+ _writer.close();
+ }
public boolean supportParentRunner() {
return false;
}
Modified: trunk/punit/src/org/punit/runner/AbstractRunner.java
===================================================================
--- trunk/punit/src/org/punit/runner/AbstractRunner.java 2007-11-19 05:22:16 UTC (rev 253)
+++ trunk/punit/src/org/punit/runner/AbstractRunner.java 2007-11-27 12:54:38 UTC (rev 254)
@@ -70,7 +70,6 @@
}
public int run(Class clazz) {
- initResultFolder();
onRunnerStart(clazz);
Object[] testClasses = _testSuiteBuiler.buildTestClasses(clazz);
runTestClasses(testClasses);
@@ -78,10 +77,6 @@
return _testResult.failures().size();
}
- private void initResultFolder() {
- new File(resultFolder()).mkdirs();
- }
-
public int run(Class clazz, RunnerProperties properties) {
setRunnerProperties(properties);
return run(clazz);
Modified: trunk/punit/src/org/punit/util/ReporterUtil.java
===================================================================
--- trunk/punit/src/org/punit/util/ReporterUtil.java 2007-11-19 05:22:16 UTC (rev 253)
+++ trunk/punit/src/org/punit/util/ReporterUtil.java 2007-11-27 12:54:38 UTC (rev 254)
@@ -1,3 +1,5 @@
+/* (C) Copyright 2007, by Andrew Zhang */
+
package org.punit.util;
import java.io.File;
@@ -7,7 +9,10 @@
import org.punit.runner.RunnerProperties;
public class ReporterUtil {
+
public final static String LINE_SEPERATOR;
+
+ private static boolean _isResultFolderCreated;
static {
LINE_SEPERATOR = System.getProperty("line.separator"); //$NON-NLS-1$
@@ -59,5 +64,13 @@
}
return sb.toString();
}
-
+
+ public static void initResultFolder(Runner runner) {
+ if(_isResultFolderCreated) {
+ return;
+ }
+ _isResultFolderCreated = true;
+ new File(runner.resultFolder()).mkdirs();
+ }
+
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|