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

Unified Diff: mojo/public/cpp/application/lib/application_test_base.cc

Issue 744973002: Pass command line args to apptests (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: rebase and address comments Created 6 years, 1 month 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: mojo/public/cpp/application/lib/application_test_base.cc
diff --git a/mojo/public/cpp/application/lib/application_test_base.cc b/mojo/public/cpp/application/lib/application_test_base.cc
index 42dbda550f70dd04e97bf2680a718a05de23995d..35442497cef5c38112c27e345df8618630de297b 100644
--- a/mojo/public/cpp/application/lib/application_test_base.cc
+++ b/mojo/public/cpp/application/lib/application_test_base.cc
@@ -7,7 +7,6 @@
#include "mojo/public/cpp/application/application_delegate.h"
#include "mojo/public/cpp/application/application_impl.h"
#include "mojo/public/cpp/environment/environment.h"
-#include "mojo/public/cpp/environment/logging.h"
#include "mojo/public/cpp/system/message_pipe.h"
namespace mojo {
@@ -17,6 +16,8 @@ namespace {
// This shell handle is shared by multiple test application instances.
MessagePipeHandle g_shell_handle;
+// Share the application command-line arguments with multiple application tests.
+Array<String> g_args;
} // namespace
@@ -33,14 +34,25 @@ void SetShellHandle(ScopedMessagePipeHandle handle) {
g_shell_handle = handle.release();
}
-ApplicationTestBase::ApplicationTestBase(Array<String> args)
- : args_(args.Pass()), application_impl_(nullptr) {
+const Array<String>& Args() {
+ return g_args;
+}
+
+void InitializeArgs(int argc, std::vector<const char*> argv) {
+ MOJO_CHECK(g_args.is_null());
+ for (const char* arg : argv) {
+ if (arg)
+ g_args.push_back(arg);
+ }
+}
+
+ApplicationTestBase::ApplicationTestBase() : application_impl_(nullptr) {
}
ApplicationTestBase::~ApplicationTestBase() {
}
-void ApplicationTestBase::SetUp() {
+void ApplicationTestBase::SetUpWithArgs(const Array<String>& args) {
// A run loop is needed for ApplicationImpl initialization and communication.
Environment::InstantiateDefaultRunLoop();
@@ -49,7 +61,11 @@ void ApplicationTestBase::SetUp() {
PassShellHandle());
// Fake application initialization with the given command line arguments.
- application_impl_->Initialize(args_.Clone());
+ application_impl_->Initialize(args.Clone());
+}
+
+void ApplicationTestBase::SetUp() {
+ SetUpWithArgs(Args());
}
void ApplicationTestBase::TearDown() {

Powered by Google App Engine
This is Rietveld 408576698