[e2e] Move dependency bundle to fuchsia.

The end_to_end_deps bundle is useful for any end to end product test
and should be available here.

Use it for the end to end product test on the terminal product.

Change-Id: Id014deabbb4c1577902e9514cf1d683c16c299f8
diff --git a/products/terminal.gni b/products/terminal.gni
index d42ae00..f81a236 100644
--- a/products/terminal.gni
+++ b/products/terminal.gni
@@ -17,9 +17,12 @@
 
 universe_package_labels += [ "//bundles:tools" ]
 
-# TODO(IN-1097): Support a package server rather than building these
-#                into the image via preinstall+monolith.
-cache_package_labels += [ "//garnet/packages/tools:sl4f" ]
+# End to end (E2E) product test runtime dependencies. Must be added to cache,
+# not universe, so the test can run on bots where there is no package server.
+#
+# TODO(IN-1097): Support a package server on bots so this can be added to
+# universe like the tests.
+cache_package_labels += [ "//src/tests/bundles:end_to_end_deps" ]
 
 # E2E Product Tests. They don't produce fuchsia packages, but host executables,
 # and must just be included somewhere in the build configuration of the product.
diff --git a/src/tests/bundles/BUILD.gn b/src/tests/bundles/BUILD.gn
new file mode 100644
index 0000000..4971edb
--- /dev/null
+++ b/src/tests/bundles/BUILD.gn
@@ -0,0 +1,32 @@
+# Copyright 2019 The Fuchsia Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+# End to end (E2E) product test runtime dependencies. This bundle can be added
+# to a product build spec that also contains end to end product tests, so they
+# can be executed against an instance of the product.
+#
+# If the end to end product test is meant to run in an environment without a
+# package server - specifically, on a luci bot -, then the end_to_end_deps
+# bundle must be added to base_package_labels or cache_package_labels of the
+# product, but it cannot be, unlike the end to end tests themselves, in the
+# universe_package_labels.
+group("end_to_end_deps") {
+  testonly = true
+  public_deps = [
+    # Needed to send fake input.
+    "//garnet/bin/ui:input",
+
+    # Needed to start sl4f from ssh.
+    "//garnet/packages/prod:run",
+
+    # Needed to inject and capture audio.
+    "//garnet/packages/tests:virtual_audio_service",
+
+    # Needed for ifconfig.
+    "//garnet/packages/tools:netstack",
+
+    # SL4F to translate JSON-RPC to calls.
+    "//garnet/packages/tools:sl4f",
+  ]
+}