1c7271240bb39a5a3209208ff2842b89258e33869Dan Willemsen// Copyright (c) 2013 The Chromium Authors. All rights reserved.
2c7271240bb39a5a3209208ff2842b89258e33869Dan Willemsen// Use of this source code is governed by a BSD-style license that can be
3c7271240bb39a5a3209208ff2842b89258e33869Dan Willemsen// found in the LICENSE file.
4c7271240bb39a5a3209208ff2842b89258e33869Dan Willemsen
5c7271240bb39a5a3209208ff2842b89258e33869Dan Willemsen'use strict';
6c7271240bb39a5a3209208ff2842b89258e33869Dan Willemsen
7c7271240bb39a5a3209208ff2842b89258e33869Dan Willemsenbase.require('tracing.test_utils');
8c7271240bb39a5a3209208ff2842b89258e33869Dan Willemsenbase.require('tracing.importer.linux_perf_importer');
9c7271240bb39a5a3209208ff2842b89258e33869Dan Willemsen
10c7271240bb39a5a3209208ff2842b89258e33869Dan Willemsenbase.unittest.testSuite('tracing.importer.linux_perf.irq_parser', function() { // @suppress longLineCheck
11c7271240bb39a5a3209208ff2842b89258e33869Dan Willemsen  test('irqImport', function() {
12c7271240bb39a5a3209208ff2842b89258e33869Dan Willemsen    var lines = [
13c7271240bb39a5a3209208ff2842b89258e33869Dan Willemsen      ' kworker/u4:1-31907 (31907) [001] d.h3 14063.748288: ' +
14c7271240bb39a5a3209208ff2842b89258e33869Dan Willemsen        'irq_handler_entry: irq=27 name=arch_timer',
15c7271240bb39a5a3209208ff2842b89258e33869Dan Willemsen      ' kworker/u4:1-31907 (31907) [001] dNh3 14063.748384: ' +
16c7271240bb39a5a3209208ff2842b89258e33869Dan Willemsen        'irq_handler_exit: irq=27 ret=handled',
17c7271240bb39a5a3209208ff2842b89258e33869Dan Willemsen      ' kworker/u4:2-31908 (31908) [000] ..s3 14063.477231: ' +
18c7271240bb39a5a3209208ff2842b89258e33869Dan Willemsen        'softirq_entry: vec=9 [action=RCU]',
19c7271240bb39a5a3209208ff2842b89258e33869Dan Willemsen      ' kworker/u4:2-31908 (31908) [000] ..s3 14063.477246: ' +
20c7271240bb39a5a3209208ff2842b89258e33869Dan Willemsen        'softirq_exit: vec=9 [action=RCU]',
21c7271240bb39a5a3209208ff2842b89258e33869Dan Willemsen    ];
22c7271240bb39a5a3209208ff2842b89258e33869Dan Willemsen    var m = new tracing.TraceModel(lines.join('\n'), false);
23c7271240bb39a5a3209208ff2842b89258e33869Dan Willemsen    assertEquals(0, m.importErrors.length);
24c7271240bb39a5a3209208ff2842b89258e33869Dan Willemsen
25c7271240bb39a5a3209208ff2842b89258e33869Dan Willemsen    var threads = m.getAllThreads();
26c7271240bb39a5a3209208ff2842b89258e33869Dan Willemsen    assertEquals(2, threads.length);
27c7271240bb39a5a3209208ff2842b89258e33869Dan Willemsen
28c7271240bb39a5a3209208ff2842b89258e33869Dan Willemsen    var threads = m.findAllThreadsNamed('irqs cpu 1');
29c7271240bb39a5a3209208ff2842b89258e33869Dan Willemsen    assertEquals(1, threads.length);
30c7271240bb39a5a3209208ff2842b89258e33869Dan Willemsen    assertEquals(1, threads[0].sliceGroup.length);
31c7271240bb39a5a3209208ff2842b89258e33869Dan Willemsen
32c7271240bb39a5a3209208ff2842b89258e33869Dan Willemsen    var threads = m.findAllThreadsNamed('softirq cpu 0');
33c7271240bb39a5a3209208ff2842b89258e33869Dan Willemsen    assertEquals(1, threads.length);
34c7271240bb39a5a3209208ff2842b89258e33869Dan Willemsen    assertEquals(1, threads[0].sliceGroup.length);
35c7271240bb39a5a3209208ff2842b89258e33869Dan Willemsen  });
36c7271240bb39a5a3209208ff2842b89258e33869Dan Willemsen});
37