diff options
author | dsinclair <dsinclair@chromium.org> | 2016-04-20 10:47:47 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2016-04-20 10:47:47 -0700 |
commit | 6b2c4d7d709dbfca0a59ce6310c0941669d0f53e (patch) | |
tree | ba560415daeea4db07efce54a751320608bfc457 /testing | |
parent | 685bb88433b7520946e30a1e520d37bfc2288151 (diff) | |
download | pdfium-6b2c4d7d709dbfca0a59ce6310c0941669d0f53e.tar.xz |
Upgrade build and clang.
The issue with //testing/multiprocess_func_list has been fixed in upstream
//build. This Cl upgrades //build to ToT.
In order to do so clang must also be updated. The Wno-undefined-var-template
is only passed if the pinned clang revision isn't 266460, which is the
currently pinned clang revision in chromium. This is there so that the bot
that builds with trunk clang gets this flag, but pinned clang doesn't.
We accidentally pickup the flag since our pinned clang is different from the
Chrome version. So, we must always roll //build and clang together when
changing deps or bad things may happen as there is an implicit dependency
due to compile flags.
BUG=pdfium:106
Review URL: https://codereview.chromium.org/1911483002
Diffstat (limited to 'testing')
-rw-r--r-- | testing/multiprocess_func_list.cc | 55 | ||||
-rw-r--r-- | testing/multiprocess_func_list.h | 72 |
2 files changed, 0 insertions, 127 deletions
diff --git a/testing/multiprocess_func_list.cc b/testing/multiprocess_func_list.cc deleted file mode 100644 index a400557445..0000000000 --- a/testing/multiprocess_func_list.cc +++ /dev/null @@ -1,55 +0,0 @@ -// 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 diff --git a/testing/multiprocess_func_list.h b/testing/multiprocess_func_list.h deleted file mode 100644 index 2ec4d7d975..0000000000 --- a/testing/multiprocess_func_list.h +++ /dev/null @@ -1,72 +0,0 @@ -// 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. - -#ifndef TESTING_MULTIPROCESS_FUNC_LIST_H_ -#define TESTING_MULTIPROCESS_FUNC_LIST_H_ - -#include <string> - -// This file provides the plumbing to register functions to be executed -// as the main function of a child process in a multi-process test. -// This complements the MultiProcessTest class which provides facilities -// for launching such tests. -// -// The MULTIPROCESS_TEST_MAIN() macro registers a string -> func_ptr mapping -// by creating a new global instance of the AppendMultiProcessTest() class -// this means that by the time that we reach our main() function the mapping -// is already in place. -// -// Example usage: -// MULTIPROCESS_TEST_MAIN(a_test_func) { -// // Code here runs in a child process. -// return 0; -// } -// -// The prototype of a_test_func is implicitly -// int test_main_func_name(); - -namespace multi_process_function_list { - -// Type for child process main functions. -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: - // |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 -// MULTIPROCESS_TEST_MAIN() -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), \ - (test_setup)); \ - } \ - int test_main() - -} // namespace multi_process_function_list - -#endif // TESTING_MULTIPROCESS_FUNC_LIST_H_ |