def setUp(self):
    self.response = payload_pb2.PayloadGenerationResult()

    src_build = payload_pb2.Build(version='1.0.0', bucket='test',
                                  channel='test-channel', build_target=
                                  common_pb2.BuildTarget(name='cave'))

    src_image = payload_pb2.UnsignedImage(
        build=src_build, image_type=6, milestone='R70')

    tgt_build = payload_pb2.Build(version='2.0.0', bucket='test',
                                  channel='test-channel', build_target=
                                  common_pb2.BuildTarget(name='cave'))

    tgt_image = payload_pb2.UnsignedImage(
        build=tgt_build, image_type=6, milestone='R70')

    self.req = payload_pb2.PayloadGenerationRequest(
        tgt_unsigned_image=tgt_image,
        src_unsigned_image=src_image,
        bucket='test-destination-bucket',
        verify=True,
        keyset='update_signer',
        dryrun=False)

    self.result = payload_pb2.PayloadGenerationResult()
  def setUp(self):
    """Set up a payload test with the Run method mocked."""
    self.PatchObject(paygen_payload_lib.PaygenPayload, 'Run',
                     return_value=None)

    # Common build defs.
    self.src_build = payload_pb2.Build(version='1.0.0', bucket='test',
                                       channel='test-channel', build_target=
                                       common_pb2.BuildTarget(name='cave'))
    self.tgt_build = payload_pb2.Build(version='2.0.0', bucket='test',
                                       channel='test-channel', build_target=
                                       common_pb2.BuildTarget(name='cave'))
 def testArgumentValidationMissingBuildTarget(self):
   """Test missing build target name."""
   sysroot = sysroot_pb2.Sysroot(
       path=self.sysroot, build_target=common_pb2.BuildTarget())
   input_proto = depgraph_pb2.ListRequest(sysroot=sysroot)
   with self.assertRaises(cros_build_lib.DieSystemExit):
     dependency.List(input_proto, self.response, self.api_config)
예제 #4
0
    def testSuccess(self):
        """Test successful handling case."""
        name = 'board'
        build_target_message = common_pb2.BuildTarget(name=name)
        expected = BuildTarget(name)
        result = controller_util.ParseBuildTarget(build_target_message)

        self.assertEqual(expected, result)
예제 #5
0
    def testSuccessPackageIndexes(self):
        """Test successful call with package_indexes."""
        # Prevent argument validation error.
        self.PatchObject(sysroot_lib.Sysroot,
                         'IsToolchainInstalled',
                         return_value=True)
        package_indexes = [
            common_pb2.PackageIndexInfo(
                snapshot_sha='SHA',
                snapshot_number=5,
                build_target=common_pb2.BuildTarget(name='board'),
                location='LOCATION',
                profile=common_pb2.Profile(name='profile')),
            common_pb2.PackageIndexInfo(
                snapshot_sha='SHA2',
                snapshot_number=4,
                build_target=common_pb2.BuildTarget(name='board'),
                location='LOCATION2',
                profile=common_pb2.Profile(name='profile'))
        ]

        in_proto = self._InputProto(build_target=self.build_target,
                                    sysroot_path=self.sysroot,
                                    package_indexes=package_indexes)

        out_proto = self._OutputProto()
        rc_patch = self.PatchObject(sysroot_service, 'BuildPackagesRunConfig')
        self.PatchObject(sysroot_service, 'BuildPackages')

        rc = sysroot_controller.InstallPackages(in_proto, out_proto,
                                                self.api_config)
        self.assertFalse(rc)
        rc_patch.assert_called_with(
            usepkg=True,
            install_debug_symbols=True,
            packages=[],
            package_indexes=[
                binpkg.PackageIndexInfo.from_protobuf(x)
                for x in package_indexes
            ],
            use_flags=[],
            use_goma=False,
            incremental_build=False)
