• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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
3 // found in the LICENSE file.
4 
5 #ifndef BASE_TEST_TEST_TIMEOUTS_H_
6 #define BASE_TEST_TEST_TIMEOUTS_H_
7 
8 #include "base/basictypes.h"
9 
10 // Returns common timeouts to use in tests. Makes it possible to adjust
11 // the timeouts for different environments (like Valgrind).
12 class TestTimeouts {
13  public:
14   // Initializes the timeouts. Non thread-safe. Should be called exactly once
15   // by the test suite.
16   static void Initialize();
17 
18   // Timeout for actions that are expected to finish "almost instantly".
tiny_timeout_ms()19   static int tiny_timeout_ms() { return tiny_timeout_ms_; }
20 
21   // Timeout to wait for something to happen. If you are not sure
22   // which timeout to use, this is the one you want.
action_timeout_ms()23   static int action_timeout_ms() { return action_timeout_ms_; }
24 
25   // Timeout longer than the above, but still suitable to use
26   // multiple times in a single test. Use if the timeout above
27   // is not sufficient.
action_max_timeout_ms()28   static int action_max_timeout_ms() { return action_max_timeout_ms_; }
29 
30   // Timeout for a large test that may take a few minutes to run.
large_test_timeout_ms()31   static int large_test_timeout_ms() { return large_test_timeout_ms_; }
32 
33   // Timeout for a huge test (like running a layout test inside the browser).
34   // Do not use unless absolutely necessary - try to make the test smaller.
35   // Do not use multiple times in a single test.
huge_test_timeout_ms()36   static int huge_test_timeout_ms() { return huge_test_timeout_ms_; }
37 
38   // Timeout to wait for a process to terminate.
wait_for_terminate_timeout_ms()39   static int wait_for_terminate_timeout_ms() {
40     return wait_for_terminate_timeout_ms_;
41   }
42 
43   // Timeout to wait for a live operation to complete. Used by tests that access
44   // external services.
live_operation_timeout_ms()45   static int live_operation_timeout_ms() {
46     return live_operation_timeout_ms_;
47   }
48 
49  private:
50   static bool initialized_;
51 
52   static int tiny_timeout_ms_;
53   static int action_timeout_ms_;
54   static int action_max_timeout_ms_;
55   static int large_test_timeout_ms_;
56   static int huge_test_timeout_ms_;
57   static int wait_for_terminate_timeout_ms_;
58   static int live_operation_timeout_ms_;
59 
60   DISALLOW_IMPLICIT_CONSTRUCTORS(TestTimeouts);
61 };
62 
63 #endif  // BASE_TEST_TEST_TIMEOUTS_H_
64