[assembly] Support additional_serial_log_tags

... in product configuration.

Change-Id: Icf4fc8dad6af136ee80bb20d2337a65d68340be5
Reviewed-on: https://fuchsia-review.googlesource.com/c/sdk-integration/+/790222
Commit-Queue: Jay Zhuang <jayzhuang@google.com>
Reviewed-by: Jiaming Li <lijiaming@google.com>
diff --git a/bazel_rules_fuchsia/fuchsia/private/assembly/fuchsia_product_configuration.bzl b/bazel_rules_fuchsia/fuchsia/private/assembly/fuchsia_product_configuration.bzl
index 52ca3ea..3370acd 100644
--- a/bazel_rules_fuchsia/fuchsia/private/assembly/fuchsia_product_configuration.bzl
+++ b/bazel_rules_fuchsia/fuchsia/private/assembly/fuchsia_product_configuration.bzl
@@ -52,6 +52,8 @@
 def _create_platform_config(ctx):
     platform = {}
     platform["build_type"] = ctx.attr.build_type
+    if len(ctx.attr.additional_serial_log_tags) > 0:
+        platform["additional_serial_log_tags"] = ctx.attr.additional_serial_log_tags
     if ctx.attr.identity != None:
         platform["identity"] = ctx.attr.identity[FuchsiaIdentityConfigInfo]
     if ctx.attr.input != None:
@@ -277,6 +279,10 @@
             allow_single_file = True,
             default = None,
         ),
+        "additional_serial_log_tags": attr.string_list(
+            doc = """A list of logging tags to forward to the serial console.""",
+            default = [],
+        ),
         "additional_platform_flags_bool": attr.string_dict(
             doc = """This is a dictionary map from json path of platform config
 to a bool value. The values are passed in as string formed true/false.""",
diff --git a/tests/fuchsia/assembly/BUILD.bazel b/tests/fuchsia/assembly/BUILD.bazel
index 7aab4b8..b3acaa8 100644
--- a/tests/fuchsia/assembly/BUILD.bazel
+++ b/tests/fuchsia/assembly/BUILD.bazel
@@ -114,6 +114,10 @@
 
     # Platform configuration items
     build_type = BUILD_TYPES.USER,
+    additional_serial_log_tags = [
+        "session-manager",
+        "session:session",
+    ],
     identity = ":testing_identity_config",
     input = ":testing_input_config",
     connectivity = ":testing_connectivity",
diff --git a/tests/fuchsia/assembly/test_data/product_config_add_package_golden_test.json b/tests/fuchsia/assembly/test_data/product_config_add_package_golden_test.json
index 19cc9c5..7c36978 100644
--- a/tests/fuchsia/assembly/test_data/product_config_add_package_golden_test.json
+++ b/tests/fuchsia/assembly/test_data/product_config_add_package_golden_test.json
@@ -24,4 +24,4 @@
     },
     "session_url": "fuchsia-pkg://fuchsia.com/workstation_session#meta/workstation_routing.cm"
   }
-}
\ No newline at end of file
+}
diff --git a/tests/fuchsia/assembly/test_data/product_config_golden_file.json b/tests/fuchsia/assembly/test_data/product_config_golden_file.json
index c9b2151..9174cc8 100644
--- a/tests/fuchsia/assembly/test_data/product_config_golden_file.json
+++ b/tests/fuchsia/assembly/test_data/product_config_golden_file.json
@@ -1,5 +1,9 @@
 {
   "platform": {
+    "additional_serial_log_tags": [
+      "session-manager",
+      "session:session"
+    ],
     "build_type": "user",
     "connectivity": {
       "wlan": {
@@ -66,4 +70,4 @@
     },
     "session_url": "fuchsia-pkg://fuchsia.com/workstation_session#meta/workstation_routing.cm"
   }
-}
\ No newline at end of file
+}
diff --git a/tests/fuchsia/assembly/test_data/product_config_no_identity_config_golden_file.json b/tests/fuchsia/assembly/test_data/product_config_no_identity_config_golden_file.json
index 08535ca..ec9a593 100644
--- a/tests/fuchsia/assembly/test_data/product_config_no_identity_config_golden_file.json
+++ b/tests/fuchsia/assembly/test_data/product_config_no_identity_config_golden_file.json
@@ -14,4 +14,4 @@
     },
     "session_url": "fuchsia-pkg://fuchsia.com/workstation_session#meta/workstation_routing.cm"
   }
-}
\ No newline at end of file
+}