blob: 2050b3d1211dd18b7cdf9dd1a55976c219f688f0 [file] [log] [blame]
# -*- coding: utf-8 -*-
# Copyright 2019 The Chromium OS Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
"""Test the partition_lib module."""
from __future__ import print_function
import os
from chromite.lib import cros_build_lib
from chromite.lib import cros_test_lib
from chromite.lib import image_lib
from chromite.lib import image_lib_unittest
from chromite.lib import osutils
from chromite.lib.paygen import paygen_stateful_payload_lib
class GenerateStatefulPayloadTest(cros_test_lib.RunCommandTempDirTestCase):
"""Tests generating correct stateful payload."""
def setUp(self):
self.image = image_lib_unittest.LoopbackPartitionsMock(
'outfile', self.tempdir)
self.PatchObject(image_lib, 'LoopbackPartitions', return_value=self.image)
def testGenerateStatefulPayload(self):
"""Test correct arguments propagated to tar call."""
self.PatchObject(osutils.TempDir, '__enter__', return_value=self.tempdir)
fake_partitions = (
image_lib.PartitionInfo(3, 0, 4, 4, 'fs', 'STATE', ''),
)
self.PatchObject(image_lib, 'GetImageDiskPartitionInfo',
return_value=fake_partitions)
create_tarball_mock = self.PatchObject(cros_build_lib, 'CreateTarball')
paygen_stateful_payload_lib.GenerateStatefulPayload('dev/null',
self.tempdir)
create_tarball_mock.assert_called_once_with(
os.path.join(self.tempdir, 'stateful.tgz'), '.', sudo=True,
compression=cros_build_lib.COMP_GZIP,
inputs=['dev_image', 'var_overlay'],
extra_args=['--directory=%s' % os.path.join(self.tempdir, 'dir-1'),
'--transform=s,^dev_image,dev_image_new,',
'--transform=s,^var_overlay,var_new,'])