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

Unified Diff: base/command_line.cc

Issue 2078913005: Add a chrome_elf_unittest ChromeElfLoadSanityTest which validates that loading chrome_elf does not … (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix typo Created 4 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
Index: base/command_line.cc
diff --git a/base/command_line.cc b/base/command_line.cc
index c991959d6911bf545f994b3e6d0833f793cc7cf0..61f4688cac6388b87581d1f624acd732013b288e 100644
--- a/base/command_line.cc
+++ b/base/command_line.cc
@@ -145,6 +145,11 @@ string16 QuoteForCommandLineToArgvW(const string16& arg,
return out;
}
+
+// Controls whether we honor the argc and argv parameters passed in to the main
+// function for console apps or use the shell32 API's to parse the command
+// line string and retrieve argc and argv.
+bool honor_command_line_args_for_testing = false;
#endif
} // namespace
@@ -197,6 +202,11 @@ void CommandLine::set_slash_is_not_a_switch() {
DCHECK_EQ(wcscmp(kSwitchPrefixes[arraysize(kSwitchPrefixes) - 1], L"/"), 0);
switch_prefix_count = arraysize(kSwitchPrefixes) - 1;
}
+
+void CommandLine::set_honor_command_line_args_for_testing(
+ bool honor_args_for_testing) {
+ honor_command_line_args_for_testing = honor_args_for_testing;
+}
#endif
// static
@@ -209,12 +219,20 @@ bool CommandLine::Init(int argc, const char* const* argv) {
}
current_process_commandline_ = new CommandLine(NO_PROGRAM);
+
#if defined(OS_WIN)
- current_process_commandline_->ParseFromString(::GetCommandLineW());
+ if (honor_command_line_args_for_testing) {
+ // On Windows we need to convert the command line arguments to string16
+ base::CommandLine::StringVector argv_vector;
+ for (int i = 0; i < argc; ++i)
+ argv_vector.push_back(UTF8ToUTF16(argv[i]));
+ current_process_commandline_->InitFromArgv(argv_vector);
+ } else {
+ current_process_commandline_->ParseFromString(::GetCommandLineW());
+ }
#elif defined(OS_POSIX)
current_process_commandline_->InitFromArgv(argc, argv);
#endif
-
return true;
}

Powered by Google App Engine
This is Rietveld 408576698