diff options
author | dsinclair <dsinclair@chromium.org> | 2016-04-20 07:32:39 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2016-04-20 07:32:39 -0700 |
commit | 685bb88433b7520946e30a1e520d37bfc2288151 (patch) | |
tree | fbcb1fdc49cdc27d5bf064915513717cb8e11f14 /testing/multiprocess_func_list.cc | |
parent | f5a1ee807d74b28917d5c2377c4ece611883bcd1 (diff) | |
download | pdfium-685bb88433b7520946e30a1e520d37bfc2288151.tar.xz |
Standalone GN build.
This CL setups up a standalone GN build. You'll need to set gn args similar to:
use_goma = true
clang_use_chrome_plugins = false
pdf_enable_xfa = true
pdf_enable_v8 = true
pdf_is_standalone = true
The third_party/pymock files are needed to make git cl upload work correctly.
BUG=pdfium:106
Review URL: https://codereview.chromium.org/1904563002
Diffstat (limited to 'testing/multiprocess_func_list.cc')
-rw-r--r-- | testing/multiprocess_func_list.cc | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/testing/multiprocess_func_list.cc b/testing/multiprocess_func_list.cc new file mode 100644 index 0000000000..a400557445 --- /dev/null +++ b/testing/multiprocess_func_list.cc @@ -0,0 +1,55 @@ +// 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. + +#include "multiprocess_func_list.h" + +#include <map> + +// Helper functions to maintain mapping of "test name"->test func. +// The information is accessed via a global map. +namespace multi_process_function_list { + +namespace { + +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() { + static MultiProcessTestMap test_name_to_func_ptr_map; + return test_name_to_func_ptr_map; +} + +} // namespace + +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::iterator it = func_lookup_table.find(test_name); + if (it != func_lookup_table.end()) { + const ProcessFunctions& process_functions = it->second; + if (process_functions.setup) + (*process_functions.setup)(); + if (process_functions.main) + return (*process_functions.main)(); + } + + return -1; +} + +} // namespace multi_process_function_list |