예제 #6
0
 def _GetRequest(self, artifact_types=None):
     chroot = common_pb2.Chroot(path=self.tempdir)
     sysroot = sysroot_pb2.Sysroot(
         path='/build/board',
         build_target=common_pb2.BuildTarget(name='board'))
     return toolchain_pb2.BundleToolchainRequest(
         chroot=chroot,
         sysroot=sysroot,
         output_dir=self.tempdir,
         artifact_types=artifact_types,
     )
예제 #7
0
    def testParseProfile(self):
        """Test the parsing of a profile."""
        name = 'build-target-name'
        profile = 'profile'
        build_target_msg = common_pb2.BuildTarget(name=name)
        profile_msg = sysroot_pb2.Profile(name=profile)

        expected = build_target_lib.BuildTarget(name, profile=profile)
        result = controller_util.ParseBuildTarget(build_target_msg,
                                                  profile_message=profile_msg)

        self.assertEqual(expected, result)
 def testGetDependenciesWithSrcPaths(self):
     """Test GetDependencies given a list of paths."""
     self.PatchObject(dependency,
                      'GetBuildDependency',
                      return_value=(self.json_deps, self.json_deps))
     sysroot_path = '/build/deathstar'
     build_target = common_pb2.BuildTarget(name='target')
     src_paths = ['/bunker', '/nowhere']
     actual_deps = dependency.GetDependencies(sysroot_path, build_target,
                                              src_paths)
     expected_deps = ['equipment/jetpack', 'troop/clone-1.2.3']
     self.assertCountEqual(expected_deps, actual_deps)
예제 #9
0
 def _GetRequest(self,
                 artifact_types=None,
                 input_artifacts=None,
                 additional_args=None):
     chroot = common_pb2.Chroot(path=self.tempdir)
     sysroot = sysroot_pb2.Sysroot(
         path='/build/board',
         build_target=common_pb2.BuildTarget(name='board'))
     return toolchain_pb2.PrepareForToolchainBuildRequest(
         artifact_types=artifact_types,
         chroot=chroot,
         sysroot=sysroot,
         input_artifacts=input_artifacts,
         additional_args=additional_args)
예제 #10
0
 def _GetInput(self, **kwargs):
     values = dict(
         build_target=common_pb2.BuildTarget(name='target'),
         vm_path=common_pb2.Path(path='/path/to/image.bin',
                                 location=common_pb2.Path.INSIDE),
         test_harness=test_pb2.VmTestRequest.TAST,
         vm_tests=[test_pb2.VmTestRequest.VmTest(pattern='suite')],
         ssh_options=test_pb2.VmTestRequest.SshOptions(
             port=1234,
             private_key_path={
                 'path': '/path/to/id_rsa',
                 'location': common_pb2.Path.INSIDE
             }),
     )
     values.update(kwargs)
     return test_pb2.VmTestRequest(**values)
    def testConversion(self):
        """Test protobuf conversion methods."""

        build_target = BuildTarget(name='board')
        build_target_with_profile = BuildTarget('board', profile='profile')
        proto = common_pb2.BuildTarget(name='board')
        profile_proto = common_pb2.Profile(name='profile')

        # Profile is moving to sysroot_lib.Profile.
        self.assertEqual(proto, build_target.as_protobuf)
        self.assertEqual(proto, build_target_with_profile.as_protobuf)
        self.assertEqual(build_target, BuildTarget.from_protobuf(proto))

        self.assertEqual(common_pb2.Profile(), build_target.profile_protobuf)
        self.assertEqual(profile_proto,
                         build_target_with_profile.profile_protobuf)
 def testGetDependenciesWithDefaultArgs(self):
     """Test GetDependencies using the default args."""
     self.PatchObject(dependency,
                      'GetBuildDependency',
                      return_value=(self.json_deps, self.json_deps))
     sysroot_path = '/build/deathstar'
     build_target = common_pb2.BuildTarget(name='target')
     actual_deps = dependency.GetDependencies(sysroot_path, build_target)
     expected_deps = [
         'commander/darthvader-1.49.3.3',
         'troop/clone',
         'troop/robot',
         'equipment/jetpack',
         'troop/clone-1.2.3',
         'troop/robot-2.3.4',
         'equipment/jetpack-3.4.5',
     ]
     self.assertCountEqual(expected_deps, actual_deps)
 def testGetBuildDependencyGraphForPackages(self):
   """GetBuildDependencyGraph calls helper method with correct args."""
   get_dep = self.PatchObject(
       dependency_service,
       'GetBuildDependency',
       return_value=(self.json_deps, self.json_deps))
   pkg_mock = 'package-CPV'
   pkg_to_cpv = self.PatchObject(
       controller_util,
       'PackageInfoToCPV', return_value=pkg_mock)
   package = common_pb2.PackageInfo(
       package_name='chromeos-chrome', category='chromeos-base')
   input_proto = depgraph_pb2.GetBuildDependencyGraphRequest(
       build_target=common_pb2.BuildTarget(name='target'),
       packages=[package]
   )
   dependency.GetBuildDependencyGraph(input_proto, self.response,
                                      self.api_config)
   self.assertEqual(self.response.dep_graph.build_target.name, 'deathstar')
   pkg_to_cpv.assert_called_once_with(package)
   get_dep.assert_called_once_with('/build/target', 'target', (pkg_mock,))
