summaryrefslogtreecommitdiffstats
path: root/testing/multiprocess_func_list.cc
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.cc
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.cc')
-rw-r--r--testing/multiprocess_func_list.cc36
1 files changed, 25 insertions, 11 deletions
diff --git a/testing/multiprocess_func_list.cc b/testing/multiprocess_func_list.cc
index 1e19704..49ae07d 100644
--- a/testing/multiprocess_func_list.cc
+++ b/testing/multiprocess_func_list.cc
@@ -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.
@@ -12,29 +12,43 @@ namespace multi_process_function_list {
namespace {
-typedef std::map<std::string, ChildFunctionPtr> MultiProcessTestMap;
+struct ProcessFunctions {
+ ProcessFunctions() : main(NULL), setup(NULL) {}
+ ProcessFunctions(TestMainFunctionPtr main, SetupFunctionPtr setup)
+ : main(main),
+ setup(setup) {
+ }
+ TestMainFunctionPtr main;
+ SetupFunctionPtr setup;
+};
+
+typedef std::map<std::string, ProcessFunctions> MultiProcessTestMap;
// Retrieve a reference to the global 'func name' -> func ptr map.
-MultiProcessTestMap &GetMultiprocessFuncMap() {
+MultiProcessTestMap& GetMultiprocessFuncMap() {
static MultiProcessTestMap test_name_to_func_ptr_map;
return test_name_to_func_ptr_map;
}
} // namespace
-AppendMultiProcessTest::AppendMultiProcessTest(std::string test_name,
- ChildFunctionPtr func_ptr) {
- GetMultiprocessFuncMap()[test_name] = func_ptr;
+AppendMultiProcessTest::AppendMultiProcessTest(
+ std::string test_name,
+ TestMainFunctionPtr main_func_ptr,
+ SetupFunctionPtr setup_func_ptr) {
+ GetMultiprocessFuncMap()[test_name] =
+ ProcessFunctions(main_func_ptr, setup_func_ptr);
}
int InvokeChildProcessTest(std::string test_name) {
- MultiProcessTestMap &func_lookup_table = GetMultiprocessFuncMap();
+ MultiProcessTestMap& func_lookup_table = GetMultiprocessFuncMap();
MultiProcessTestMap::iterator it = func_lookup_table.find(test_name);
if (it != func_lookup_table.end()) {
- ChildFunctionPtr func = it->second;
- if (func) {
- return (*func)();
- }
+ const ProcessFunctions& process_functions = it->second;
+ if (process_functions.setup)
+ (*process_functions.setup)();
+ if (process_functions.main)
+ return (*process_functions.main)();
}
return -1;