summaryrefslogtreecommitdiffstats
path: root/test-runner/android/test/TestPrinter.java
diff options
context:
space:
mode:
authorThe Android Open Source Project <initial-contribution@android.com>2009-03-03 19:31:44 -0800
committerThe Android Open Source Project <initial-contribution@android.com>2009-03-03 19:31:44 -0800
commit9066cfe9886ac131c34d59ed0e2d287b0e3c0087 (patch)
treed88beb88001f2482911e3d28e43833b50e4b4e97 /test-runner/android/test/TestPrinter.java
parentd83a98f4ce9cfa908f5c54bbd70f03eec07e7553 (diff)
downloadframeworks_base-9066cfe9886ac131c34d59ed0e2d287b0e3c0087.zip
frameworks_base-9066cfe9886ac131c34d59ed0e2d287b0e3c0087.tar.gz
frameworks_base-9066cfe9886ac131c34d59ed0e2d287b0e3c0087.tar.bz2
auto import from //depot/cupcake/@135843
Diffstat (limited to 'test-runner/android/test/TestPrinter.java')
-rw-r--r--test-runner/android/test/TestPrinter.java112
1 files changed, 112 insertions, 0 deletions
diff --git a/test-runner/android/test/TestPrinter.java b/test-runner/android/test/TestPrinter.java
new file mode 100644
index 0000000..37bd721
--- /dev/null
+++ b/test-runner/android/test/TestPrinter.java
@@ -0,0 +1,112 @@
+/*
+ * Copyright (C) 2006 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package android.test;
+
+import android.util.Log;
+import junit.framework.Test;
+import junit.framework.TestListener;
+
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+
+/**
+ * Prints the test progress to stdout. Android includes a default
+ * implementation and calls these methods to print out test progress; you
+ * probably will not need to create or extend this class or call its methods manually.
+ * See the full {@link android.test} package description for information about
+ * getting test results.
+ *
+ * {@hide} Not needed for 1.0 SDK.
+ */
+public class TestPrinter implements TestRunner.Listener, TestListener {
+
+ private String mTag;
+ private boolean mOnlyFailures;
+ private Set<String> mFailedTests = new HashSet<String>();
+
+
+ public TestPrinter(String tag, boolean onlyFailures) {
+ mTag = tag;
+ mOnlyFailures = onlyFailures;
+ }
+
+ public void started(String className) {
+ if (!mOnlyFailures) {
+ Log.i(mTag, "started: " + className);
+ }
+ }
+
+ public void finished(String className) {
+ if (!mOnlyFailures) {
+ Log.i(mTag, "finished: " + className);
+ }
+ }
+
+ public void performance(String className,
+ long itemTimeNS, int iterations,
+ List<TestRunner.IntermediateTime> intermediates) {
+ Log.i(mTag, "perf: " + className + " = " + itemTimeNS + "ns/op (done "
+ + iterations + " times)");
+ if (intermediates != null && intermediates.size() > 0) {
+ int N = intermediates.size();
+ for (int i = 0; i < N; i++) {
+ TestRunner.IntermediateTime time = intermediates.get(i);
+ Log.i(mTag, " intermediate: " + time.name + " = "
+ + time.timeInNS + "ns");
+ }
+ }
+ }
+
+ public void passed(String className) {
+ if (!mOnlyFailures) {
+ Log.i(mTag, "passed: " + className);
+ }
+ }
+
+ public void failed(String className, Throwable exception) {
+ Log.i(mTag, "failed: " + className);
+ Log.i(mTag, "----- begin exception -----");
+ Log.i(mTag, "", exception);
+ Log.i(mTag, "----- end exception -----");
+ }
+
+ private void failed(Test test, Throwable t) {
+ mFailedTests.add(test.toString());
+ failed(test.toString(), t);
+ }
+
+ public void addError(Test test, Throwable t) {
+ failed(test, t);
+ }
+
+ public void addFailure(Test test, junit.framework.AssertionFailedError t) {
+ failed(test, t);
+ }
+
+ public void endTest(Test test) {
+ finished(test.toString());
+ if (!mFailedTests.contains(test.toString())) {
+ passed(test.toString());
+ }
+ mFailedTests.remove(test.toString());
+ }
+
+ public void startTest(Test test) {
+ started(test.toString());
+ }
+}