summaryrefslogtreecommitdiffstats
path: root/third_party/libwebrtc/build/fuchsia/binary_sizes_test.py
blob: 962e4c912384666b0fb03a1c468b06feeb0a67f3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
#!/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()