• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1/*
2 * Copyright (C) 2022 Huawei Device Co., Ltd.
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
16import { TabPaneXpowerGpuFreq } from '../../../../../../src/trace/component/trace/sheet/xpower/TabPaneXpowerGpuFreq';
17import { TraceRow } from '../../../../../../src/trace/component/trace/base/TraceRow';
18import { XpowerGpuFreqStruct } from '../../../../../../src/trace/database/ui-worker/ProcedureWorkerXpowerGpuFreq';
19jest.mock('../../../../../../src/js-heap/model/DatabaseStruct', () => {
20  return {};
21});
22jest.mock('../../../../../../src/trace/database/ui-worker/ProcedureWorkerSnapshot', () => {
23  return {};
24});
25jest.mock('../../../../../../src/trace/database/ui-worker/ProcedureWorker', () => {
26  return {};
27});
28jest.mock('../../../../../../src/trace/database/ui-worker/ProcedureWorkerCommon', () => {
29  return {};
30});
31jest.mock('../../../../../../src/trace/component/SpSystemTrace', () => {
32  return {};
33});
34jest.mock('../../../../../../src/trace/bean/FrameChartStruct', () => {
35  return {};
36});
37jest.mock('../../../../../../src/trace/bean/NativeHook', () => {
38  return {};
39});
40jest.mock('../../../../../../src/trace/database/ui-worker/cpu/ProcedureWorkerCPU', () => {
41  return {};
42});
43jest.mock('../../../../../../src/trace/bean/BoxSelection', () => {
44  return {};
45});
46window.ResizeObserver =
47  window.ResizeObserver ||
48  jest.fn().mockImplementation(() => ({
49    disconnect: jest.fn(),
50    observe: jest.fn(),
51    unobserve: jest.fn(),
52  }));
53const intersectionObserverMock = () => ({
54  observe: () => null,
55});
56window.IntersectionObserver = jest.fn().mockImplementation(intersectionObserverMock);
57describe('TabPaneXpowerGpuFreq', () => {
58  let tabpane = new TabPaneXpowerGpuFreq();
59  let traceRow = new TraceRow<XpowerGpuFreqStruct>();
60  traceRow.rowId = 'gpu-frequency';
61  tabpane.initElements();
62  const mockParentElement = document.createElement('div');
63  mockParentElement.style.height = '100px';
64  Object.defineProperty(tabpane, 'parentElement', {
65    value: mockParentElement,
66    writable: true,
67  });
68  tabpane.initElements = jest.fn();
69  tabpane.init = jest.fn();
70  it('TabPaneXpowerGpuFreqTest01', () => {
71    expect(tabpane.initElements()).toBeUndefined();
72    expect(tabpane.connectedCallback()).toBeUndefined();
73  });
74  it('TabPaneXpowerGpuFreqTest03', () => {
75    expect(tabpane.sortByColumn({ key: 'maxRunTime', sort: 0 })).toBeUndefined();
76    expect(tabpane.sortByColumn({ key: 'avgRunTimeStr', sort: 1 })).toBeUndefined();
77    expect(tabpane.sortByColumn({ key: 'name', sort: 2 })).toBeUndefined();
78  });
79  it('TabPaneXpowerGpuFreqTest04', () => {
80    expect(tabpane.setSortKey('avgRunTimeStr')).toBe('avgRunTime');
81    expect(tabpane.setSortKey('maxRunTimeStr')).toBe('maxRunTime');
82    expect(tabpane.setSortKey('minRunTimeStr')).toBe('minRunTime');
83    expect(tabpane.setSortKey('avgIdleTimeStr')).toBe('avgIdleTime');
84    expect(tabpane.setSortKey('maxIdleTimeStr')).toBe('maxIdleTime');
85    expect(tabpane.setSortKey('minIdleTimeStr')).toBe('minIdleTime');
86    expect(tabpane.setSortKey('startTimeStr')).toBe('startNS');
87    expect(tabpane.setSortKey('')).toBe('');
88  });
89  it('TabPaneXpowerGpuFreqTest05', () => {
90    let res = [
91      {
92        frequency: 10,
93        count: 10,
94        avgRunTime: 10,
95        maxRunTime: 10,
96        minRunTime: 10,
97        avgIdleTime: 10,
98        maxIdleTime: 10,
99        minIdleTime: 10,
100        avgRunTimeStr: '',
101        maxRunTimeStr: '',
102        minRunTimeStr: '',
103        avgIdleTimeStr: '',
104        maxIdleTimeStr: '',
105        minIdleTimeStr: '',
106        runTime: 10,
107        value: 10,
108        startNS: 10,
109        dur: 10,
110        valueType: '10',
111        idleTime: 10,
112        runTimeStr: '10',
113        idleTimeStr: '10',
114        startTimeStr: '10',
115        translateY: 10,
116        frame: undefined,
117        isHover: false,
118      },
119    ];
120    let tabXpowerGpuFreqStruct = [
121      {
122        frequency: 10,
123        count: 1,
124        avgRunTime: 10,
125        maxRunTime: 10,
126        minRunTime: 10,
127        avgIdleTime: 10,
128        maxIdleTime: 10,
129        minIdleTime: 10,
130        avgRunTimeStr: '10 ms ',
131        maxRunTimeStr: '10 ms ',
132        minRunTimeStr: '10 ms ',
133        avgIdleTimeStr: '10 ms ',
134        maxIdleTimeStr: '10 ms ',
135        minIdleTimeStr: '10 ms ',
136      },
137    ];
138    expect(tabpane.createTabXpowerGpuFreqStruct(res)).toEqual(tabXpowerGpuFreqStruct);
139  });
140});
141