text: #!/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()
  