<!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('memreclaimImport', function() {
    var lines = [
      ' surfaceflinger-1155  ( 1155) [001] ...1 12839.528756: ' +
          'mm_vmscan_direct_reclaim_begin: order=0 ' +
          'may_writepage=1 ' +
                 'gfp_flags=GFP_KERNEL|GFP_NOWARN|GFP_ZERO|0x2',
      ' surfaceflinger-1155  ( 1155) [001] ...1 12839.531950: ' +
                 'mm_vmscan_direct_reclaim_end: nr_reclaimed=66',
      ' kswapd0-33    (   33) [001] ...1 12838.491407: mm_vmscan_kswapd_wake: nid=0 order=0', // @suppress longLineCheck
      ' kswapd0-33    (   33) [001] ...1 12838.529770: mm_vmscan_kswapd_wake: nid=0 order=2', // @suppress longLineCheck
      ' kswapd0-33    (   33) [001] ...1 12840.545737: mm_vmscan_kswapd_sleep: nid=0' // @suppress longLineCheck
    ];
    var m = new tr.Model(lines.join('\n'), false);
    assert.isFalse(m.hasImportWarnings);

    assert.equal(m.processes['1155'].threads['1155'].sliceGroup.length, 1);
    assert.equal(m.processes['33'].threads['33'].sliceGroup.length, 1);
  });
});
</script>
