Reland "scripts: strip_package: Use install mask from python"
This is a reland of commit 8c9ec1cd001b2c4eea218751b6b7788286f3674a
Fixed the undefined variable bug in the strip_package script.
Original change's description:
> scripts: strip_package: Use install mask from python
>
> Use install mask defined in python file instead of common.sh
>
> BUG=b:241001394
> TEST=cros deploy localhost:9222 libdbus-sys
>
> Change-Id: I533cbfd4498768dcad03e7513ec792dd9dd980dd
> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/chromite/+/3803792
> Tested-by: Ram Chandrasekar <rchandrasekar@google.com>
> Reviewed-by: Mike Frysinger <vapier@chromium.org>
> Auto-Submit: Ram Chandrasekar <rchandrasekar@google.com>
> Commit-Queue: Ram Chandrasekar <rchandrasekar@google.com>
BUG=b:241001394
TEST=cros deploy localhost:9222 libdbus-sys
Change-Id: Ibba7a8b4d21e196c7dbbf3130013950199925860
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/chromite/+/3831531
Tested-by: Ram Chandrasekar <rchandrasekar@google.com>
Reviewed-by: Mike Frysinger <vapier@chromium.org>
Auto-Submit: Ram Chandrasekar <rchandrasekar@google.com>
Commit-Queue: Ram Chandrasekar <rchandrasekar@google.com>
diff --git a/scripts/strip_package_unittest.py b/scripts/strip_package_unittest.py
new file mode 100644
index 0000000..12a0544
--- /dev/null
+++ b/scripts/strip_package_unittest.py
@@ -0,0 +1,51 @@
+# Copyright 2022 The ChromiumOS Authors.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+"""Unittests for strip_package.py"""
+import os
+
+from chromite.lib import build_target_lib
+from chromite.lib import cros_test_lib
+from chromite.lib import install_mask
+from chromite.scripts import strip_package
+
+
+class StripPackageTest(cros_test_lib.MockTestCase):
+ """Tests for strip_package."""
+
+ def setUp(self):
+ self.sysroot_path = '/build/testboard'
+ self.builder_mock = self.PatchObject(strip_package.builder,
+ 'UpdateGmergeBinhost')
+ self.PatchObject(
+ build_target_lib,
+ 'get_default_sysroot_path',
+ return_value=self.sysroot_path)
+
+ def testDefaultSysroot(self):
+ """Test the base case."""
+ strip_package.main(['--board=testboard', 'foo'])
+ self.builder_mock.assert_called_with(self.sysroot_path, ['foo'], False)
+
+ def testMultiplePkg(self):
+ """Test multiple package input."""
+ strip_package.main(['--board=testboard', 'foo', 'foo1'])
+ self.builder_mock.assert_called_with(self.sysroot_path, ['foo', 'foo1'],
+ False)
+
+ def testCustomSysroot(self):
+ """Test user given custom sysroot path."""
+ strip_package.main(['--sysroot=/build/sysroot', 'foo'])
+ self.builder_mock.assert_called_with('/build/sysroot', ['foo'], False)
+
+ def testInstallMask(self):
+ """Test install mask environment variable."""
+ strip_package.main(['--board=testboard', 'foo'])
+ self.assertEqual(
+ os.environ.get('DEFAULT_INSTALL_MASK'), '\n'.join(install_mask.DEFAULT))
+
+ def testDeepOption(self):
+ """Test Deep option."""
+ strip_package.main(['--board=testboard', '--deep', 'foo'])
+ self.builder_mock.assert_called_with(self.sysroot_path, ['foo'], True)