From 6b2c4d7d709dbfca0a59ce6310c0941669d0f53e Mon Sep 17 00:00:00 2001 From: dsinclair Date: Wed, 20 Apr 2016 10:47:47 -0700 Subject: 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 --- DEPS | 4 +-- build_overrides/gtest.gni | 9 +++++ testing/multiprocess_func_list.cc | 55 ------------------------------ testing/multiprocess_func_list.h | 72 --------------------------------------- 4 files changed, 11 insertions(+), 129 deletions(-) create mode 100644 build_overrides/gtest.gni delete mode 100644 testing/multiprocess_func_list.cc delete mode 100644 testing/multiprocess_func_list.h diff --git a/DEPS b/DEPS index 1e6ec803b0..c6a15d981d 100644 --- a/DEPS +++ b/DEPS @@ -4,9 +4,9 @@ vars = { 'chromium_git': 'https://chromium.googlesource.com', 'pdfium_git': 'https://pdfium.googlesource.com', - 'build_revision': '4d35c0d78ccf35b1597b9dd4adad52203916a01f', + 'build_revision': '2f91397926336dd46ea49ffef702197b9cc2215a', 'buildtools_revision': '5378d73123b64907773cc5c1bb027b2f765ff00a', - 'clang_revision': '9dc1904d214a77f081362c1b848b5f28d2192748', + 'clang_revision': '2956eca572ff0e1b181df65f71a045f061a2eb34', 'cygwin_revision': 'c89e446b273697fadf3a10ff1007a97c0b7de6df', 'gmock_revision': '29763965ab52f24565299976b936d1265cb6a271', 'gtest_revision': '8245545b6dc9c4703e6496d1efd19e975ad2b038', diff --git a/build_overrides/gtest.gni b/build_overrides/gtest.gni new file mode 100644 index 0000000000..6089962ada --- /dev/null +++ b/build_overrides/gtest.gni @@ -0,0 +1,9 @@ +# Copyright 2016 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. + +# Exclude support for registering main function in multi-process tests. +gtest_include_multiprocess = false + +# Exclude support for platform-specific operations across unit tests. +gtest_include_platform_test = false 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 - -// 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 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 - -// 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_ -- cgit v1.2.3