<!DOCTYPE html>
<!--
Copyright (c) 2013 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.
-->

<link rel="import" href="/core/test_utils.html">
<link rel="import" href="/extras/importer/linux_perf/ftrace_importer.html">

<script>
'use strict';

tr.b.unittest.testSuite(function() { // @suppress longLineCheck
  test('exynos5Bus', function() {
    var lines = [
      's3c-fb-vsync-85    [001] d..2  8116.730115: memory_bus_usage: ' +
          'bus=RIGHT rw_bytes=0 r_bytes=0 w_bytes=0 cycles=2681746 ns=16760792',

      's3c-fb-vsync-85    [001] d..2  8116.730118: memory_bus_usage: ' +
          'bus=CPU rw_bytes=2756608 r_bytes=2267328 w_bytes=491328 ' +
          'cycles=6705198 ns=16763375',

      's3c-fb-vsync-85    [001] d..2  8116.746788: memory_bus_usage: ' +
          'bus=DDR_C rw_bytes=2736128 r_bytes=2260864 w_bytes=479248 ' +
          'cycles=6670677 ns=16676375',

      's3c-fb-vsync-85    [001] d..2  8116.746790: memory_bus_usage: ' +
          'bus=DDR_R1 rw_bytes=31457280 r_bytes=31460912 w_bytes=0 ' +
          'cycles=6670521 ns=16676500',

      's3c-fb-vsync-85    [001] d..2  8116.746792: memory_bus_usage: ' +
          'bus=DDR_L rw_bytes=16953344 r_bytes=16731088 w_bytes=223664 ' +
          'cycles=6669885 ns=16674833',

      's3c-fb-vsync-85    [001] d..2  8116.746793: memory_bus_usage: ' +
          'bus=RIGHT rw_bytes=0 r_bytes=0 w_bytes=0 cycles=2667378 ns=16671250',

      's3c-fb-vsync-85    [001] d..2  8116.746798: memory_bus_usage: ' +
          'bus=CPU rw_bytes=2797568 r_bytes=2309424 w_bytes=491968 ' +
          'cycles=6672156 ns=16680458',

      's3c-fb-vsync-85    [001] d..2  8116.763521: memory_bus_usage: ' +
          'bus=DDR_C rw_bytes=2408448 r_bytes=1968448 w_bytes=441456 ' +
          'cycles=6689562 ns=16723458',

      's3c-fb-vsync-85    [001] d..2  8116.763523: memory_bus_usage: ' +
          'bus=DDR_R1 rw_bytes=31490048 r_bytes=31493360 w_bytes=0 ' +
          'cycles=6690012 ns=16725083',

      's3c-fb-vsync-85    [001] d..2  8116.763525: memory_bus_usage: ' +
          'bus=DDR_L rw_bytes=16941056 r_bytes=16719136 w_bytes=223472 ' +
          'cycles=6690156 ns=16725375'

    ];
    var m = new tr.Model(lines.join('\n'), false);
    assert.isFalse(m.hasImportWarnings);

    var counters = m.getAllCounters();
    assert.equal(counters.length, 10);

    assert.equal(counters[0].series[0].samples.length, 2);
  });
});
</script>

