diff options
author | jcivelli@chromium.org <jcivelli@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-06-27 01:12:24 +0000 |
---|---|---|
committer | jcivelli@chromium.org <jcivelli@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-06-27 01:12:24 +0000 |
commit | 97c652b98f92e060e3ed3a11d2c808d85a7e1c1c (patch) | |
tree | 869d2ba677905ea0cba67f4ee311d15846f97790 /testing/multiprocess_func_list.h | |
parent | 31ad4a24b884526a51f81efa556c019dcc27657d (diff) | |
download | chromium_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.h | 21 |
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() |