diff options
Diffstat (limited to 'testing/multiprocess_func_list.h')
-rw-r--r-- | testing/multiprocess_func_list.h | 72 |
1 files changed, 0 insertions, 72 deletions
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_ |