Index: base/test/launcher/unit_test_launcher_ios.cc |
diff --git a/base/test/launcher/unit_test_launcher_ios.cc b/base/test/launcher/unit_test_launcher_ios.cc |
index ae08acd39a3373ca5e87afcf46ca33aa6ac9d85a..d4276c89bccf0e1e8c4de3898f9ffc73807d68fe 100644 |
--- a/base/test/launcher/unit_test_launcher_ios.cc |
+++ b/base/test/launcher/unit_test_launcher_ios.cc |
@@ -4,13 +4,31 @@ |
#include "base/test/launcher/unit_test_launcher.h" |
+#include "base/command_line.h" |
+#include "base/files/file_path.h" |
+#include "base/logging.h" |
+#include "base/test/gtest_util.h" |
+#include "base/test/test_switches.h" |
+ |
namespace base { |
int LaunchUnitTests(int argc, |
char** argv, |
const RunTestSuiteCallback& run_test_suite) { |
- // Stub implementation - iOS doesn't support features we need for |
- // the full test launcher (e.g. process_util). |
+ CHECK(CommandLine::InitializedForCurrentProcess() || |
+ CommandLine::Init(argc, argv)); |
+ const CommandLine* command_line = CommandLine::ForCurrentProcess(); |
+ if (command_line->HasSwitch(switches::kTestLauncherListTests)) { |
+ FilePath list_path(command_line->GetSwitchValuePath( |
+ switches::kTestLauncherListTests)); |
+ if (WriteCompiledInTestsToFile(list_path)) { |
+ return 0; |
+ } else { |
+ LOG(ERROR) << "Failed to write list of tests."; |
+ return 1; |
+ } |
+ } |
+ |
return run_test_suite.Run(); |
} |