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() |