Index: Source/web/tests/WebUnitTests.cpp |
diff --git a/Source/web/tests/WebUnitTests.cpp b/Source/web/tests/WebUnitTests.cpp |
index f07b93718866c8b95a1a58d22115b7e20627c7c5..04ac4e8bdd1c781811b2a0d8b15b56932a8fc935 100644 |
--- a/Source/web/tests/WebUnitTests.cpp |
+++ b/Source/web/tests/WebUnitTests.cpp |
@@ -31,29 +31,30 @@ |
#include "config.h" |
#include "web/tests/WebUnitTests.h" |
-// FIXME: Can we move this to webkit/support and fix the layering violation? |
+#include <base/bind.h> |
+#include <base/message_loop/message_loop.h> |
+#include <base/run_loop.h> |
+#include <base/test/launcher/unit_test_launcher.h> |
#include <base/test/test_suite.h> |
-static TestSuite* testSuite = 0; |
- |
namespace blink { |
-void InitTestSuite(int argc, char** argv) |
-{ |
- testSuite = new TestSuite(argc, argv); |
-} |
+namespace { |
-int RunAllUnitTests() |
+int runHelper(TestSuite* testSuite, void (*preTestHook)(void), void (*postTestHook)(void)) |
{ |
+ preTestHook(); |
int result = testSuite->Run(); |
- |
+ postTestHook(); |
return result; |
} |
-void DeleteTestSuite() |
+} // namespace |
+ |
+int runWebTests(int argc, char** argv, void (*preTestHook)(void), void (*postTestHook)(void)) |
{ |
- delete testSuite; |
- testSuite = 0; |
+ TestSuite testSuite(argc, argv); |
+ return base::LaunchUnitTests(argc, argv, base::Bind(&runHelper, base::Unretained(&testSuite), preTestHook, postTestHook)); |
} |
} // namespace blink |