ElapsedTimePrinter.java revision 1870:4aa2e64eff30
1326324Sbrooks/* 2244401Sbrooks * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved. 3241236Sbrooks * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4241236Sbrooks * 5241236Sbrooks * This code is free software; you can redistribute it and/or modify it 6241236Sbrooks * under the terms of the GNU General Public License version 2 only, as 7241236Sbrooks * published by the Free Software Foundation. 8241236Sbrooks * 9241236Sbrooks * This code is distributed in the hope that it will be useful, but WITHOUT 10241236Sbrooks * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 11241236Sbrooks * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 12241236Sbrooks * version 2 for more details (a copy is included in the LICENSE file that 13241236Sbrooks * accompanied this code). 14241236Sbrooks * 15241236Sbrooks * You should have received a copy of the GNU General Public License version 16241236Sbrooks * 2 along with this work; if not, write to the Free Software Foundation, 17241236Sbrooks * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 18241236Sbrooks * 19241236Sbrooks * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 20241236Sbrooks * or visit www.oracle.com if you need additional information or have any 21241236Sbrooks * questions. 22241236Sbrooks */ 23241236Sbrooks 24241236Sbrookspackage jdk.test.failurehandler; 25241236Sbrooks 26241236Sbrooksimport java.io.PrintWriter; 27241236Sbrooksimport java.util.concurrent.TimeUnit; 28241236Sbrooks 29241236Sbrookspublic class ElapsedTimePrinter implements AutoCloseable { 30241236Sbrooks private final String name; 31241236Sbrooks private final PrintWriter out; 32241236Sbrooks private final Stopwatch stopwatch; 33241236Sbrooks 34241236Sbrooks public ElapsedTimePrinter(Stopwatch stopwatch, String name, 35241236Sbrooks PrintWriter out) { 36241236Sbrooks this.stopwatch = stopwatch; 37241236Sbrooks this.name = name; 38241236Sbrooks this.out = out; 39241236Sbrooks stopwatch.start(); 40241236Sbrooks } 41241236Sbrooks 42241236Sbrooks @Override 43244230Sbrooks public void close() { 44244230Sbrooks stopwatch.stop(); 45241236Sbrooks out.printf("%s took %d s%n", name, 46241236Sbrooks TimeUnit.NANOSECONDS.toSeconds(stopwatch.getElapsedTimeNs())); 47241236Sbrooks } 48241236Sbrooks} 49241236Sbrooks