| Index: testing/android/junit/java/src/org/chromium/testing/local/GtestLogger.java
|
| diff --git a/testing/android/junit/java/src/org/chromium/testing/local/GtestLogger.java b/testing/android/junit/java/src/org/chromium/testing/local/GtestLogger.java
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..09723745cab6a726dd1b50b63ec49784cf3af412
|
| --- /dev/null
|
| +++ b/testing/android/junit/java/src/org/chromium/testing/local/GtestLogger.java
|
| @@ -0,0 +1,109 @@
|
| +// Copyright 2014 The Chromium Authors. All rights reserved.
|
| +// Use of this source code is governed by a BSD-style license that can be
|
| +// found in the LICENSE file.
|
| +
|
| +package org.chromium.testing.local;
|
| +
|
| +import org.junit.runner.Description;
|
| +import org.junit.runner.notification.Failure;
|
| +
|
| +import java.io.PrintStream;
|
| +import java.util.Set;
|
| +
|
| +/**
|
| + * Formats and logs test status information in googletest-style.
|
| + */
|
| +public class GtestLogger {
|
| +
|
| + private final PrintStream mOutputStream;
|
| +
|
| + public GtestLogger(PrintStream outputStream) {
|
| + mOutputStream = outputStream;
|
| + }
|
| +
|
| + /**
|
| + * Logs the start of an individual test.
|
| + */
|
| + public void testStarted(Description test) {
|
| + mOutputStream.format("[ RUN ] %s.%s", test.getClassName(), test.getMethodName());
|
| + mOutputStream.println();
|
| + }
|
| +
|
| + /**
|
| + * Logs a test failure.
|
| + */
|
| + public void testFailed(Failure f) {
|
| + if (f.getException() != null) {
|
| + f.getException().printStackTrace(mOutputStream);
|
| + }
|
| + }
|
| +
|
| + /**
|
| + * Logs the end of an individual test.
|
| + */
|
| + public void testFinished(Description test, boolean passed, long elapsedTimeMillis) {
|
| + if (passed) {
|
| + mOutputStream.format("[ OK ] %s.%s (%d ms)",
|
| + test.getClassName(), test.getMethodName(), elapsedTimeMillis);
|
| + } else {
|
| + mOutputStream.format("[ FAILED ] %s.%s (%d ms)",
|
| + test.getClassName(), test.getMethodName(), elapsedTimeMillis);
|
| + }
|
| + mOutputStream.println();
|
| + }
|
| +
|
| + /**
|
| + * Logs the start of a test case.
|
| + */
|
| + public void testCaseStarted(Description test, int testCount) {
|
| + mOutputStream.format("[----------] Run %d test cases from %s", testCount,
|
| + test.getClassName());
|
| + mOutputStream.println();
|
| + }
|
| +
|
| + /**
|
| + * Logs the end of a test case.
|
| + */
|
| + public void testCaseFinished(Description test, int testCount,
|
| + long elapsedTimeMillis) {
|
| + mOutputStream.format("[----------] Run %d test cases from %s (%d ms)",
|
| + testCount, test.getClassName(), elapsedTimeMillis);
|
| + mOutputStream.println();
|
| + mOutputStream.println();
|
| + }
|
| +
|
| + /**
|
| + * Logs the start of a test run.
|
| + */
|
| + public void testRunStarted(int testCount) {
|
| + mOutputStream.format("[==========] Running %d tests.", testCount);
|
| + mOutputStream.println();
|
| + mOutputStream.println("[----------] Global test environment set-up.");
|
| + mOutputStream.println();
|
| + }
|
| +
|
| + /**
|
| + * Logs the end of a test run.
|
| + */
|
| + public void testRunFinished(int passedTestCount, Set<Description> failedTests,
|
| + long elapsedTimeMillis) {
|
| + int totalTestCount = passedTestCount + failedTests.size();
|
| + mOutputStream.println("[----------] Global test environment tear-down.");
|
| + mOutputStream.format("[==========] %d tests ran. (%d ms total)",
|
| + totalTestCount, elapsedTimeMillis);
|
| + mOutputStream.println();
|
| + mOutputStream.format("[ PASSED ] %d tests.", passedTestCount);
|
| + mOutputStream.println();
|
| + if (!failedTests.isEmpty()) {
|
| + mOutputStream.format("[ FAILED ] %d tests.", failedTests.size());
|
| + mOutputStream.println();
|
| + for (Description d : failedTests) {
|
| + mOutputStream.format("[ FAILED ] %s.%s", d.getClassName(), d.getMethodName());
|
| + mOutputStream.println();
|
| + }
|
| + mOutputStream.println();
|
| + }
|
| + }
|
| +
|
| +}
|
| +
|
|
|