| // Copyright 2012 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.base.test.util; |
| |
| /** |
| * Utility class for scaling various timeouts by a common factor. |
| * For example, to run tests under Valgrind, you might want the following: |
| * adb shell "echo 20.0 > /data/local/tmp/chrome_timeout_scale" |
| */ |
| public class ScalableTimeout { |
| private static Double sTimeoutScale = null; |
| private static final String PROPERTY_FILE = "/data/local/tmp/chrome_timeout_scale"; |
| |
| public static long scaleTimeout(long timeout) { |
| if (sTimeoutScale == null) { |
| try { |
| char[] data = TestFileUtil.readUtf8File(PROPERTY_FILE, 32); |
| sTimeoutScale = Double.parseDouble(new String(data)); |
| } catch (Exception e) { |
| // NumberFormatException, FileNotFoundException, IOException |
| sTimeoutScale = 1.0; |
| } |
| } |
| return (long)(timeout * sTimeoutScale); |
| } |
| } |