#!/usr/bin/env python # Copyright 2020 The Chromium Authors. All rights reserved. # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. import copy import math import os import shutil import subprocess import tempfile import time import unittest import binary_sizes from common import DIR_SOURCE_ROOT class TestBinarySizes(unittest.TestCase): tmpdir = None @classmethod def setUpClass(cls): cls.tmpdir = tempfile.mkdtemp() @classmethod def tearDownClass(cls): shutil.rmtree(cls.tmpdir) # TODO(crbug.com/1145648): Add tests covering FAR file input and histogram # output. def testCommitFromBuildProperty(self): commit_position = binary_sizes.CommitPositionFromBuildProperty( 'refs/heads/master@{#819458}') self.assertEqual(commit_position, 819458) def testCompressedSize(self): """Verifies that the compressed file size can be extracted from the blobfs-compression output.""" uncompressed_file = tempfile.NamedTemporaryFile(delete=False) for line in range(200): uncompressed_file.write( 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. ' 'Sed eleifend') uncompressed_file.close() compressed_path = uncompressed_file.name + '.compressed' compressor_path = os.path.join(DIR_SOURCE_ROOT, 'third_party', 'fuchsia-sdk', 'sdk', 'tools', 'x64', 'blobfs-compression') subprocess.call([compressor_path, uncompressed_file.name, compressed_path]) self.assertEqual(binary_sizes.CompressedSize(uncompressed_file.name), os.path.getsize(compressed_path)) os.remove(uncompressed_file.name) os.remove(compressed_path) if __name__ == '__main__': unittest.main()