xref: /aosp_15_r20/external/libchrome/base/test/test_timeouts.h (revision 635a864187cb8b6c713ff48b7e790a6b21769273)
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