coverage: Update coverage utils to handle Golang coverage artifacts

At present, we only have CPP and Rust artifacts. Create coverage
handlers to understand Golang coverage artifacts.

BUG=b:256062562
TEST=./run_tests service/test_unittest.py and ./run_tests

Change-Id: Ibaabf7f29a7783c447e592ece8cd20caa0253420
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/chromite/+/3988380
Reviewed-by: Manoj Gupta <manojgupta@chromium.org>
Reviewed-by: Cindy Lin <xcl@google.com>
Tested-by: Charles Liu <liucharles@chromium.org>
Commit-Queue: Charles Liu <liucharles@chromium.org>
Reviewed-by: Srinivas Hegde <srinivashegde@google.com>
diff --git a/api/controller/test.py b/api/controller/test.py
index a0979d4..df3de6b 100644
--- a/api/controller/test.py
+++ b/api/controller/test.py
@@ -457,12 +457,18 @@
             build_target.name,
             packages_service.determine_full_version(),
         ),
+        in_proto.ArtifactType.CODE_COVERAGE_GOLANG: functools.partial(
+            test.BundleCodeCoverageGolang
+        ),
     }
 
     for output_artifact in in_proto.output_artifacts:
         for artifact_type, func in artifact_types.items():
             if artifact_type in output_artifact.artifact_types:
-                paths = func(chroot, sysroot_class, output_dir)
+                if artifact_type == in_proto.ArtifactType.CODE_COVERAGE_GOLANG:
+                    paths = func(chroot, output_dir)
+                else:
+                    paths = func(chroot, sysroot_class, output_dir)
                 if paths:
                     generated.append(
                         {