summaryrefslogtreecommitdiffstats
path: root/testing/multiprocess_func_list.h
diff options
context:
space:
mode:
authorjcivelli@chromium.org <jcivelli@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-06-27 01:12:24 +0000
committerjcivelli@chromium.org <jcivelli@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-06-27 01:12:24 +0000
commit97c652b98f92e060e3ed3a11d2c808d85a7e1c1c (patch)
tree869d2ba677905ea0cba67f4ee311d15846f97790 /testing/multiprocess_func_list.h
parent31ad4a24b884526a51f81efa556c019dcc27657d (diff)
downloadchromium_src-97c652b98f92e060e3ed3a11d2c808d85a7e1c1c.zip
chromium_src-97c652b98f92e060e3ed3a11d2c808d85a7e1c1c.tar.gz
chromium_src-97c652b98f92e060e3ed3a11d2c808d85a7e1c1c.tar.bz2
Make GlobalDescriptors::MaybeGet return -1 when the key is not found.
BUG=None TEST=Unit tests should still pass. Review URL: https://chromiumcodereview.appspot.com/10387218 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@144350 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'testing/multiprocess_func_list.h')
-rw-r--r--testing/multiprocess_func_list.h21
1 files changed, 17 insertions, 4 deletions
diff --git a/testing/multiprocess_func_list.h b/testing/multiprocess_func_list.h
index 6ba8495..f806d53 100644
--- a/testing/multiprocess_func_list.h
+++ b/testing/multiprocess_func_list.h
@@ -1,4 +1,4 @@
-// Copyright (c) 2008 The Chromium Authors. All rights reserved.
+// Copyright (c) 2012 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
@@ -29,13 +29,20 @@
namespace multi_process_function_list {
// Type for child process main functions.
-typedef int (*ChildFunctionPtr)();
+typedef int (*TestMainFunctionPtr)();
+
+// Type for child setup functions.
+typedef void (*SetupFunctionPtr)();
// Helper class to append a test function to the global mapping.
// Used by the MULTIPROCESS_TEST_MAIN macro.
class AppendMultiProcessTest {
public:
- AppendMultiProcessTest(std::string test_name, ChildFunctionPtr func_ptr);
+ // |main_func_ptr| is the main function that is run in the child process.
+ // |setup_func_ptr| is a function run when the global mapping is added.
+ AppendMultiProcessTest(std::string test_name,
+ TestMainFunctionPtr main_func_ptr,
+ SetupFunctionPtr setup_func_ptr);
};
// Invoke the main function of a test previously registered with
@@ -45,10 +52,16 @@ int InvokeChildProcessTest(std::string test_name);
// This macro creates a global MultiProcessTest::AppendMultiProcessTest object
// whose constructor does the work of adding the global mapping.
#define MULTIPROCESS_TEST_MAIN(test_main) \
+ MULTIPROCESS_TEST_MAIN_WITH_SETUP(test_main, NULL)
+
+// Same as above but lets callers specify a setup method that is run in the
+// child process, just before the main function is run. This facilitates
+// adding a generic one-time setup function for multiple tests.
+#define MULTIPROCESS_TEST_MAIN_WITH_SETUP(test_main, test_setup) \
int test_main(); \
namespace { \
multi_process_function_list::AppendMultiProcessTest \
- AddMultiProcessTest##_##test_main(#test_main, (test_main)); \
+ AddMultiProcessTest##_##test_main(#test_main, (test_main), (test_setup)); \
} \
int test_main()