Chromium Code Reviews| Index: testing/multiprocess_func_list.h |
| diff --git a/testing/multiprocess_func_list.h b/testing/multiprocess_func_list.h |
| index 6ba84954feec0ef31ba6d767e062ae92c4bb2f5f..45778c00354a7a9959ef2fe3e0e6b5bd8dc675c1 100644 |
| --- a/testing/multiprocess_func_list.h |
| +++ b/testing/multiprocess_func_list.h |
| @@ -18,13 +18,16 @@ |
| // is already in place. |
| // |
| // Example usage: |
| -// MULTIPROCESS_TEST_MAIN(a_test_func) { |
| +// MULTIPROCESS_TEST_MAIN(a_test_func, a_setup_fun) { |
|
jeremy
2012/06/13 19:25:55
Need to document what setup_func does...
Jay Civelli
2012/06/13 20:40:49
I documented it in the comment for the new macro M
|
| // // Code here runs in a child process. |
| // return 0; |
| // } |
| // |
| -// The prototype of a_test_func is implicitly |
| +// The prototype of a_test_func and a_setup_func is implicitly: |
| // int test_main_func_name(); |
| +// |
| +// The setup function is optional. if non NULL it is run before the main |
| +// function. Its return valus is ignored |
| namespace multi_process_function_list { |
| @@ -35,7 +38,9 @@ typedef int (*ChildFunctionPtr)(); |
| // Used by the MULTIPROCESS_TEST_MAIN macro. |
| class AppendMultiProcessTest { |
| public: |
| - AppendMultiProcessTest(std::string test_name, ChildFunctionPtr func_ptr); |
| + AppendMultiProcessTest(std::string test_name, |
| + ChildFunctionPtr main_func_ptr, |
| + ChildFunctionPtr setup_func_ptr); |
| }; |
| // Invoke the main function of a test previously registered with |
| @@ -44,11 +49,11 @@ 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) \ |
| +#define MULTIPROCESS_TEST_MAIN(test_main, test_setup) \ |
|
jeremy
2012/06/13 19:25:55
I think you want to create 2 versions of this macr
Jay Civelli
2012/06/13 20:40:49
Done.
|
| 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() |