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)
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)
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)
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, )
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)
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)
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,))
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)
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)