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
666a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis'use strict';
766a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis
866a37686207944273ced825e0e8b6b6375f8c3deJamie Gennisbase.require('tracing.test_utils');
966a37686207944273ced825e0e8b6b6375f8c3deJamie Gennisbase.require('tracing.importer.linux_perf_importer');
1066a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis
1166a37686207944273ced825e0e8b6b6375f8c3deJamie Gennisbase.unittest.testSuite('tracing.importer.linux_perf.sync_parser', function() { // @suppress longLineCheck
1266a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis  test('syncEventImport', function() {
1366a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis    var lines = [
1466a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis      's3c-fb-92            (     0) [000] ...1  7206.550061: sync_timeline: name=s3c-fb value=7094', // @suppress longLineCheck
1566a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis      'TimedEventQueue-2700 (     0) [001] ...1  7206.569027: sync_wait: begin name=SurfaceView:6 state=1', // @suppress longLineCheck
1666a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis      'TimedEventQueue-2700 (     0) [001] ...1  7206.569038: sync_pt: name=malitl_124_0x40b6406c value=7289', // @suppress longLineCheck
1766a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis      'TimedEventQueue-2700 (     0) [001] ...1  7206.569056: sync_pt: name=exynos-gsc.0-src value=25', // @suppress longLineCheck
1866a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis      'TimedEventQueue-2700 (     0) [001] ...1  7206.569068: sync_wait: end name=SurfaceView:6 state=1', // @suppress longLineCheck
1966a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis      'irq/128-s5p-mfc-62   (     0) [000] d..3  7206.572402: sync_timeline: name=vb2 value=37', // @suppress longLineCheck
2066a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis      'irq/128-s5p-mfc-62   (     0) [000] d..3  7206.572475: sync_timeline: name=vb2 value=33', // @suppress longLineCheck
2166a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis      'SurfaceFlinger-225   (     0) [001] ...1  7206.584769: sync_timeline: name=malitl_124_0x40b6406c value=7290', // @suppress longLineCheck
2266a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis      'kworker/u:5-2269     (     0) [000] ...1  7206.586745: sync_wait: begin name=display state=1', // @suppress longLineCheck
2366a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis      'kworker/u:5-2269     (     0) [000] ...1  7206.586750: sync_pt: name=s3c-fb value=7093', // @suppress longLineCheck
2466a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis      'kworker/u:5-2269     (     0) [000] ...1  7206.586760: sync_wait: end name=display state=1', // @suppress longLineCheck
2566a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis      's3c-fb-92            (     0) [000] ...1  7206.587193: sync_wait: begin name=vb2 state=0', // @suppress longLineCheck
2666a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis      's3c-fb-92            (     0) [000] ...1  7206.587198: sync_pt: name=exynos-gsc.0-dst value=27', // @suppress longLineCheck
2766a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis      '<idle>-0             (     0) [000] d.h4  7206.591133: sync_timeline: name=exynos-gsc.0-src value=27', // @suppress longLineCheck
2866a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis      '<idle>-0             (     0) [000] d.h4  7206.591152: sync_timeline: name=exynos-gsc.0-dst value=27', // @suppress longLineCheck
2966a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis      's3c-fb-92            (     0) [000] ...1  7206.591244: sync_wait: end name=vb2 state=1' // @suppress longLineCheck
3066a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis    ];
3166a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis
3266a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis    var m = new tracing.TraceModel(lines.join('\n'), false);
3366a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis    assertEquals(0, m.importErrors.length);
3466a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis
3566a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis    var threads = m.getAllThreads();
3666a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis    assertEquals(4, threads.length);
3766a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis
3866a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis    var threads = m.findAllThreadsNamed('s3c-fb');
3966a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis    assertEquals(1, threads.length);
4066a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis    assertEquals(1, threads[0].sliceGroup.length);
4166a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis
4266a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis    var threads = m.findAllThreadsNamed('kworker/u:5');
4366a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis    assertEquals(1, threads.length);
4466a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis    assertEquals(1, threads[0].sliceGroup.length);
4566a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis    assertEquals('fence_wait("display")',
4666a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis                 threads[0].sliceGroup.slices[0].title);
4766a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis  });
4866a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis});
49