sysroot_controller: Ignore package versions in InstallPackages.
The version is included from the depgraph, but we don't use it for
install packages. Ignore the version when it exists.
BUG=chromium:1124093
TEST=./run_tests
Change-Id: Ib1cca7f406968eb5d11c35d0586512556fe70397
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/chromite/+/2392045
Commit-Queue: Alex Klein <saklein@chromium.org>
Tested-by: Alex Klein <saklein@chromium.org>
Reviewed-by: Navil Perez <navil@google.com>
diff --git a/api/controller/sysroot_unittest.py b/api/controller/sysroot_unittest.py
index 454ce51..6f2b3fb 100644
--- a/api/controller/sysroot_unittest.py
+++ b/api/controller/sysroot_unittest.py
@@ -13,6 +13,7 @@
from chromite.api import api_config
from chromite.api import controller
+from chromite.api.controller import controller_util
from chromite.api.controller import sysroot as sysroot_controller
from chromite.api.gen.chromite.api import sysroot_pb2
from chromite.api.gen.chromiumos import common_pb2
@@ -446,7 +447,7 @@
def _InputProto(self, build_target=None, sysroot_path=None,
build_source=False, goma_dir=None, goma_log_dir=None,
goma_stats_file=None, goma_counterz_file=None,
- package_indexes=None):
+ package_indexes=None, packages=None):
"""Helper to build an input proto instance."""
instance = sysroot_pb2.InstallPackagesRequest()
@@ -466,7 +467,11 @@
instance.goma_config.counterz_file = goma_counterz_file
if package_indexes:
instance.package_indexes.extend(package_indexes)
-
+ if packages:
+ for pkg in packages:
+ pkg_info = instance.packages.add()
+ cpv = portage_util.SplitCPV(pkg, strict=False)
+ controller_util.CPVToPackageInfo(cpv, pkg_info)
return instance
def _OutputProto(self):
@@ -554,6 +559,14 @@
with self.assertRaises(cros_build_lib.DieSystemExit):
sysroot_controller.InstallPackages(in_proto, out_proto, self.api_config)
+ def testArgumentValidationInvalidPackage(self):
+ out_proto = self._OutputProto()
+ in_proto = self._InputProto(build_target=self.build_target,
+ sysroot_path=self.sysroot,
+ packages=['package-1.0.0-r2'])
+ with self.assertRaises(cros_build_lib.DieSystemExit):
+ sysroot_controller.InstallPackages(in_proto, out_proto, self.api_config)
+
def testSuccessOutputHandling(self):
"""Test successful call output handling."""
# Prevent argument validation error.