test_image_unittest: initialize empty partition table in test image
When running partx on an empty file, older versions would warn but
still exit(0). Newer versions exit(1) and break the tests. Run
sfdisk against the test image to create an empty DOS partition table
that is enough to make partx happy.
BUG=chromium:1201557
TEST=`./run_tests` passes w/newer util-linux
Change-Id: If9f0a01cceadd2a14c366735f1876a18e3e218b1
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/chromite/+/2847685
Commit-Queue: Mike Frysinger <vapier@chromium.org>
Commit-Queue: Stephen Boyd <swboyd@chromium.org>
Tested-by: Mike Frysinger <vapier@chromium.org>
Auto-Submit: Mike Frysinger <vapier@chromium.org>
Reviewed-by: Stephen Boyd <swboyd@chromium.org>
diff --git a/scripts/test_image_unittest.py b/scripts/test_image_unittest.py
index 77fdace..1f61a78 100644
--- a/scripts/test_image_unittest.py
+++ b/scripts/test_image_unittest.py
@@ -13,6 +13,7 @@
import unittest
from chromite.lib import constants
+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_test_lib
@@ -32,10 +33,15 @@
"""
def setUp(self):
- # create dummy image file
+ # Create empty image file.
self.image_file = os.path.join(self.tempdir,
constants.BASE_IMAGE_NAME + '.bin')
- osutils.WriteFile(self.image_file, '')
+ osutils.AllocateFile(self.image_file, 1024 * 1024)
+ # In case sfdisk is in /sbin, search that too.
+ cros_build_lib.run(
+ ['sfdisk', self.image_file],
+ extra_env={'PATH': '/sbin:/usr/sbin:%s' % os.environ['PATH']},
+ input='label: dos')
fake_partitions = (
image_lib.PartitionInfo(1, 0, 0, 0, 'fs', 'STATE', 'flag'),
image_lib.PartitionInfo(2, 0, 0, 0, 'fs', 'KERN-A', 'flag'),