Upstream version 5.34.104.0
[platform/framework/web/crosswalk.git] / src / base / test / android / javatests / src / org / chromium / base / test / util / ScalableTimeout.java
1 // Copyright 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 package org.chromium.base.test.util;
6
7 /**
8  * Utility class for scaling various timeouts by a common factor.
9  * For example, to run tests under Valgrind, you might want the following:
10  *   adb shell "echo 20.0 > /data/local/tmp/chrome_timeout_scale"
11  */
12 public class ScalableTimeout {
13     private static Double sTimeoutScale = null;
14     private static final String PROPERTY_FILE = "/data/local/tmp/chrome_timeout_scale";
15
16     public static long scaleTimeout(long timeout) {
17         if (sTimeoutScale == null) {
18             try {
19                 char[] data = TestFileUtil.readUtf8File(PROPERTY_FILE, 32);
20                 sTimeoutScale = Double.parseDouble(new String(data));
21             } catch (Exception e) {
22                 // NumberFormatException, FileNotFoundException, IOException
23                 sTimeoutScale = 1.0;
24             }
25         }
26         return (long)(timeout * sTimeoutScale);
27     }
28 }