/* * Copyright (C) 2018 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. */ import java.io.PrintStream; // Results collector for VarHandle Unit tests public final class VarHandleUnitTestCollector { private final PrintStream out = System.out; private final boolean verbose = false; private int numberOfSuccesses; private int numberOfSkips; private int numberOfFailures; private int consecutiveResults = 0; private String current; private long startMillis; public void start(String testName) { out.append(testName) .append("..."); consecutiveResults = 0; current = testName; startMillis = System.currentTimeMillis(); } private void printStatus(String status) { out.print(status); if (verbose) { out.print('['); out.print(System.currentTimeMillis() - startMillis); out.print(']'); } out.println(); } public void skip() { numberOfSkips += 1; printStatus("SKIP"); consecutiveResults++; } public void success() { numberOfSuccesses += 1; printStatus("OK"); if (consecutiveResults++ > 1) { throw new AssertionError("Oops: " + consecutiveResults); } } public void fail(String errorMessage) { numberOfFailures += 1; printStatus("FAIL"); out.print(errorMessage); consecutiveResults++; } public void printSummary() { out.append(Integer.toString(numberOfSuccesses)) .append(" successes, ") .append(Integer.toString(numberOfSkips)) .append(" skips, ") .append(Integer.toString(numberOfFailures)) .append(" failures."); out.println(); } boolean failuresOccurred() { return numberOfFailures != 0; } }