• 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
16jest.mock('../../../../src/trace/component/SpSystemTrace', () => {
17  return {};
18});
19import { SpLtpoChart } from '../../../../src/trace/component/chart/SpLTPO';
20import { LtpoStruct } from '../../../../src/trace/database/ui-worker/ProcedureWorkerLTPO';
21import { Rect } from '../../../../src/trace/database/ui-worker/ProcedureWorkerCommon';
22jest.mock('../../../../src/js-heap/model/DatabaseStruct');
23jest.mock('../../../../src/trace/database/ui-worker/ProcedureWorkerSnapshot', () => {
24  return {};
25});
26jest.mock('../../../../src/trace/database/ui-worker/ProcedureWorker', () => {
27  return {};
28});
29
30const intersectionObserverMock = () => ({
31  observe: () => null,
32});
33window.IntersectionObserver = jest.fn().mockImplementation(intersectionObserverMock);
34// @ts-ignore
35window.ResizeObserver =
36  window.ResizeObserver ||
37  jest.fn().mockImplementation(() => ({
38    disconnect: jest.fn(),
39    observe: jest.fn(),
40    unobserve: jest.fn(),
41  }));
42const sqlit = require('../../../../src/trace/database/sql/Ltpo.sql');
43jest.mock('../../../../src/trace/database/sql/Ltpo.sql');
44
45describe('SpLtpoChart Test', () => {
46  let htmlElement: any = document.createElement('sp-system-trace');
47  let ltPoChart = new SpLtpoChart(htmlElement);
48  let fanceNameList = sqlit.queryFanceNameList;
49  fanceNameList.mockResolvedValue([
50    {
51      ts: 122,
52      dur: 245,
53      name: 'Present Fence',
54    },
55  ]);
56
57  let fpsNameList = sqlit.queryFpsNameList;
58  fpsNameList.mockResolvedValue([
59    {
60      ts: 1224,
61      dur: 2445,
62      name: 'Layers,ra:te',
63    },
64  ]);
65
66  let realFpsList = sqlit.queryRealFpsList;
67  realFpsList.mockResolvedValue([
68    {
69      ts: 124,
70      dur: 445,
71      name: 'CommitAndReleaseLayers SetScreenRefreshRate',
72    },
73  ]);
74  let presentInfo = sqlit.queryPresentInfo;
75  presentInfo.mockResolvedValue([
76    {
77      ts: 124,
78      dur: 445,
79      name: 'Present Fence',
80    },
81  ]);
82  let rSNowTimeListInfo = sqlit.queryRSNowTimeList;
83  rSNowTimeListInfo.mockResolvedValue([
84    {
85      ts: 124,
86      dur: 445,
87      name: 'Present Fence ffdf',
88    },
89  ]);
90  let signaledListInfo = sqlit.querySignaledList;
91  signaledListInfo.mockResolvedValue([
92    {
93      ts: 124,
94      dur: 445,
95      name: 'Present Fence ffdf',
96    },
97  ]);
98  let skipDataListInfo = sqlit.querySkipDataList;
99  skipDataListInfo.mockResolvedValue([
100    {
101      ts: 124,
102      dur: 445,
103      name: 'Present Fence ffdf',
104    },
105  ]);
106  SpLtpoChart.fanceNameList = [
107    {
108      ts: 122,
109      dur: 245,
110      name: 'Present Fence signaled',
111      presentId: 10,
112      fanceId: 10,
113      fps: 10,
114      startTs: 10,
115      nextStartTs: '20',
116      nextDur: 10,
117      value: 10,
118      pid: 10,
119      itid: 10,
120      startTime: 10,
121      signaled: 10,
122      nowTime: 10,
123      cutTime: 10,
124      cutSendDur: 10,
125      translateY: 10,
126      frame: undefined,
127      isHover: true,
128    },
129    {
130      ts: 122,
131      dur: 245,
132      name: 'Present Fence',
133      presentId: 10,
134      fanceId: 10,
135      fps: 10,
136      startTs: 10,
137      nextStartTs: '20',
138      nextDur: 10,
139      value: 10,
140      pid: 10,
141      itid: 10,
142      startTime: 10,
143      signaled: 10,
144      nowTime: 10,
145      cutTime: 10,
146      cutSendDur: 10,
147      translateY: 10,
148      frame: undefined,
149      isHover: true,
150    },
151  ];
152  SpLtpoChart.fpsnameList = [
153    {
154      ts: 122,
155      dur: 245,
156      name: 'Present = Fence = signaled',
157      presentId: 10,
158      fanceId: 10,
159      fps: 10,
160      startTs: 10,
161      nextStartTs: '20',
162      nextDur: 10,
163      value: 10,
164      pid: 10,
165      itid: 10,
166      startTime: 10,
167      signaled: 10,
168      nowTime: 10,
169      cutTime: 10,
170      cutSendDur: 10,
171      translateY: 10,
172      frame: undefined,
173      isHover: true,
174    },
175    {
176      ts: 122,
177      dur: 245,
178      name: 'Present  fps: 10 Fence , fps: 20',
179      presentId: 10,
180      fanceId: 10,
181      fps: 10,
182      startTs: 10,
183      nextStartTs: '20',
184      nextDur: 10,
185      value: 10,
186      pid: 10,
187      itid: 10,
188      startTime: 10,
189      signaled: 10,
190      nowTime: 10,
191      cutTime: 10,
192      cutSendDur: 10,
193      translateY: 10,
194      frame: undefined,
195      isHover: true,
196    },
197  ];
198  SpLtpoChart.realFpsList = [
199    {
200      ts: 122,
201      dur: 245,
202      name: 'Present Fence signaled',
203      presentId: 10,
204      fanceId: 10,
205      fps: 10,
206      startTs: 10,
207      nextStartTs: '20',
208      nextDur: 10,
209      value: 10,
210      pid: 10,
211      itid: 10,
212      startTime: 10,
213      signaled: 10,
214      nowTime: 10,
215      cutTime: 10,
216      cutSendDur: 10,
217      translateY: 10,
218      frame: undefined,
219      isHover: true,
220    },
221    {
222      ts: 122,
223      dur: 245,
224      name: 'Present Fence',
225      presentId: 10,
226      fanceId: 10,
227      fps: 10,
228      startTs: 10,
229      nextStartTs: '20',
230      nextDur: 10,
231      value: 10,
232      pid: 10,
233      itid: 10,
234      startTime: 10,
235      signaled: 10,
236      nowTime: 10,
237      cutTime: 10,
238      cutSendDur: 10,
239      translateY: 10,
240      frame: undefined,
241      isHover: true,
242    },
243  ];
244  SpLtpoChart.rsNowTimeList = [
245    {
246      ts: 122,
247      dur: 245,
248      name: 'Present Fence fps: 10',
249      presentId: 10,
250      fanceId: 10,
251      fps: 10,
252      startTs: 10,
253      nextStartTs: '20',
254      nextDur: 10,
255      value: 10,
256      pid: 10,
257      itid: 10,
258      startTime: 10,
259      signaled: 10,
260      nowTime: 10,
261      cutTime: 10,
262      cutSendDur: 10,
263      translateY: 10,
264      frame: undefined,
265      isHover: true,
266    },
267    {
268      ts: 122,
269      dur: 245,
270      name: 'Present Fence',
271      presentId: 10,
272      fanceId: 10,
273      fps: 10,
274      startTs: 10,
275      nextStartTs: '20',
276      nextDur: 10,
277      value: 10,
278      pid: 10,
279      itid: 10,
280      startTime: 10,
281      signaled: 10,
282      nowTime: 10,
283      cutTime: 10,
284      cutSendDur: 10,
285      translateY: 10,
286      frame: undefined,
287      isHover: true,
288    },
289  ];
290  it('SpLtpoChartTest01', function () {
291    ltPoChart.init();
292    expect(SpLtpoChart.ltpoDataArr).toEqual([]);
293  });
294  it('SpLtpoChartTest02', function () {
295    expect(ltPoChart.setRealFps()).toBeUndefined();
296  });
297  it('SpLtpoChartTest3', function () {
298    expect(ltPoChart.deleteUselessFence(SpLtpoChart.fpsnameList, SpLtpoChart.fpsnameList)).toBeUndefined();
299  });
300  it('SpLtpoChartTest04', function () {
301    expect(SpLtpoChart.presentArr).toEqual([]);
302  });
303  it('SpLtpoChartTest05', function () {
304    expect(ltPoChart.initFenceName()).toBeUndefined();
305  });
306  it('SpLtpoChartTest06', function () {
307    expect(ltPoChart.initFpsName()).toBeUndefined();
308  });
309  it('SpLtpoChartTest07', function () {
310    expect(ltPoChart.initRealFps()).toBeUndefined();
311  });
312  it('SpLtpoChartTest08', function () {
313    expect(ltPoChart.setRealFps()).toBeUndefined();
314  });
315  it('SpLtpoChartTest09', function () {
316    let lptoArr = [];
317    let fanceId = 10;
318    let fps = 10;
319    let signaled = 10;
320    let startTs = 0;
321    let dur = 10;
322    let nextStartTs = 10;
323    let nextDur = 10;
324    expect(ltPoChart.pushLtpoData(lptoArr, fanceId, fps, signaled, startTs, dur, nextStartTs, nextDur)).toBeUndefined();
325  });
326
327  it('SpLtpoChartTest10', function () {
328    expect(ltPoChart.specialValue(0.2)).toBe(0);
329    expect(ltPoChart.specialValue(0.5)).toBe(0);
330    expect(ltPoChart.specialValue(0.7)).toBe(1);
331    expect(ltPoChart.specialValue(1.8)).toBe(2);
332  });
333});
334