| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- #!/usr/bin/env python3
- """Check that a release tar contains the same files as a prefix root."""
- __copyright__ = """
- Part of the Carbon Language project, under the Apache License v2.0 with LLVM
- Exceptions. See /LICENSE for license information.
- SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
- """
- from pathlib import Path
- import os
- import re
- import tarfile
- import unittest
- class ToolchainTarTest(unittest.TestCase):
- def test_tar(self) -> None:
- install_data_manifest = Path(os.environ["INSTALL_DATA_MANIFEST"])
- tar_file = Path(os.environ["TAR_FILE"])
- # Gather install data files.
- with open(install_data_manifest) as manifest:
- # Remove everything up to and including `prefix_root`.
- install_files = set(
- [
- re.sub("^.*/prefix_root/", "", entry.strip())
- for entry in manifest.readlines()
- ]
- )
- self.assertTrue(install_files, f"`{install_data_manifest}` is empty.")
- # Gather tar files.
- with tarfile.open(tar_file) as tar:
- # Remove the first path component.
- tar_files = set(
- [
- str(Path(*Path(tarinfo.name).parts[1:]))
- for tarinfo in tar
- if not tarinfo.isdir()
- ]
- )
- self.assertTrue(tar_files, f"`{tar_file}` is empty.")
- self.assertSetEqual(install_files, tar_files)
- if __name__ == "__main__":
- unittest.main()
|