Skip to content

Commit aa4d826

Browse files
LalitMagantiGerrit Code Review
authored and
Gerrit Code Review
committed
Merge "ui: add test for CPU and thread funcgraph traces" into main
2 parents 81f26b6 + ae67458 commit aa4d826

File tree

4 files changed

+54
-0
lines changed

4 files changed

+54
-0
lines changed

test/data/ui-funcgraph.pftrace.sha256

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
4262c95bce220236289f70ec66f7c97b2133eefe6d380d09c6cc7217a41309c4
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
83a8d8d5c20c69bd5abaffdf9ec33f079f90f7617f7a81d8f79da7c4e3570c13
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
a25fb0bb6e777f524ef78b60fbe54421348bb9815630d3dee6720b09ed3030f0

ui/src/test/funcgraph_trace.test.ts

+51
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
// Copyright (C) 2025 The Android Open Source Project
2+
//
3+
// Licensed under the Apache License, Version 2.0 (the "License");
4+
// you may not use this file except in compliance with the License.
5+
// You may obtain a copy of the License at
6+
//
7+
// http://www.apache.org/licenses/LICENSE-2.0
8+
//
9+
// Unless required by applicable law or agreed to in writing, software
10+
// distributed under the License is distributed on an "AS IS" BASIS,
11+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12+
// See the License for the specific language governing permissions and
13+
// limitations under the License.
14+
15+
import {test, Page} from '@playwright/test';
16+
import {PerfettoTestHelper} from './perfetto_ui_test_helper';
17+
18+
test.describe.configure({mode: 'serial'});
19+
20+
let pth: PerfettoTestHelper;
21+
let page: Page;
22+
23+
test.beforeAll(async ({browser}, _testInfo) => {
24+
page = await browser.newPage();
25+
pth = new PerfettoTestHelper(page);
26+
await pth.openTraceFile('ui-funcgraph.pftrace');
27+
});
28+
29+
test('cpu funcgraph', async () => {
30+
const grp = pth.locateTrack('CPU');
31+
await grp.scrollIntoViewIfNeeded();
32+
await pth.toggleTrackGroup(grp);
33+
const funcgraphGrp = pth.locateTrack('CPU/Funcgraph', grp);
34+
await funcgraphGrp.scrollIntoViewIfNeeded();
35+
await pth.toggleTrackGroup(funcgraphGrp);
36+
const funcgraph = pth.locateTrack(
37+
'CPU/Funcgraph/swapper4 -funcgraph',
38+
funcgraphGrp,
39+
);
40+
await funcgraph.scrollIntoViewIfNeeded();
41+
await pth.waitForIdleAndScreenshot('cpu_funcgraph.png');
42+
});
43+
44+
test('thread funcgraph', async () => {
45+
const grp = pth.locateTrack('iperf 3442');
46+
await grp.scrollIntoViewIfNeeded();
47+
await pth.toggleTrackGroup(grp);
48+
const funcgraph = pth.locateTrack('iperf 3442/Funcgraph (3450)', grp);
49+
await funcgraph.scrollIntoViewIfNeeded();
50+
await pth.waitForIdleAndScreenshot('thread_funcgraph.png');
51+
});

0 commit comments

Comments
 (0)