Add Chromium environment application test support.
Let Apptests run in Chromium and standalone environments.
Add mojo/public/cpp/application:test_support_standalone.
Add mojo/application/*main_chromium.cc and a GN target.
(MojoMain has base::AtExitManager not mojo::Environment)
Implement mojo/environment *DefaultRunLoop helper functions.
Use these for Chromium environment (w/base) Apptests:
"//mojo/application",
"//mojo/application:test_support",
Use these for standalone environment Apptests:
"//mojo/public/cpp/application:standalone",
"//mojo/public/cpp/application:test_support_standalone",
TODO: Add an example apptest for env chromium w/base use?
TODO: Use base::LaunchUnitTests, etc. in *main_chromium.cc.
BUG=392646
TEST="mojo_shell mojo:example_apptests" still works.
R=viettrungluu@chromium.org
Review URL: https://codereview.chromium.org/695593002
diff --git a/mojo/public/cpp/application/BUILD.gn b/mojo/public/cpp/application/BUILD.gn
index 83dc136..5d8fa08 100644
--- a/mojo/public/cpp/application/BUILD.gn
+++ b/mojo/public/cpp/application/BUILD.gn
@@ -48,6 +48,11 @@
source_set("test_support") {
testonly = true
+ sources = [
+ "application_test_base.h",
+ "lib/application_test_base.cc",
+ ]
+
deps = [
":application",
"//mojo/public/cpp/bindings",
@@ -55,10 +60,11 @@
"//mojo/public/cpp/system",
"//testing/gtest",
]
+}
- sources = [
- "application_test_base.h",
- "lib/application_test_base.cc",
- "lib/application_test_main.cc",
- ]
+source_set("test_support_standalone") {
+ testonly = true
+ sources = [ "lib/application_test_main.cc", ]
+ public_deps = [ ":test_support", ]
+ deps = [ "//mojo/public/cpp/environment:standalone", ]
}
diff --git a/mojo/public/cpp/application/lib/application_test_main.cc b/mojo/public/cpp/application/lib/application_test_main.cc
index be4e54e..61e3ea3 100644
--- a/mojo/public/cpp/application/lib/application_test_main.cc
+++ b/mojo/public/cpp/application/lib/application_test_main.cc
@@ -10,6 +10,7 @@
#include "mojo/public/cpp/system/message_pipe.h"
MojoResult MojoMain(MojoHandle shell_handle) {
+ // An Environment instance is needed to construct run loops.
mojo::Environment environment;
{