def testGenerateUpdatePayload(self): """Test correct arguments propagated to delta_generator call.""" paygen_mock = self.PatchObject(paygen_payload_lib, 'GenerateUpdatePayload') cros_generate_update_payload.main([ '--tgt-image', 'foo-tgt-image', '--src-image', 'foo-src-image', '--output', 'foo-output', '--check', '--private-key', 'foo-private-key', '--work-dir', 'foo-work-dir', ]) paygen_mock.assert_called_once_with( partial_mock.HasString('foo-tgt-image'), partial_mock.HasString('foo-output'), src_image=partial_mock.HasString('foo-src-image'), work_dir=partial_mock.HasString('foo-work-dir'), private_key=partial_mock.HasString('foo-private-key'), check=True)
def testCreateSquashfsImage(self): """Test that creating squashfs commands are run with correct parameters.""" copy_dir_mock = self.PatchObject(osutils, 'CopyDirContents') self.GetDlcGenerator().CreateSquashfsImage() self.assertCommandContains(['mksquashfs', '-4k-align', '-noappend']) copy_dir_mock.assert_called_once_with(partial_mock.HasString('src'), partial_mock.HasString('root'), symlinks=True)
def testMarkAndroidEBuildAsStable(self): """Test updating of ebuild.""" self.PatchObject(cros_build_lib, 'RunCommand') self.PatchObject(portage_util.EBuild, 'GetCrosWorkonVars', return_value=None) git_mock = self.PatchObject(git, 'RunGit') commit_mock = self.PatchObject(portage_util.EBuild, 'CommitChange') stable_candidate = portage_util.EBuild(self.old2) unstable = portage_util.EBuild(self.unstable) android_version = self.new_version package_dir = self.mock_android_dir version_atom = cros_mark_android_as_stable.MarkAndroidEBuildAsStable( stable_candidate, unstable, self.android_package, android_version, package_dir, self.build_branch, self.arc_bucket_url, self.targets) git_mock.assert_has_calls([ mock.call(package_dir, ['add', self.new]), mock.call(package_dir, ['add', 'Manifest']), ]) commit_mock.assert_called_with(partial_mock.HasString('latest'), package_dir) self.assertEqual( version_atom, '%s-%s-r1' % ( portage_util.GetFullAndroidPortagePackageName(self.android_package), self.new_version))
def testCreateExt4Image(self): """Test CreateExt4Image to make sure it runs with valid parameters.""" copy_dir_mock = self.PatchObject(osutils, 'CopyDirContents') mount_mock = self.PatchObject(osutils, 'MountDir') umount_mock = self.PatchObject(osutils, 'UmountDir') self.GetDlcGenerator(fs_type=dlc_lib.EXT4_TYPE).CreateExt4Image() self.assertCommandContains( ['/sbin/mkfs.ext4', '-b', '4096', '-O', '^has_journal']) self.assertCommandContains(['/sbin/e2fsck', '-y', '-f']) self.assertCommandContains(['/sbin/resize2fs', '-M']) copy_dir_mock.assert_called_once_with(partial_mock.HasString('src'), partial_mock.HasString('root'), symlinks=True) mount_mock.assert_called_once_with( mock.ANY, partial_mock.HasString('mount_point'), mount_opts=('loop', 'rw')) umount_mock.assert_called_once_with( partial_mock.HasString('mount_point'))
def testGenerateHashes(self): """Test _GenerateHashes.""" gen = self._GetStdGenerator() # Stub out the required functions. run_mock = self.PatchObject(paygen_payload_lib.PaygenPayload, '_RunGeneratorCmd') osutils.WriteFile(gen.payload_hash_file, 'payload') osutils.WriteFile(gen.metadata_hash_file, 'hash') # Run the test. self.assertEqual(gen._GenerateHashes(), (b'payload', b'hash')) # Check the expected function calls. cmd = [ 'delta_generator', '--in_file=' + gen.payload_file, '--signature_size=256', partial_mock.HasString('--out_hash_file='), partial_mock.HasString('--out_metadata_hash_file=') ] run_mock.assert_called_once_with(cmd)
def testGenerateQuickProvisionPayloads(self): """Verifies correct files are created for quick_provision script.""" extract_kernel_mock = self.PatchObject(partition_lib, 'ExtractKernel') extract_root_mock = self.PatchObject(partition_lib, 'ExtractRoot') compress_file_mock = self.PatchObject(cros_build_lib, 'CompressFile') artifacts.GenerateQuickProvisionPayloads(self.target_image, self.tempdir) extract_kernel_mock.assert_called_once_with( self.target_image, partial_mock.HasString('kernel.bin')) extract_root_mock.assert_called_once_with( self.target_image, partial_mock.HasString('rootfs.bin'), truncate=False) calls = [ mock.call( partial_mock.HasString('kernel.bin'), partial_mock.HasString( constants.QUICK_PROVISION_PAYLOAD_KERNEL)), mock.call( partial_mock.HasString('rootfs.bin'), partial_mock.HasString( constants.QUICK_PROVISION_PAYLOAD_ROOTFS)) ] compress_file_mock.assert_has_calls(calls)
def testInsertSignaturesIntoPayload(self): """Test inserting payload and metadata signatures.""" gen = self._GetStdGenerator(payload=self.delta_payload) payload_signatures = (b'0' * 256, ) metadata_signatures = (b'0' * 256, ) # Stub out the required functions. run_mock = self.PatchObject(paygen_payload_lib.PaygenPayload, '_RunGeneratorCmd') # Run the test. gen._InsertSignaturesIntoPayload(payload_signatures, metadata_signatures) # Check the expected function calls. cmd = [ 'delta_generator', '--in_file=' + gen.payload_file, partial_mock.HasString('payload_signature_file'), partial_mock.HasString('metadata_signature_file'), '--out_file=' + gen.signed_payload_file ] run_mock.assert_called_once_with(cmd)
def _CommonMarkAsStableTest(self, chrome_rev, new_version, old_ebuild_path, new_ebuild_path, commit_string_indicator): """Common function used for test functions for MarkChromeEBuildAsStable. This function stubs out others calls, and runs MarkChromeEBuildAsStable with the specified args. Args: chrome_rev: standard chrome_rev argument new_version: version we are revving up to old_ebuild_path: path to the stable ebuild new_ebuild_path: path to the to be created path commit_string_indicator: a string that the commit message must contain """ self.PatchObject(cros_build_lib, 'RunCommand', side_effect=Exception('should not be called')) self.PatchObject(portage_util.EBuild, 'GetCrosWorkonVars', return_value=None) git_mock = self.PatchObject(git, 'RunGit') commit_mock = self.PatchObject(portage_util.EBuild, 'CommitChange') stable_candidate = cros_mark_chrome_as_stable.ChromeEBuild( old_ebuild_path) unstable_ebuild = cros_mark_chrome_as_stable.ChromeEBuild( self.unstable) chrome_pn = 'chromeos-chrome' chrome_version = new_version commit = None package_dir = self.mock_chrome_dir cros_mark_chrome_as_stable.MarkChromeEBuildAsStable( stable_candidate, unstable_ebuild, chrome_pn, chrome_rev, chrome_version, commit, package_dir) git_mock.assert_has_calls([ mock.call(package_dir, ['add', new_ebuild_path]), mock.call(package_dir, ['rm', old_ebuild_path]), ]) commit_mock.assert_called_with( partial_mock.HasString(commit_string_indicator), package_dir)
def testExtractPartitions(self): """Test extracting partitions.""" kernel_mock = self.PatchObject(partition_lib, 'ExtractKernel') root_mock = self.PatchObject(partition_lib, 'ExtractRoot') cros_generate_update_payload.main([ '--image', 'foo-image', '--extract', '--kern_path', 'foo-kernel', '--root_path', 'foo-root', '--root_pretruncate_path', 'foo-pretruncate', ]) kernel_mock.assert_called_once_with(partial_mock.HasString('foo-image'), partial_mock.HasString('foo-kernel')) root_mock.assert_calls_with(partial_mock.HasString('foo-image'), partial_mock.HasString('foo-root')) root_mock.assert_calls_with(partial_mock.HasString('foo-image'), partial_mock.HasString('foo-pretruncate'), truncate=False)
def testUneuqal(self): self.assertFalse( partial_mock.HasString('not there') == 'typo no there') self.assertFalse( partial_mock.HasString('Uppercase matters') == 'uppercase matters')
def testEqual(self): self.assertTrue( partial_mock.HasString('substring') == 'sentence with substring...') self.assertTrue(partial_mock.HasString('tr') == 'it should be true') self.assertTrue(partial_mock.HasString('') == 'match any string')