<!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('maliDDKImport', function() {
    var linesNoThread = [
      // Row 1 open
      '           chrome-1780  [001] ...1   28.562633: tracing_mark_write: ' +
          'mali_driver: cros_trace_print_enter: ' +
          'gles/src/dispatch/mali_gles_dispatch_entrypoints.c992: ' +
          'glTexSubImage2D',
      // Row 2 open
      '           chrome-1780  [001] ...1   28.562655: tracing_mark_write: ' +
          'mali_driver: cros_trace_print_enter: ' +
          'gles/src/texture/mali_gles_texture_api.c996: ' +
          'gles_texture_tex_sub_image_2d',
      // Row 3 open
      '            chrome-1780  [001] ...1   28.562671: tracing_mark_write: ' +
          'mali_driver: cros_trace_print_enter: ' +
          'gles/src/texture/mali_gles_texture_slave.c295: ' +
          'gles_texturep_slave_map_master',
      // Row 3 close
      '           chrome-1780  [001] ...1   28.562684: tracing_mark_write: ' +
          'mali_driver: cros_trace_print_exit: ' +
          'gles/src/texture/mali_gles_texture_slave.c295: ',
      // Row 3 open
      '           chrome-1780  [001] ...1   28.562700: tracing_mark_write: ' +
          'mali_driver: cros_trace_print_enter: ' +
          'gles/src/texture/mali_gles_texture_slave.c1505: ' +
          'gles2_texturep_upload_2d',
      // Row 4 open
      '           chrome-1780  [001] ...1   28.562726: tracing_mark_write: ' +
          'mali_driver: cros_trace_print_enter: ' +
          'gles/src/texture/mali_gles_texture_slave.c1612: ' +
          'gles2_texturep_upload_2d: pixel array: wait for dependencies',
      // Row 5 open
      '           chrome-1780  [001] ...1   28.562742: tracing_mark_write: ' +
          'mali_driver: cros_trace_print_enter: ' +
          'cobj/src/mali_cobj_surface_operations.c1693: ' +
          'cobj_convert_pixels_to_surface',
      // Row 6 open
      '           chrome-1780  [001] ...1   28.562776: tracing_mark_write: ' +
          'mali_driver: cros_trace_print_enter: ' +
          'cobj/src/mali_cobj_surface_operations.c1461: ' +
          'cobj_convert_pixels',
      // Row 7 open
      '           chrome-1780  [001] ...1   28.562791: tracing_mark_write: ' +
          'mali_driver: cros_trace_print_enter: ' +
          'cobj/src/mali_cobj_surface_operations.c1505: ' +
          'cobj_convert_pixels: fast-path linear copy',
      // Row 8 open
      '           chrome-1780  [001] ...1   28.562808: tracing_mark_write: ' +
          'mali_driver: cros_trace_print_enter: ' +
          'cobj/src/mali_cobj_surface_operations.c1511: ' +
          'cobj_convert_pixels: reorder-only',
      // Row 8 close
      '           chrome-1780  [001] ...1   28.563383: tracing_mark_write: ' +
          'mali_driver: cros_trace_print_exit: ' +
          'cobj/src/mali_cobj_surface_operations.c1511',
      // Row 7 close
      '           chrome-1780  [001] ...1   28.563397: tracing_mark_write: ' +
          'mali_driver: cros_trace_print_exit: ' +
          'cobj/src/mali_cobj_surface_operations.c1505',
      // Row 6 close
      '           chrome-1780  [001] ...1   28.563409: tracing_mark_write: ' +
          'mali_driver: cros_trace_print_exit: ' +
          'cobj/src/mali_cobj_surface_operations.c1461',
      // Row 5 close
      '           chrome-1780  [001] ...1   28.563438: tracing_mark_write: ' +
          'mali_driver: cros_trace_print_exit: ' +
          'cobj/src/mali_cobj_surface_operations.c1693',
      // Row 4 close
      '           chrome-1780  [001] ...1   28.563451: tracing_mark_write: ' +
          'mali_driver: cros_trace_print_exit: ' +
          'gles/src/texture/mali_gles_texture_slave.c1612',
      // Row 3 close
      '           chrome-1780  [001] ...1   28.563462: tracing_mark_write: ' +
          'mali_driver: cros_trace_print_exit: ' +
          'gles/src/texture/mali_gles_texture_slave.c1505',
      // Row 2 close
      '           chrome-1780  [001] ...1   28.563475: tracing_mark_write: ' +
          'mali_driver: cros_trace_print_exit: ' +
          'gles/src/texture/mali_gles_texture_api.c996',
      // Row 1 close
      '           chrome-1780  [001] ...1   28.563486: tracing_mark_write: ' +
          'mali_driver: cros_trace_print_exit: ' +
          'gles/src/dispatch/mali_gles_dispatch_entrypoints.c992'
    ];

    var linesWithThread = [
      // Row 1 open
      '           chrome-1780  [001] ...1   28.562633: tracing_mark_write: ' +
          'mali_driver: (mali-1878934320) cros_trace_print_enter: ' +
          'gles/src/dispatch/mali_gles_dispatch_entrypoints.c@992: ' +
          'glTexSubImage2D',
      // Row 2 open
      '           chrome-1780  [001] ...1   28.562655: tracing_mark_write: ' +
          'mali_driver: (mali-1878934320) cros_trace_print_enter: ' +
          'gles/src/texture/mali_gles_texture_api.c@996: ' +
          'gles_texture_tex_sub_image_2d',
      // Row 3 open
      '            chrome-1780  [001] ...1   28.562671: tracing_mark_write: ' +
          'mali_driver: (mali-1878934320) cros_trace_print_enter: ' +
          'gles/src/texture/mali_gles_texture_slave.c@295: ' +
          'gles_texturep_slave_map_master',
      // Row 3 close
      '           chrome-1780  [001] ...1   28.562684: tracing_mark_write: ' +
          'mali_driver: (mali-1878934320) cros_trace_print_exit: ' +
          'gles/src/texture/mali_gles_texture_slave.c@295: ',
      // Row 3 open
      '           chrome-1780  [001] ...1   28.562700: tracing_mark_write: ' +
          'mali_driver: (mali-1878934320) cros_trace_print_enter: ' +
          'gles/src/texture/mali_gles_texture_slave.c@1505: ' +
          'gles2_texturep_upload_2d',
      // Row 4 open
      '           chrome-1780  [001] ...1   28.562726: tracing_mark_write: ' +
          'mali_driver: (mali-1878934320) cros_trace_print_enter: ' +
          'gles/src/texture/mali_gles_texture_slave.c@1612: ' +
          'gles2_texturep_upload_2d: pixel array: wait for dependencies',
      // Row 5 open
      '           chrome-1780  [001] ...1   28.562742: tracing_mark_write: ' +
          'mali_driver: (mali-1878934320) cros_trace_print_enter: ' +
          'cobj/src/mali_cobj_surface_operations.c@1693: ' +
          'cobj_convert_pixels_to_surface',
      // Row 6 open
      '           chrome-1780  [001] ...1   28.562776: tracing_mark_write: ' +
          'mali_driver: (mali-1878934320) cros_trace_print_enter: ' +
          'cobj/src/mali_cobj_surface_operations.c@1461: ' +
          'cobj_convert_pixels',
      // Row 7 open
      '           chrome-1780  [001] ...1   28.562791: tracing_mark_write: ' +
          'mali_driver: (mali-1878934320) cros_trace_print_enter: ' +
          'cobj/src/mali_cobj_surface_operations.c@1505: ' +
          'cobj_convert_pixels: fast-path linear copy',
      // Row 8 open
      '           chrome-1780  [001] ...1   28.562808: tracing_mark_write: ' +
          'mali_driver: (mali-1878934320) cros_trace_print_enter: ' +
          'cobj/src/mali_cobj_surface_operations.c@1511: ' +
          'cobj_convert_pixels: reorder-only',
      // Row 8 close
      '           chrome-1780  [001] ...1   28.563383: tracing_mark_write: ' +
          'mali_driver: (mali-1878934320) cros_trace_print_exit: ' +
          'cobj/src/mali_cobj_surface_operations.c@1511',
      // Row 7 close
      '           chrome-1780  [001] ...1   28.563397: tracing_mark_write: ' +
          'mali_driver: (mali-1878934320) cros_trace_print_exit: ' +
          'cobj/src/mali_cobj_surface_operations.c@1505',
      // Row 6 close
      '           chrome-1780  [001] ...1   28.563409: tracing_mark_write: ' +
          'mali_driver: (mali-1878934320) cros_trace_print_exit: ' +
          'cobj/src/mali_cobj_surface_operations.c@1461',
      // Row 5 close
      '           chrome-1780  [001] ...1   28.563438: tracing_mark_write: ' +
          'mali_driver: (mali-1878934320) cros_trace_print_exit: ' +
          'cobj/src/mali_cobj_surface_operations.c@1693',
      // Row 4 close
      '           chrome-1780  [001] ...1   28.563451: tracing_mark_write: ' +
          'mali_driver: (mali-1878934320) cros_trace_print_exit: ' +
          'gles/src/texture/mali_gles_texture_slave.c@1612',
      // Row 3 close
      '           chrome-1780  [001] ...1   28.563462: tracing_mark_write: ' +
          'mali_driver: (mali-1878934320) cros_trace_print_exit: ' +
          'gles/src/texture/mali_gles_texture_slave.c@1505',
      // Row 2 close
      '           chrome-1780  [001] ...1   28.563475: tracing_mark_write: ' +
          'mali_driver: (mali-1878934320) cros_trace_print_exit: ' +
          'gles/src/texture/mali_gles_texture_api.c@996',
      // Row 1 close
      '           chrome-1780  [001] ...1   28.563486: tracing_mark_write: ' +
          'mali_driver: (mali-1878934320) cros_trace_print_exit: ' +
          'gles/src/dispatch/mali_gles_dispatch_entrypoints.c@992'
    ];
    var traceNoThread =
        new tr.Model(linesNoThread.join('\n'), false);
    var traceWithThread =
        new tr.Model(linesWithThread.join('\n'), false);
    assert.isFalse(traceNoThread.hasImportWarnings);
    assert.isFalse(traceWithThread.hasImportWarnings);

    var threadsNoThread = traceNoThread.getAllThreads();
    var threadsWithThread = traceWithThread.getAllThreads();
    assert.equal(threadsNoThread.length, 1);
    assert.equal(threadsWithThread.length, 1);

    var maliThreadNoThread = threadsNoThread[0];
    var maliThreadWithThread = threadsWithThread[0];
    assert.equal(maliThreadNoThread.tid, 'mali');
    assert.equal(maliThreadWithThread.tid, 'mali-1878934320');
    assert.equal(maliThreadNoThread.sliceGroup.length, 9);
    assert.equal(maliThreadWithThread.sliceGroup.length, 9);
  });

  test('DVFSFrequencyImport', function() {
    var lines = [
      '     kworker/u:0-5     [001] ....  1174.839552: mali_dvfs_set_clock: ' +
                     'frequency=266',
      '     kworker/u:0-5     [000] ....  1183.840486: mali_dvfs_set_clock: ' +
                     'frequency=400'
    ];
    var m = new tr.Model(lines.join('\n'), false);
    assert.isFalse(m.hasImportWarnings);

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

    var c0 = counters[0];
    assert.equal(c0.name, 'DVFS Frequency');
    assert.equal(c0.series[0].samples.length, 2);
  });

  test('DVFSVoltageImport', function() {
    var lines = [
      '    kworker/u:0-5     [001] ....  1174.839562: mali_dvfs_set_voltage: ' +
                     'voltage=937500',
      '    kworker/u:0-5     [000] ....  1183.840009: mali_dvfs_set_voltage: ' +
                     'voltage=1100000'
    ];
    var m = new tr.Model(lines.join('\n'), false);
    assert.isFalse(m.hasImportWarnings);

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

    var c0 = counters[0];
    assert.equal(c0.name, 'DVFS Voltage');
    assert.equal(c0.series[0].samples.length, 2);
  });

  test('DVFSUtilizationImport', function() {
    var lines = [
      '     kworker/u:0-5     [001] ....  1174.839552: mali_dvfs_event: ' +
                     'utilization=7',
      '     kworker/u:0-5     [000] ....  1183.840486: mali_dvfs_event: ' +
                     'utilization=37'
    ];
    var m = new tr.Model(lines.join('\n'), false);
    assert.isFalse(m.hasImportWarnings);

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

    var c0 = counters[0];
    assert.equal(c0.name, 'DVFS Utilization');
    assert.equal(c0.series[0].samples.length, 2);
  });

  test('maliHWCImport', function() {
    var lines = [
      '     kworker/u:0-5     [000] ....    78.896588: ' +
                     'mali_hwc_ACTIVE: val=238',
      '     kworker/u:0-5     [000] ....    79.046889: ' +
                     'mali_hwc_ARITH_CYCLES_L0: val=1967',
      '     kworker/u:0-5     [000] ....    79.046888: ' +
                     'mali_hwc_ARITH_CYCLES_REG: val=136',
      '     kworker/u:0-5     [000] ....    79.046890: ' +
                     'mali_hwc_ARITH_FRAG_DEPEND: val=19676',
      '     kworker/u:0-5     [000] ....    79.046886: ' +
                     'mali_hwc_ARITH_WORDS: val=255543',
      '     kworker/u:0-5     [000] ....    79.046920: ' +
                     'mali_hwc_AXI_BEATS_READ: val=257053',
      '     kworker/u:0-5     [000] ....    78.896594: ' +
                     'mali_hwc_AXI_TLB_STALL: val=1',
      '     kworker/u:0-5     [000] ....    78.946646: ' +
                     'mali_hwc_AXI_TLB_TRANSACTION: val=4',
      '     kworker/u:0-5     [000] ....    79.046853: ' +
                     'mali_hwc_BACK_FACING: val=104',
      '     kworker/u:0-5     [000] ....    79.046880: ' +
                     'mali_hwc_COMPUTE_ACTIVE: val=17462',
      '     kworker/u:0-5     [000] ....    79.046884: ' +
                     'mali_hwc_COMPUTE_CYCLES_DESC: val=3933',
      '     kworker/u:0-5     [000] ....    79.046881: ' +
                     'mali_hwc_COMPUTE_TASKS: val=15',
      '     kworker/u:0-5     [000] ....    79.046883: ' +
                     'mali_hwc_COMPUTE_THREADS: val=60',
      '     kworker/u:0-5     [000] ....    79.046860: ' +
                     'mali_hwc_FRAG_ACTIVE: val=690986',
      '     kworker/u:0-5     [000] ....    79.046864: ' +
                     'mali_hwc_FRAG_CYCLE_DESC: val=13980',
      '     kworker/u:0-5     [000] ....    79.046876: ' +
                     'mali_hwc_FRAG_CYCLE_NO_TILE: val=3539',
      '     kworker/u:0-5     [000] ....    79.046865: ' +
                     'mali_hwc_FRAG_CYCLES_PLR: val=1499',
      '     kworker/u:0-5     [000] ....    79.046869: ' +
                     'mali_hwc_FRAG_CYCLES_RAST: val=1999',
      '     kworker/u:0-5     [000] ....    79.046868: ' +
                     'mali_hwc_FRAG_CYCLES_TRISETUP: val=22353',
      '     kworker/u:0-5     [000] ....    79.046867: ' +
                     'mali_hwc_FRAG_CYCLES_VERT: val=20763',
      '     kworker/u:0-5     [000] ....    79.046872: ' +
                     'mali_hwc_FRAG_DUMMY_THREADS: val=1968',
      '     kworker/u:0-5     [000] ....    79.046877: ' +
                     'mali_hwc_FRAG_NUM_TILES: val=1840',
      '     kworker/u:0-5     [000] ....    79.046862: ' +
                     'mali_hwc_FRAG_PRIMATIVES: val=3752',
      '     kworker/u:0-5     [000] ....    79.046863: ' +
                     'mali_hwc_FRAG_PRIMATIVES_DROPPED: val=18',
      '     kworker/u:0-5     [000] ....    79.046874: ' +
                     'mali_hwc_FRAG_QUADS_EZS_TEST: val=117925',
      '     kworker/u:0-5     [000] ....    79.046873: ' +
                     'mali_hwc_FRAG_QUADS_RAST: val=117889',
      '     kworker/u:0-5     [000] ....    79.046870: ' +
                     'mali_hwc_FRAG_THREADS: val=471507',
      '     kworker/u:0-5     [000] ....    79.046879: ' +
                     'mali_hwc_FRAG_TRANS_ELIM: val=687',
      '     kworker/u:0-5     [000] ....    80.315162: ' +
                     'mali_hwc_FRONT_FACING: val=56',
      '     kworker/u:0-5     [000] ....    78.896582: ' +
                     'mali_hwc_GPU_ACTIVE: val=1316',
      '     kworker/u:0-5     [000] ....    78.896584: ' +
                     'mali_hwc_IRQ_ACTIVE: val=17',
      '     kworker/u:0-5     [000] ....    79.046834: ' +
                     'mali_hwc_JS0_ACTIVE: val=709444',
      '     kworker/u:0-5     [000] ....    79.046831: ' +
                     'mali_hwc_JS0_JOBS: val=2',
      '     kworker/u:0-5     [000] ....    79.046832: ' +
                     'mali_hwc_JS0_TASKS: val=7263',
      '     kworker/u:0-5     [000] ....    79.046836: ' +
                     'mali_hwc_JS0_WAIT_DEPEND: val=665876',
      '     kworker/u:0-5     [000] ....    79.046835: ' +
                     'mali_hwc_JS0_WAIT_ISSUE: val=910',
      '     kworker/u:0-5     [000] ....    79.046840: ' +
                     'mali_hwc_JS1_ACTIVE: val=153980',
      '     kworker/u:0-5     [000] ....    79.046838: ' +
                     'mali_hwc_JS1_JOBS: val=133',
      '     kworker/u:0-5     [000] ....    79.046839: ' +
                     'mali_hwc_JS1_TASKS: val=128',
      '     kworker/u:0-5     [000] ....    79.046843: ' +
                     'mali_hwc_JS1_WAIT_FINISH: val=74404',
      '     kworker/u:0-5     [000] ....    79.046842: ' +
                     'mali_hwc_JS1_WAIT_ISSUE: val=10146',
      '     kworker/u:0-5     [000] ....    78.896603: ' +
                     'mali_hwc_L2_ANY_LOOKUP: val=22',
      '     kworker/u:0-5     [000] ....    79.046942: ' +
                     'mali_hwc_L2_CLEAN_MISS: val=116',
      '     kworker/u:0-5     [000] ....    79.063515: ' +
                     'mali_hwc_L2_EXT_AR_STALL: val=9',
      '     kworker/u:0-5     [000] ....    78.963384: ' +
                     'mali_hwc_L2_EXT_BARRIER: val=1',
      '     kworker/u:0-5     [000] ....    79.063516: ' +
                     'mali_hwc_L2_EXT_R_BUF_FULL: val=43',
      '     kworker/u:0-5     [000] ....    78.896611: ' +
                     'mali_hwc_L2_EXT_READ: val=4',
      '     kworker/u:0-5     [000] ....    78.896612: ' +
                     'mali_hwc_L2_EXT_READ_LINE: val=4',
      '     kworker/u:0-5     [000] ....    79.046956: ' +
                     'mali_hwc_L2_EXT_R_RAW: val=1',
      '     kworker/u:0-5     [000] ....    79.063518: ' +
                     'mali_hwc_L2_EXT_R_W_HAZARD: val=15',
      '     kworker/u:0-5     [000] ....    78.963381: ' +
                     'mali_hwc_L2_EXT_WRITE: val=25',
      '     kworker/u:0-5     [000] ....    79.046952: ' +
                     'mali_hwc_L2_EXT_WRITE_LINE: val=63278',
      '     kworker/u:0-5     [000] ....    78.963382: ' +
                     'mali_hwc_L2_EXT_WRITE_SMALL: val=1',
      '     kworker/u:0-5     [000] ....    79.814532: ' +
                     'mali_hwc_L2_EXT_W_STALL: val=9',
      '     kworker/u:0-5     [000] ....    78.896602: ' +
                     'mali_hwc_L2_READ_BEATS: val=16',
      '     kworker/u:0-5     [000] ....    78.896607: ' +
                     'mali_hwc_L2_READ_HIT: val=11',
      '     kworker/u:0-5     [000] ....    78.896604: ' +
                     'mali_hwc_L2_READ_LOOKUP: val=19',
      '     kworker/u:0-5     [000] ....    78.896606: ' +
                     'mali_hwc_L2_READ_REPLAY: val=2',
      '     kworker/u:0-5     [000] ....    79.046940: ' +
                     'mali_hwc_L2_READ_SNOOP: val=24',
      '     kworker/u:0-5     [000] ....    79.046959: ' +
                     'mali_hwc_L2_REPLAY_FULL: val=6629',
      '     kworker/u:0-5     [000] .N..    80.565684: ' +
                     'mali_hwc_L2_SNOOP_FULL: val=5',
      '     kworker/u:0-5     [000] ....    79.046937: ' +
                     'mali_hwc_L2_SREAD_LOOKUP: val=241',
      '     kworker/u:0-5     [000] ....    79.046944: ' +
                     'mali_hwc_L2_SWRITE_LOOKUP: val=133',
      '     kworker/u:0-5     [000] ....    78.896614: ' +
                     'mali_hwc_L2_TAG_HAZARD: val=4',
      '     kworker/u:0-5     [000] ....    78.963368: ' +
                     'mali_hwc_L2_WRITE_BEATS: val=96',
      '     kworker/u:0-5     [000] ....    79.046947: ' +
                     'mali_hwc_L2_WRITE_HIT: val=78265',
      '     kworker/u:0-5     [000] ....    78.896608: ' +
                     'mali_hwc_L2_WRITE_LOOKUP: val=3',
      '     kworker/u:0-5     [000] ....    79.046946: ' +
                     'mali_hwc_L2_WRITE_REPLAY: val=15879',
      '     kworker/u:0-5     [000] ....    79.046912: ' +
                     'mali_hwc_LSC_LINE_FETCHES: val=15',
      '     kworker/u:0-5     [000] ....    79.046909: ' +
                     'mali_hwc_LSC_READ_HITS: val=2961',
      '     kworker/u:0-5     [000] ....    79.046911: ' +
                     'mali_hwc_LSC_READ_MISSES: val=22',
      '     kworker/u:0-5     [000] ....    79.046914: ' +
                     'mali_hwc_LSC_SNOOPS: val=10',
      '     kworker/u:0-5     [000] ....    79.046893: ' +
                     'mali_hwc_LS_ISSUES: val=524219',
      '     kworker/u:0-5     [000] ....    79.046894: ' +
                     'mali_hwc_LS_REISSUES_MISS: val=439',
      '     kworker/u:0-5     [000] ....    79.046895: ' +
                     'mali_hwc_LS_REISSUES_VD: val=52007',
      '     kworker/u:0-5     [000] ....    79.046919: ' +
                     'mali_hwc_LS_TLB_HIT: val=3043',
      '     kworker/u:0-5     [000] ....    79.046918: ' +
                     'mali_hwc_LS_TLB_MISS: val=5',
      '     kworker/u:0-5     [000] ....    79.046891: ' +
                     'mali_hwc_LS_WORDS: val=471514',
      '     kworker/u:0-5     [000] ....    79.046925: ' +
                     'mali_hwc_MMU_HIT: val=771',
      '     kworker/u:0-5     [000] ....    79.046924: ' +
                     'mali_hwc_MMU_NEW_MISS: val=494',
      '     kworker/u:0-5     [000] ....    79.046922: ' +
                     'mali_hwc_MMU_REPLAY_MISS: val=841',
      '     kworker/u:0-5     [000] ....    79.046921: ' +
                     'mali_hwc_MMU_TABLE_WALK: val=3119',
      '     kworker/u:0-5     [000] ....    79.046848: ' +
                     'mali_hwc_POINTS: val=5',
      '     kworker/u:0-5     [000] ....    79.046856: ' +
                     'mali_hwc_PRIM_CLIPPED: val=70',
      '     kworker/u:0-5     [000] ....    79.046855: ' +
                     'mali_hwc_PRIM_CULLED: val=26',
      '     kworker/u:0-5     [000] ....    79.046854: ' +
                     'mali_hwc_PRIM_VISIBLE: val=109',
      '     kworker/u:0-5     [000] ....    79.046898: ' +
                     'mali_hwc_TEX_BUBBLES: val=24874',
      '     kworker/u:0-5     [000] ....    79.046905: ' +
                     'mali_hwc_TEX_RECIRC_DESC: val=5937',
      '     kworker/u:0-5     [000] ....    79.046904: ' +
                     'mali_hwc_TEX_RECIRC_FMISS: val=209450',
      '     kworker/u:0-5     [000] ....    78.896592: ' +
                     'mali_hwc_TEX_RECIRC_MULTI: val=238',
      '     kworker/u:0-5     [000] ....    79.046908: ' +
                     'mali_hwc_TEX_RECIRC_PMISS: val=9672',
      '     kworker/u:0-5     [000] ....    79.046903: ' +
                     'mali_hwc_TEX_THREADS: val=660900',
      '     kworker/u:0-5     [000] ....    79.046897: ' +
                     'mali_hwc_TEX_WORDS: val=471193',
      '     kworker/u:0-5     [000] ....    79.046901: ' +
                     'mali_hwc_TEX_WORDS_DESC: val=707',
      '     kworker/u:0-5     [000] ....    79.046900: ' +
                     'mali_hwc_TEX_WORDS_L0: val=32',
      '     kworker/u:0-5     [000] ....    79.046846: ' +
                     'mali_hwc_TRIANGLES: val=130',
      '     kworker/u:0-5     [000] ....    79.046885: ' +
                     'mali_hwc_TRIPIPE_ACTIVE: val=691001',
      '     kworker/u:0-5     [000] ....    78.896600: ' +
                     'mali_hwc_UTLB_NEW_MISS: val=6',
      '     kworker/u:0-5     [000] ....    78.896599: ' +
                     'mali_hwc_UTLB_REPLAY_FULL: val=248',
      '     kworker/u:0-5     [000] ....    78.896597: ' +
                     'mali_hwc_UTLB_REPLAY_MISS: val=1',
      '     kworker/u:0-5     [000] ....    78.896596: ' +
                     'mali_hwc_UTLB_STALL: val=1',
      '     kworker/u:0-5     [000] ....    79.046850: ' +
                     'mali_hwc_VCACHE_HIT: val=311',
      '     kworker/u:0-5     [000] ....    79.046851: ' +
                     'mali_hwc_VCACHE_MISS: val=70'
    ];
    var m = new tr.Model(lines.join('\n'), false);
    assert.isFalse(m.hasImportWarnings);

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

    // all counters should have 1 sample
    for (var tI = 0; tI < counters.length; tI++) {
      var counter = counters[tI];
      assert.equal(counter.series[0].samples.length, 1);
    }
    // TODO(sleffler) verify counter names? (not sure if it's worth the effort)
  });
});
</script>