예제 #14
0
 def testWrongMessage(self):
     """Test invalid message type given."""
     with self.assertRaises(AssertionError):
         controller_util.ParseChroot(common_pb2.BuildTarget())
 def setUp(self):
   self.response = depgraph_pb2.ListResponse()
   self.build_target = common_pb2.BuildTarget(name='target')
   self.sysroot = os.path.join(self.tempdir, 'target')
   osutils.SafeMakedirs(self.sysroot)
예제 #16
0
    def testArgumentHandling(self):
        """Test the arguments get processed and passed correctly."""
        sysroot_path = '/sysroot/path'

        sysroot = sysroot_lib.Sysroot(sysroot_path)
        create_patch = self.PatchObject(sysroot_service,
                                        'Create',
                                        return_value=sysroot)
        rc_patch = self.PatchObject(sysroot_service, 'SetupBoardRunConfig')

        # Default values.
        board = 'board'
        profile = None
        force = False
        upgrade_chroot = True
        in_proto = self._InputProto(build_target=board,
                                    profile=profile,
                                    replace=force,
                                    current=not upgrade_chroot)
        out_proto = self._OutputProto()
        sysroot_controller.Create(in_proto, out_proto, self.api_config)

        # Default value checks.
        rc_patch.assert_called_with(force=force,
                                    upgrade_chroot=upgrade_chroot,
                                    package_indexes=[])
        self.assertEqual(board, out_proto.sysroot.build_target.name)
        self.assertEqual(sysroot_path, out_proto.sysroot.path)

        # Not default values.
        create_patch.reset_mock()
        board = 'board'
        profile = 'profile'
        force = True
        upgrade_chroot = False
        package_indexes = [
            common_pb2.PackageIndexInfo(
                snapshot_sha='SHA',
                snapshot_number=5,
                build_target=common_pb2.BuildTarget(name=board),
                location='LOCATION',
                profile=common_pb2.Profile(name=profile)),
            common_pb2.PackageIndexInfo(
                snapshot_sha='SHA2',
                snapshot_number=4,
                build_target=common_pb2.BuildTarget(name=board),
                location='LOCATION2',
                profile=common_pb2.Profile(name=profile))
        ]

        in_proto = self._InputProto(build_target=board,
                                    profile=profile,
                                    replace=force,
                                    current=not upgrade_chroot,
                                    package_indexes=package_indexes)
        out_proto = self._OutputProto()
        sysroot_controller.Create(in_proto, out_proto, self.api_config)

        # Not default value checks.
        rc_patch.assert_called_with(
            force=force,
            package_indexes=[
                binpkg.PackageIndexInfo.from_protobuf(x)
                for x in package_indexes
            ],
            upgrade_chroot=upgrade_chroot)
        self.assertEqual(board, out_proto.sysroot.build_target.name)
        self.assertEqual(sysroot_path, out_proto.sysroot.path)