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

Unified Diff: testing/multiprocess_func_list.h

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: Fixing NaCl tests. 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
« no previous file with comments | « ipc/sync_socket_unittest.cc ('k') | testing/multiprocess_func_list.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: testing/multiprocess_func_list.h
diff --git a/testing/multiprocess_func_list.h b/testing/multiprocess_func_list.h
index 6ba84954feec0ef31ba6d767e062ae92c4bb2f5f..984e96f7e968d5dcea37351e4169c93cd2308da7 100644
--- a/testing/multiprocess_func_list.h
+++ b/testing/multiprocess_func_list.h
@@ -29,13 +29,20 @@
namespace multi_process_function_list {
// Type for child process main functions.
-typedef int (*ChildFunctionPtr)();
+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:
- AppendMultiProcessTest(std::string test_name, ChildFunctionPtr func_ptr);
+ // |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
@@ -45,10 +52,16 @@ 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)); \
+ AddMultiProcessTest##_##test_main(#test_main, (test_main), (test_setup)); \
} \
int test_main()
« no previous file with comments | « ipc/sync_socket_unittest.cc ('k') | testing/multiprocess_func_list.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698