| # Copyright 2019 The ChromiumOS Authors |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| """Test crows_setup_toolchains.""" |
| |
| import os |
| |
| from chromite.lib import cros_test_lib |
| from chromite.lib import osutils |
| from chromite.scripts import cros_setup_toolchains |
| |
| |
| class UtilsTest(cros_test_lib.MockTempDirTestCase): |
| """Tests for various small util funcs.""" |
| |
| def testFileIsCrosSdkElf(self) -> None: |
| """Verify FileIsCrosSdkElf on x86_64 ELFs.""" |
| path = os.path.join(self.tempdir, "file") |
| data = ( |
| b"\x7fELF\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00" |
| b">\x00" |
| ) |
| osutils.WriteFile(path, data, mode="wb") |
| self.assertTrue(cros_setup_toolchains.FileIsCrosSdkElf(path)) |
| |
| def testArmIsNotCrosSdkElf(self) -> None: |
| """Verify FileIsCrosSdkElf on aarch64 ELFs.""" |
| path = os.path.join(self.tempdir, "file") |
| data = ( |
| b"\x7fELF\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00" |
| b"(\x00" |
| ) |
| osutils.WriteFile(path, data, mode="wb") |
| self.assertFalse(cros_setup_toolchains.FileIsCrosSdkElf(path)) |
| |
| def testScriptIsNotCrosSdkElf(self) -> None: |
| """Verify FileIsCrosSdkElf on shell scripts.""" |
| path = os.path.join(self.tempdir, "file") |
| data = "#!/bin/sh\necho hi\n" |
| osutils.WriteFile(path, data) |
| self.assertFalse(cros_setup_toolchains.FileIsCrosSdkElf(path)) |