1*635a8641SAndroid Build Coastguard Worker // Copyright (c) 2012 The Chromium Authors. All rights reserved. 2*635a8641SAndroid Build Coastguard Worker // Use of this source code is governed by a BSD-style license that can be 3*635a8641SAndroid Build Coastguard Worker // found in the LICENSE file. 4*635a8641SAndroid Build Coastguard Worker 5*635a8641SAndroid Build Coastguard Worker #ifndef BASE_TEST_TEST_TIMEOUTS_H_ 6*635a8641SAndroid Build Coastguard Worker #define BASE_TEST_TEST_TIMEOUTS_H_ 7*635a8641SAndroid Build Coastguard Worker 8*635a8641SAndroid Build Coastguard Worker #include "base/logging.h" 9*635a8641SAndroid Build Coastguard Worker #include "base/macros.h" 10*635a8641SAndroid Build Coastguard Worker #include "base/time/time.h" 11*635a8641SAndroid Build Coastguard Worker 12*635a8641SAndroid Build Coastguard Worker // Returns common timeouts to use in tests. Makes it possible to adjust 13*635a8641SAndroid Build Coastguard Worker // the timeouts for different environments (like TSan). 14*635a8641SAndroid Build Coastguard Worker class TestTimeouts { 15*635a8641SAndroid Build Coastguard Worker public: 16*635a8641SAndroid Build Coastguard Worker // Initializes the timeouts. Non thread-safe. Should be called exactly once 17*635a8641SAndroid Build Coastguard Worker // by the test suite. 18*635a8641SAndroid Build Coastguard Worker static void Initialize(); 19*635a8641SAndroid Build Coastguard Worker 20*635a8641SAndroid Build Coastguard Worker // Timeout for actions that are expected to finish "almost instantly". This 21*635a8641SAndroid Build Coastguard Worker // is used in various tests to post delayed tasks and usually functions more 22*635a8641SAndroid Build Coastguard Worker // like a delay value than a timeout. tiny_timeout()23*635a8641SAndroid Build Coastguard Worker static base::TimeDelta tiny_timeout() { 24*635a8641SAndroid Build Coastguard Worker DCHECK(initialized_); 25*635a8641SAndroid Build Coastguard Worker return base::TimeDelta::FromMilliseconds(tiny_timeout_ms_); 26*635a8641SAndroid Build Coastguard Worker } 27*635a8641SAndroid Build Coastguard Worker 28*635a8641SAndroid Build Coastguard Worker // Timeout to wait for something to happen. If you are not sure 29*635a8641SAndroid Build Coastguard Worker // which timeout to use, this is the one you want. action_timeout()30*635a8641SAndroid Build Coastguard Worker static base::TimeDelta action_timeout() { 31*635a8641SAndroid Build Coastguard Worker DCHECK(initialized_); 32*635a8641SAndroid Build Coastguard Worker return base::TimeDelta::FromMilliseconds(action_timeout_ms_); 33*635a8641SAndroid Build Coastguard Worker } 34*635a8641SAndroid Build Coastguard Worker 35*635a8641SAndroid Build Coastguard Worker // Timeout longer than the above, but still suitable to use 36*635a8641SAndroid Build Coastguard Worker // multiple times in a single test. Use if the timeout above 37*635a8641SAndroid Build Coastguard Worker // is not sufficient. action_max_timeout()38*635a8641SAndroid Build Coastguard Worker static base::TimeDelta action_max_timeout() { 39*635a8641SAndroid Build Coastguard Worker DCHECK(initialized_); 40*635a8641SAndroid Build Coastguard Worker return base::TimeDelta::FromMilliseconds(action_max_timeout_ms_); 41*635a8641SAndroid Build Coastguard Worker } 42*635a8641SAndroid Build Coastguard Worker 43*635a8641SAndroid Build Coastguard Worker // Timeout for a single test launched used built-in test launcher. 44*635a8641SAndroid Build Coastguard Worker // Do not use outside of the test launcher. test_launcher_timeout()45*635a8641SAndroid Build Coastguard Worker static base::TimeDelta test_launcher_timeout() { 46*635a8641SAndroid Build Coastguard Worker DCHECK(initialized_); 47*635a8641SAndroid Build Coastguard Worker return base::TimeDelta::FromMilliseconds(test_launcher_timeout_ms_); 48*635a8641SAndroid Build Coastguard Worker } 49*635a8641SAndroid Build Coastguard Worker 50*635a8641SAndroid Build Coastguard Worker private: 51*635a8641SAndroid Build Coastguard Worker static bool initialized_; 52*635a8641SAndroid Build Coastguard Worker 53*635a8641SAndroid Build Coastguard Worker static int tiny_timeout_ms_; 54*635a8641SAndroid Build Coastguard Worker static int action_timeout_ms_; 55*635a8641SAndroid Build Coastguard Worker static int action_max_timeout_ms_; 56*635a8641SAndroid Build Coastguard Worker static int test_launcher_timeout_ms_; 57*635a8641SAndroid Build Coastguard Worker 58*635a8641SAndroid Build Coastguard Worker DISALLOW_IMPLICIT_CONSTRUCTORS(TestTimeouts); 59*635a8641SAndroid Build Coastguard Worker }; 60*635a8641SAndroid Build Coastguard Worker 61*635a8641SAndroid Build Coastguard Worker #endif // BASE_TEST_TEST_TIMEOUTS_H_ 62