Beispiel #1
0
    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'))
Beispiel #5
0
    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)
Beispiel #6
0
    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)
Beispiel #7
0
    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')