166a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis// Copyright (c) 2013 The Chromium Authors. All rights reserved.
266a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis// Use of this source code is governed by a BSD-style license that can be
366a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis// found in the LICENSE file.
466a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis
566a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis'use strict';
666a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis
766a37686207944273ced825e0e8b6b6375f8c3deJamie Gennisbase.require('tracing.test_utils');
866a37686207944273ced825e0e8b6b6375f8c3deJamie Gennisbase.require('tracing.importer.linux_perf_importer');
966a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis
1066a37686207944273ced825e0e8b6b6375f8c3deJamie Gennisbase.unittest.testSuite('tracing.importer.linux_perf.workqueue_parser', function() { // @suppress longLineCheck
1166a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis  test('workQueueImport', function() {
1266a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis    var lines = [
1366a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis      ' kworker/0:3-6880  [000]  2784.771958: workqueue_execute_start: ' +
1466a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis                 'work struct ffff8800a5083a20: function intel_unpin_work_fn',
1566a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis      ' kworker/0:3-6880  [000]  2784.771966: workqueue_execute_end: ' +
1666a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis                 'work struct ffff8800a5083a20',
1766a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis      ' kworker/1:2-7269  [001]  2784.805966: workqueue_execute_start: ' +
1866a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis                 'work struct ffff88014fb0f158: function do_dbs_timer',
1966a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis      ' kworker/1:2-7269  [001]  2784.805975: workqueue_execute_end: ' +
2066a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis                 'work struct ffff88014fb0f158'
2166a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis    ];
2266a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis    var m = new tracing.TraceModel(lines.join('\n'), false);
2366a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis    assertEquals(0, m.importErrors.length);
2466a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis
2566a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis    assertEquals(1, m.processes['6880'].threads['6880'].sliceGroup.length);
2666a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis    assertEquals(1, m.processes['7269'].threads['7269'].sliceGroup.length);
2766a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis  });
2866a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis});
29