Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(237)

Unified Diff: testing/multiprocess_func_list.cc

Issue 10387218: Make GlobalDescriptors::MaybeGet return -1 when the key is not found. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Minor clean-up. Created 8 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« testing/multiprocess_func_list.h ('K') | « testing/multiprocess_func_list.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: testing/multiprocess_func_list.cc
diff --git a/testing/multiprocess_func_list.cc b/testing/multiprocess_func_list.cc
index 1e19704830f37ba9778aeffd48dcb30d3ada4527..3155e84e0d89e109269f2c8cc0b2050d1bce8e01 100644
--- a/testing/multiprocess_func_list.cc
+++ b/testing/multiprocess_func_list.cc
@@ -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;
« testing/multiprocess_func_list.h ('K') | « testing/multiprocess_func_list.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698