OLD | NEW |
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef BASE_TEST_TEST_TIMEOUTS_H_ | 5 #ifndef BASE_TEST_TEST_TIMEOUTS_H_ |
6 #define BASE_TEST_TEST_TIMEOUTS_H_ | 6 #define BASE_TEST_TEST_TIMEOUTS_H_ |
7 | 7 |
8 #include "base/basictypes.h" | 8 #include "base/basictypes.h" |
9 #include "base/logging.h" | 9 #include "base/logging.h" |
| 10 #include "base/time.h" |
10 | 11 |
11 // Returns common timeouts to use in tests. Makes it possible to adjust | 12 // Returns common timeouts to use in tests. Makes it possible to adjust |
12 // the timeouts for different environments (like Valgrind). | 13 // the timeouts for different environments (like Valgrind). |
13 class TestTimeouts { | 14 class TestTimeouts { |
14 public: | 15 public: |
15 // Initializes the timeouts. Non thread-safe. Should be called exactly once | 16 // Initializes the timeouts. Non thread-safe. Should be called exactly once |
16 // by the test suite. | 17 // by the test suite. |
17 static void Initialize(); | 18 static void Initialize(); |
18 | 19 |
19 // Timeout for actions that are expected to finish "almost instantly". | 20 // Timeout for actions that are expected to finish "almost instantly". |
(...skipping 16 matching lines...) Expand all Loading... |
36 DCHECK(initialized_); | 37 DCHECK(initialized_); |
37 return action_max_timeout_ms_; | 38 return action_max_timeout_ms_; |
38 } | 39 } |
39 | 40 |
40 // Timeout for a large test that may take a few minutes to run. | 41 // Timeout for a large test that may take a few minutes to run. |
41 static int large_test_timeout_ms() { | 42 static int large_test_timeout_ms() { |
42 DCHECK(initialized_); | 43 DCHECK(initialized_); |
43 return large_test_timeout_ms_; | 44 return large_test_timeout_ms_; |
44 } | 45 } |
45 | 46 |
| 47 // Timeout for actions that are expected to finish "almost instantly". |
| 48 static base::TimeDelta tiny_timeout() { |
| 49 DCHECK(initialized_); |
| 50 return base::TimeDelta::FromMilliseconds(tiny_timeout_ms_); |
| 51 } |
| 52 |
| 53 // Timeout to wait for something to happen. If you are not sure |
| 54 // which timeout to use, this is the one you want. |
| 55 static base::TimeDelta action_timeout() { |
| 56 DCHECK(initialized_); |
| 57 return base::TimeDelta::FromMilliseconds(action_timeout_ms_); |
| 58 } |
| 59 |
| 60 // Timeout longer than the above, but still suitable to use |
| 61 // multiple times in a single test. Use if the timeout above |
| 62 // is not sufficient. |
| 63 static base::TimeDelta action_max_timeout() { |
| 64 DCHECK(initialized_); |
| 65 return base::TimeDelta::FromMilliseconds(action_max_timeout_ms_); |
| 66 } |
| 67 |
| 68 // Timeout for a large test that may take a few minutes to run. |
| 69 static base::TimeDelta large_test_timeout() { |
| 70 DCHECK(initialized_); |
| 71 return base::TimeDelta::FromMilliseconds(large_test_timeout_ms_); |
| 72 } |
| 73 |
46 private: | 74 private: |
47 static bool initialized_; | 75 static bool initialized_; |
48 | 76 |
49 static int tiny_timeout_ms_; | 77 static int tiny_timeout_ms_; |
50 static int action_timeout_ms_; | 78 static int action_timeout_ms_; |
51 static int action_max_timeout_ms_; | 79 static int action_max_timeout_ms_; |
52 static int large_test_timeout_ms_; | 80 static int large_test_timeout_ms_; |
53 | 81 |
54 DISALLOW_IMPLICIT_CONSTRUCTORS(TestTimeouts); | 82 DISALLOW_IMPLICIT_CONSTRUCTORS(TestTimeouts); |
55 }; | 83 }; |
56 | 84 |
57 #endif // BASE_TEST_TEST_TIMEOUTS_H_ | 85 #endif // BASE_TEST_TEST_TIMEOUTS_H_ |
OLD | NEW |