summaryrefslogtreecommitdiff
path: root/systrace/catapult/telemetry/telemetry/internal/platform/profiler/trace_profiler_unittest.py
blob: efacad7c0bc930caffe6b9b0f4d1d0f3e69d02ba (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
# Copyright 2015 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 json
import os
import shutil
import tempfile
import zipfile

from telemetry.internal.platform.profiler import trace_profiler
from telemetry.testing import tab_test_case


class TestTraceProfiler(tab_test_case.TabTestCase):

  def testTraceProfiler(self):
    try:
      out_dir = tempfile.mkdtemp()
      profiler = trace_profiler.TraceProfiler(
          self._browser._browser_backend,
          self._browser._platform_backend,
          os.path.join(out_dir, 'trace'),
          {})
      result = profiler.CollectProfile()[0]
      self.assertTrue(zipfile.is_zipfile(result))
      with zipfile.ZipFile(result) as z:
        self.assertEquals(len(z.namelist()), 1)
        with z.open(z.namelist()[0]) as f:
          json.load(f)
    finally:
      shutil.rmtree(out_dir)