api/controller/toolchain: Skip empty artifacts
Do not include empty artifacts in the response to avoid publishing
files with no usable information.
BUG=b:202735786
TEST=run_tests
Change-Id: Ib6a0cc3450f9c794534d332e8053ec46c985f82d
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/chromite/+/3229856
Tested-by: Alex Klein <saklein@chromium.org>
Auto-Submit: Alex Klein <saklein@chromium.org>
Reviewed-by: Sergey Frolov <sfrolov@google.com>
diff --git a/api/controller/toolchain_unittest.py b/api/controller/toolchain_unittest.py
index 8f1a4ea..76ab27a 100644
--- a/api/controller/toolchain_unittest.py
+++ b/api/controller/toolchain_unittest.py
@@ -4,6 +4,8 @@
"""Unittests for Toolchain-related operations."""
+import os
+
from chromite.api import api_config
from chromite.api import controller
from chromite.api.controller import toolchain
@@ -15,6 +17,7 @@
from chromite.lib import cros_build_lib
from chromite.lib import cros_test_lib
+from chromite.lib import osutils
from chromite.lib import toolchain_util
# pylint: disable=protected-access
@@ -244,11 +247,11 @@
chroot=None, sysroot=None, input_artifacts=[
BuilderConfig.Artifacts.InputArtifactInfo(
input_artifact_type=
- BuilderConfig.Artifacts.UNVERIFIED_CHROME_LLVM_ORDERFILE,
+ BuilderConfig.Artifacts.UNVERIFIED_CHROME_LLVM_ORDERFILE,
input_artifact_gs_locations=['path1', 'path2']),
BuilderConfig.Artifacts.InputArtifactInfo(
input_artifact_type=
- BuilderConfig.Artifacts.UNVERIFIED_CHROME_LLVM_ORDERFILE,
+ BuilderConfig.Artifacts.UNVERIFIED_CHROME_LLVM_ORDERFILE,
input_artifact_gs_locations=['path3']),
],
profile_info=common_pb2.ArtifactProfileInfo(
@@ -268,11 +271,11 @@
chroot=None, sysroot=None, input_artifacts=[
BuilderConfig.Artifacts.InputArtifactInfo(
input_artifact_type=
- BuilderConfig.Artifacts.UNVERIFIED_CHROME_LLVM_ORDERFILE,
+ BuilderConfig.Artifacts.UNVERIFIED_CHROME_LLVM_ORDERFILE,
input_artifact_gs_locations=['path1', 'path2']),
BuilderConfig.Artifacts.InputArtifactInfo(
input_artifact_type=
- BuilderConfig.Artifacts.UNVERIFIED_CHROME_LLVM_ORDERFILE,
+ BuilderConfig.Artifacts.UNVERIFIED_CHROME_LLVM_ORDERFILE,
input_artifact_gs_locations=['path3']),
],
profile_info=common_pb2.ArtifactProfileInfo(
@@ -297,11 +300,11 @@
chroot=None, sysroot=None, input_artifacts=[
BuilderConfig.Artifacts.InputArtifactInfo(
input_artifact_type=
- BuilderConfig.Artifacts.UNVERIFIED_CHROME_LLVM_ORDERFILE,
+ BuilderConfig.Artifacts.UNVERIFIED_CHROME_LLVM_ORDERFILE,
input_artifact_gs_locations=['path1', 'path2']),
BuilderConfig.Artifacts.InputArtifactInfo(
input_artifact_type=
- BuilderConfig.Artifacts.UNVERIFIED_CHROME_LLVM_ORDERFILE,
+ BuilderConfig.Artifacts.UNVERIFIED_CHROME_LLVM_ORDERFILE,
input_artifact_gs_locations=['path3']),
])
toolchain.PrepareForBuild(request, self.response, self.api_config)
@@ -330,6 +333,8 @@
toolchain._Handlers('UnverifiedChromeLlvmOrderfile', self.prep,
self.bundle),
})
+ osutils.WriteFile(os.path.join(self.tempdir, 'artifact.txt'), 'test')
+ osutils.Touch(os.path.join(self.tempdir, 'empty'))
def _GetRequest(self, artifact_types=None):
chroot = common_pb2.Chroot(path=self.tempdir)
@@ -358,7 +363,7 @@
def testSetsArtifactsInfo(self):
request = self._GetRequest(
[BuilderConfig.Artifacts.UNVERIFIED_CHROME_LLVM_ORDERFILE])
- self.bundle.return_value = ['artifact.xz']
+ self.bundle.return_value = ['artifact.txt', 'empty', 'does_not_exist']
toolchain.BundleArtifacts(request, self.response, self.api_config)
self.assertEqual(1, len(self.response.artifacts_info))
self.assertEqual(