1fb726d48Sopenharmony_ci/*
2fb726d48Sopenharmony_ci * Copyright (C) 2022 Huawei Device Co., Ltd.
3fb726d48Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License");
4fb726d48Sopenharmony_ci * you may not use this file except in compliance with the License.
5fb726d48Sopenharmony_ci * You may obtain a copy of the License at
6fb726d48Sopenharmony_ci *
7fb726d48Sopenharmony_ci *     http://www.apache.org/licenses/LICENSE-2.0
8fb726d48Sopenharmony_ci *
9fb726d48Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software
10fb726d48Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS,
11fb726d48Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12fb726d48Sopenharmony_ci * See the License for the specific language governing permissions and
13fb726d48Sopenharmony_ci * limitations under the License.
14fb726d48Sopenharmony_ci */
15fb726d48Sopenharmony_ci
16fb726d48Sopenharmony_cijest.mock('../../../../src/trace/component/SpSystemTrace', () => {
17fb726d48Sopenharmony_ci  return {};
18fb726d48Sopenharmony_ci});
19fb726d48Sopenharmony_ciimport { SpProcessChart } from '../../../../src/trace/component/chart/SpProcessChart';
20fb726d48Sopenharmony_ciimport { TraceRow } from "../../../../src/trace/component/trace/base/TraceRow";
21fb726d48Sopenharmony_ciimport { ProcessStruct } from "../../../../src/trace/database/ui-worker/ProcedureWorkerProcess";
22fb726d48Sopenharmony_ci
23fb726d48Sopenharmony_cijest.mock('../../../../src/js-heap/model/DatabaseStruct');
24fb726d48Sopenharmony_ciconst sqlit = require('../../../../src/trace/database/sql/Func.sql');
25fb726d48Sopenharmony_cijest.mock('../../../../src/trace/database/sql/Func.sql');
26fb726d48Sopenharmony_ciconst processSqlite = require('../../../../src/trace/database/sql/ProcessThread.sql');
27fb726d48Sopenharmony_cijest.mock('../../../../src/trace/database/sql/ProcessThread.sql');
28fb726d48Sopenharmony_ciconst sqlite = require('../../../../src/trace/database/sql/SqlLite.sql');
29fb726d48Sopenharmony_cijest.mock('../../../../src/trace/database/sql/SqlLite.sql');
30fb726d48Sopenharmony_ciconst jankSqlite = require('../../../../src/trace/database/sql/Janks.sql');
31fb726d48Sopenharmony_cijest.mock('../../../../src/trace/database/sql/Janks.sql');
32fb726d48Sopenharmony_ciconst memSqlite = require('../../../../src/trace/database/sql/Memory.sql');
33fb726d48Sopenharmony_cijest.mock('../../../../src/trace/database/sql/Memory.sql');
34fb726d48Sopenharmony_cijest.mock('../../../../src/trace/database/ui-worker/ProcedureWorker', () => {
35fb726d48Sopenharmony_ci  return {};
36fb726d48Sopenharmony_ci});
37fb726d48Sopenharmony_ci
38fb726d48Sopenharmony_ciconst intersectionObserverMock = () => ({
39fb726d48Sopenharmony_ci  observe: () => null,
40fb726d48Sopenharmony_ci});
41fb726d48Sopenharmony_ciwindow.IntersectionObserver = jest.fn().mockImplementation(intersectionObserverMock);
42fb726d48Sopenharmony_ci// @ts-ignore
43fb726d48Sopenharmony_ciwindow.ResizeObserver = window.ResizeObserver || jest.fn().mockImplementation(() => ({
44fb726d48Sopenharmony_ci  observe: jest.fn(),
45fb726d48Sopenharmony_ci  unobserve: jest.fn(),
46fb726d48Sopenharmony_ci  disconnect: jest.fn(),
47fb726d48Sopenharmony_ci}));
48fb726d48Sopenharmony_ci
49fb726d48Sopenharmony_cidescribe('SpProcessChart Test', () => {
50fb726d48Sopenharmony_ci  let htmlElement: any = document.createElement('sp-system-trace');
51fb726d48Sopenharmony_ci  let spProcessChart = new SpProcessChart(htmlElement);
52fb726d48Sopenharmony_ci  let MockqueryProcessAsyncFunc = sqlit.queryProcessAsyncFunc;
53fb726d48Sopenharmony_ci  let MockqueryDistributedRelationData = processSqlite.queryDistributedRelationData;
54fb726d48Sopenharmony_ci  MockqueryDistributedRelationData.mockResolvedValue([]);
55fb726d48Sopenharmony_ci
56fb726d48Sopenharmony_ci  MockqueryProcessAsyncFunc.mockResolvedValue([
57fb726d48Sopenharmony_ci    {
58fb726d48Sopenharmony_ci      tid: 1,
59fb726d48Sopenharmony_ci      pid: 1,
60fb726d48Sopenharmony_ci      threadName: '1',
61fb726d48Sopenharmony_ci      track_id: 3,
62fb726d48Sopenharmony_ci      startTs: 1111,
63fb726d48Sopenharmony_ci      dur: 2000000,
64fb726d48Sopenharmony_ci      funName: 'deliverInputEvent',
65fb726d48Sopenharmony_ci      parent_id: 4,
66fb726d48Sopenharmony_ci      id: 5,
67fb726d48Sopenharmony_ci      cookie: 'ff',
68fb726d48Sopenharmony_ci      depth: 5,
69fb726d48Sopenharmony_ci      argsetid: 6,
70fb726d48Sopenharmony_ci    },
71fb726d48Sopenharmony_ci  ]);
72fb726d48Sopenharmony_ci  let processContentCount = processSqlite.queryProcessContentCount;
73fb726d48Sopenharmony_ci  processContentCount.mockResolvedValue([
74fb726d48Sopenharmony_ci    {
75fb726d48Sopenharmony_ci      pid: 1,
76fb726d48Sopenharmony_ci      switch_count: 2,
77fb726d48Sopenharmony_ci      thread_count: 3,
78fb726d48Sopenharmony_ci      slice_count: 4,
79fb726d48Sopenharmony_ci      mem_count: 5,
80fb726d48Sopenharmony_ci    },
81fb726d48Sopenharmony_ci  ]);
82fb726d48Sopenharmony_ci  let queryProcessThreads = processSqlite.queryProcessThreads;
83fb726d48Sopenharmony_ci  queryProcessThreads.mockResolvedValue([]);
84fb726d48Sopenharmony_ci  let queryProcessThreadsByTable = processSqlite.queryProcessThreadsByTable;
85fb726d48Sopenharmony_ci  queryProcessThreadsByTable.mockResolvedValue([
86fb726d48Sopenharmony_ci    {
87fb726d48Sopenharmony_ci      pid: 1,
88fb726d48Sopenharmony_ci      tid: 0,
89fb726d48Sopenharmony_ci      processName: 'process',
90fb726d48Sopenharmony_ci      threadName: 'thread',
91fb726d48Sopenharmony_ci    },
92fb726d48Sopenharmony_ci  ]);
93fb726d48Sopenharmony_ci  let queryProcessMem = processSqlite.queryProcessMem;
94fb726d48Sopenharmony_ci  queryProcessMem.mockResolvedValue([
95fb726d48Sopenharmony_ci    {
96fb726d48Sopenharmony_ci      trackId: 1,
97fb726d48Sopenharmony_ci      trackName: 'trackName',
98fb726d48Sopenharmony_ci      upid: 2,
99fb726d48Sopenharmony_ci      pid: 1,
100fb726d48Sopenharmony_ci      processName: 'processName',
101fb726d48Sopenharmony_ci    },
102fb726d48Sopenharmony_ci  ]);
103fb726d48Sopenharmony_ci  let queryEventCountMap = sqlite.queryEventCountMap;
104fb726d48Sopenharmony_ci  queryEventCountMap.mockResolvedValue([
105fb726d48Sopenharmony_ci    {
106fb726d48Sopenharmony_ci      eventName: 'eventName',
107fb726d48Sopenharmony_ci      count: 1,
108fb726d48Sopenharmony_ci    },
109fb726d48Sopenharmony_ci  ]);
110fb726d48Sopenharmony_ci  let queryProcess = processSqlite.queryProcess;
111fb726d48Sopenharmony_ci  queryProcess.mockResolvedValue([
112fb726d48Sopenharmony_ci    {
113fb726d48Sopenharmony_ci      pid: 1,
114fb726d48Sopenharmony_ci      processName: 'processName',
115fb726d48Sopenharmony_ci    },
116fb726d48Sopenharmony_ci  ]);
117fb726d48Sopenharmony_ci
118fb726d48Sopenharmony_ci  let queryProcessByTable = processSqlite.queryProcessByTable;
119fb726d48Sopenharmony_ci  queryProcessByTable.mockResolvedValue([
120fb726d48Sopenharmony_ci    {
121fb726d48Sopenharmony_ci      pid: 2,
122fb726d48Sopenharmony_ci      processName: 'processName',
123fb726d48Sopenharmony_ci    },
124fb726d48Sopenharmony_ci  ]);
125fb726d48Sopenharmony_ci
126fb726d48Sopenharmony_ci  let getMaxDepthByTid = sqlit.getMaxDepthByTid;
127fb726d48Sopenharmony_ci  getMaxDepthByTid.mockResolvedValue([
128fb726d48Sopenharmony_ci    {
129fb726d48Sopenharmony_ci      tid: 1,
130fb726d48Sopenharmony_ci      maxDepth: 1,
131fb726d48Sopenharmony_ci    },
132fb726d48Sopenharmony_ci    {
133fb726d48Sopenharmony_ci      tid: 2,
134fb726d48Sopenharmony_ci      maxDepth: 2,
135fb726d48Sopenharmony_ci    },
136fb726d48Sopenharmony_ci  ]);
137fb726d48Sopenharmony_ci  let queryAllJankProcess = jankSqlite.queryAllJankProcess;
138fb726d48Sopenharmony_ci  queryAllJankProcess.mockResolvedValue([
139fb726d48Sopenharmony_ci    {
140fb726d48Sopenharmony_ci      pid: 1,
141fb726d48Sopenharmony_ci    },
142fb726d48Sopenharmony_ci  ]);
143fb726d48Sopenharmony_ci
144fb726d48Sopenharmony_ci  let queryAllExpectedData = sqlite.queryAllExpectedData;
145fb726d48Sopenharmony_ci  queryAllExpectedData.mockResolvedValue([
146fb726d48Sopenharmony_ci    {
147fb726d48Sopenharmony_ci      id: 41,
148fb726d48Sopenharmony_ci      ts: 749660047,
149fb726d48Sopenharmony_ci      name: 1159,
150fb726d48Sopenharmony_ci      type: 1,
151fb726d48Sopenharmony_ci      dur: 16657682,
152fb726d48Sopenharmony_ci      pid: 1242,
153fb726d48Sopenharmony_ci      cmdline: 'render_service',
154fb726d48Sopenharmony_ci    },
155fb726d48Sopenharmony_ci    {
156fb726d48Sopenharmony_ci      id: 45,
157fb726d48Sopenharmony_ci      ts: 766321174,
158fb726d48Sopenharmony_ci      name: 1160,
159fb726d48Sopenharmony_ci      type: 1,
160fb726d48Sopenharmony_ci      dur: 16657682,
161fb726d48Sopenharmony_ci      pid: 1,
162fb726d48Sopenharmony_ci      cmdline: 'render_service',
163fb726d48Sopenharmony_ci    },
164fb726d48Sopenharmony_ci  ]);
165fb726d48Sopenharmony_ci
166fb726d48Sopenharmony_ci  let queryAllActualData = jankSqlite.queryAllActualData;
167fb726d48Sopenharmony_ci  queryAllActualData.mockResolvedValue([
168fb726d48Sopenharmony_ci    {
169fb726d48Sopenharmony_ci      id: 40,
170fb726d48Sopenharmony_ci      ts: 750328000,
171fb726d48Sopenharmony_ci      name: 1159,
172fb726d48Sopenharmony_ci      type: 0,
173fb726d48Sopenharmony_ci      dur: 22925000,
174fb726d48Sopenharmony_ci      src_slice: '36',
175fb726d48Sopenharmony_ci      jank_tag: 1,
176fb726d48Sopenharmony_ci      dst_slice: null,
177fb726d48Sopenharmony_ci      pid: 1242,
178fb726d48Sopenharmony_ci      cmdline: 'render_service',
179fb726d48Sopenharmony_ci      frame_type: 'render_service',
180fb726d48Sopenharmony_ci    },
181fb726d48Sopenharmony_ci    {
182fb726d48Sopenharmony_ci      id: 44,
183fb726d48Sopenharmony_ci      ts: 773315000,
184fb726d48Sopenharmony_ci      name: 1160,
185fb726d48Sopenharmony_ci      type: 0,
186fb726d48Sopenharmony_ci      dur: 17740000,
187fb726d48Sopenharmony_ci      src_slice: '38,42',
188fb726d48Sopenharmony_ci      jank_tag: 1,
189fb726d48Sopenharmony_ci      dst_slice: null,
190fb726d48Sopenharmony_ci      pid: 1,
191fb726d48Sopenharmony_ci      cmdline: 'render_service',
192fb726d48Sopenharmony_ci      frame_type: 'render_service',
193fb726d48Sopenharmony_ci    },
194fb726d48Sopenharmony_ci  ]);
195fb726d48Sopenharmony_ci
196fb726d48Sopenharmony_ci  let queryProcessStartup = processSqlite.queryProcessStartup;
197fb726d48Sopenharmony_ci  queryProcessStartup.mockResolvedValue([
198fb726d48Sopenharmony_ci    {
199fb726d48Sopenharmony_ci      'pid': 3913,
200fb726d48Sopenharmony_ci      'tid': 3913,
201fb726d48Sopenharmony_ci      'itid': 366,
202fb726d48Sopenharmony_ci      'startTs': 5651745832,
203fb726d48Sopenharmony_ci      'dur': 38654167,
204fb726d48Sopenharmony_ci      'startName': 0,
205fb726d48Sopenharmony_ci      'endItid': 341,
206fb726d48Sopenharmony_ci      'frame': {
207fb726d48Sopenharmony_ci        'y': 5,
208fb726d48Sopenharmony_ci        'height': 20,
209fb726d48Sopenharmony_ci        'x': 1154,
210fb726d48Sopenharmony_ci        'width': 9
211fb726d48Sopenharmony_ci      },
212fb726d48Sopenharmony_ci      'v': true,
213fb726d48Sopenharmony_ci      'stepName': 'Process Creating (38.65ms)',
214fb726d48Sopenharmony_ci      'textMetricsWidth': 129.072265625
215fb726d48Sopenharmony_ci    },
216fb726d48Sopenharmony_ci    {
217fb726d48Sopenharmony_ci      'pid': 3913,
218fb726d48Sopenharmony_ci      'tid': 3913,
219fb726d48Sopenharmony_ci      'itid': 341,
220fb726d48Sopenharmony_ci      'startTs': 5690399999,
221fb726d48Sopenharmony_ci      'dur': 43619792,
222fb726d48Sopenharmony_ci      'startName': 1,
223fb726d48Sopenharmony_ci      'endItid': 486,
224fb726d48Sopenharmony_ci      'frame': {
225fb726d48Sopenharmony_ci        'y': 5,
226fb726d48Sopenharmony_ci        'height': 20,
227fb726d48Sopenharmony_ci        'x': 1162,
228fb726d48Sopenharmony_ci        'width': 10
229fb726d48Sopenharmony_ci      },
230fb726d48Sopenharmony_ci      'v': true,
231fb726d48Sopenharmony_ci      'stepName': 'Application Launching (43.62ms)',
232fb726d48Sopenharmony_ci      'textMetricsWidth': 156.416015625
233fb726d48Sopenharmony_ci    },
234fb726d48Sopenharmony_ci    {
235fb726d48Sopenharmony_ci      'pid': 3913,
236fb726d48Sopenharmony_ci      'tid': 3913,
237fb726d48Sopenharmony_ci      'itid': 486,
238fb726d48Sopenharmony_ci      'startTs': 5734019791,
239fb726d48Sopenharmony_ci      'dur': 23194270,
240fb726d48Sopenharmony_ci      'startName': 2,
241fb726d48Sopenharmony_ci      'endItid': 486,
242fb726d48Sopenharmony_ci      'frame': {
243fb726d48Sopenharmony_ci        'y': 5,
244fb726d48Sopenharmony_ci        'height': 20,
245fb726d48Sopenharmony_ci        'x': 1171,
246fb726d48Sopenharmony_ci        'width': 6
247fb726d48Sopenharmony_ci      },
248fb726d48Sopenharmony_ci      'v': true
249fb726d48Sopenharmony_ci    },
250fb726d48Sopenharmony_ci    {
251fb726d48Sopenharmony_ci      'pid': 3913,
252fb726d48Sopenharmony_ci      'tid': 3913,
253fb726d48Sopenharmony_ci      'itid': 486,
254fb726d48Sopenharmony_ci      'startTs': 5757214061,
255fb726d48Sopenharmony_ci      'dur': 115679167,
256fb726d48Sopenharmony_ci      'startName': 3,
257fb726d48Sopenharmony_ci      'endItid': 486,
258fb726d48Sopenharmony_ci      'frame': {
259fb726d48Sopenharmony_ci        'y': 5,
260fb726d48Sopenharmony_ci        'height': 20,
261fb726d48Sopenharmony_ci        'x': 1176,
262fb726d48Sopenharmony_ci        'width': 24
263fb726d48Sopenharmony_ci      },
264fb726d48Sopenharmony_ci      'v': true,
265fb726d48Sopenharmony_ci      'stepName': 'UI Ability OnForeground (115.68ms)',
266fb726d48Sopenharmony_ci      'textMetricsWidth': 172.59765625
267fb726d48Sopenharmony_ci    },
268fb726d48Sopenharmony_ci    {
269fb726d48Sopenharmony_ci      'pid': 3913,
270fb726d48Sopenharmony_ci      'tid': 3913,
271fb726d48Sopenharmony_ci      'itid': 486,
272fb726d48Sopenharmony_ci      'startTs': 5872893228,
273fb726d48Sopenharmony_ci      'dur': 62756250,
274fb726d48Sopenharmony_ci      'startName': 4,
275fb726d48Sopenharmony_ci      'frame': {
276fb726d48Sopenharmony_ci        'y': 5,
277fb726d48Sopenharmony_ci        'height': 20,
278fb726d48Sopenharmony_ci        'x': 1199,
279fb726d48Sopenharmony_ci        'width': 14
280fb726d48Sopenharmony_ci      },
281fb726d48Sopenharmony_ci      'v': true,
282fb726d48Sopenharmony_ci      'stepName': 'First Frame - APP Phase (62.76ms)',
283fb726d48Sopenharmony_ci      'textMetricsWidth': 162.9638671875
284fb726d48Sopenharmony_ci    },
285fb726d48Sopenharmony_ci    {
286fb726d48Sopenharmony_ci      'pid': 3913,
287fb726d48Sopenharmony_ci      'tid': 3913,
288fb726d48Sopenharmony_ci      'itid': 17,
289fb726d48Sopenharmony_ci      'startTs': 5968040103,
290fb726d48Sopenharmony_ci      'dur': 29438021,
291fb726d48Sopenharmony_ci      'startName': 5,
292fb726d48Sopenharmony_ci      'frame': {
293fb726d48Sopenharmony_ci        'y': 5,
294fb726d48Sopenharmony_ci        'height': 20,
295fb726d48Sopenharmony_ci        'x': 1219,
296fb726d48Sopenharmony_ci        'width': 7
297fb726d48Sopenharmony_ci      },
298fb726d48Sopenharmony_ci      'v': true
299fb726d48Sopenharmony_ci    }
300fb726d48Sopenharmony_ci  ]);
301fb726d48Sopenharmony_ci
302fb726d48Sopenharmony_ci  let queryProcessSoInitData = processSqlite.queryProcessSoInitData;
303fb726d48Sopenharmony_ci  queryProcessSoInitData.mockResolvedValue([
304fb726d48Sopenharmony_ci    {
305fb726d48Sopenharmony_ci      'pid': 3913,
306fb726d48Sopenharmony_ci      'tid': 3913,
307fb726d48Sopenharmony_ci      'itid': 486,
308fb726d48Sopenharmony_ci      'startTs': 5678439061,
309fb726d48Sopenharmony_ci      'dur': 1137500,
310fb726d48Sopenharmony_ci      'soName': ' /system/lib64/seccomp/libapp_filter.z.so',
311fb726d48Sopenharmony_ci      'depth': 0,
312fb726d48Sopenharmony_ci      'frame': {
313fb726d48Sopenharmony_ci        'x': 1160,
314fb726d48Sopenharmony_ci        'y': 0,
315fb726d48Sopenharmony_ci        'width': 1,
316fb726d48Sopenharmony_ci        'height': 20
317fb726d48Sopenharmony_ci      }
318fb726d48Sopenharmony_ci    },
319fb726d48Sopenharmony_ci    {
320fb726d48Sopenharmony_ci      'pid': 3913,
321fb726d48Sopenharmony_ci      'tid': 3913,
322fb726d48Sopenharmony_ci      'itid': 486,
323fb726d48Sopenharmony_ci      'startTs': 5682777082,
324fb726d48Sopenharmony_ci      'dur': 1130729,
325fb726d48Sopenharmony_ci      'soName': ' /system/lib64/libhidebug.so',
326fb726d48Sopenharmony_ci      'depth': 0,
327fb726d48Sopenharmony_ci      'frame': {
328fb726d48Sopenharmony_ci        'x': 1160,
329fb726d48Sopenharmony_ci        'y': 0,
330fb726d48Sopenharmony_ci        'width': 1,
331fb726d48Sopenharmony_ci        'height': 20
332fb726d48Sopenharmony_ci      }
333fb726d48Sopenharmony_ci    },
334fb726d48Sopenharmony_ci    {
335fb726d48Sopenharmony_ci      'pid': 3913,
336fb726d48Sopenharmony_ci      'tid': 3913,
337fb726d48Sopenharmony_ci      'itid': 486,
338fb726d48Sopenharmony_ci      'startTs': 5696226041,
339fb726d48Sopenharmony_ci      'dur': 4319791,
340fb726d48Sopenharmony_ci      'soName': ' system/lib64/extensionability/libinputmethod_extension_module.z.so',
341fb726d48Sopenharmony_ci      'depth': 0,
342fb726d48Sopenharmony_ci      'frame': {
343fb726d48Sopenharmony_ci        'x': 1163,
344fb726d48Sopenharmony_ci        'y': 0,
345fb726d48Sopenharmony_ci        'width': 1,
346fb726d48Sopenharmony_ci        'height': 20
347fb726d48Sopenharmony_ci      }
348fb726d48Sopenharmony_ci    },
349fb726d48Sopenharmony_ci    {
350fb726d48Sopenharmony_ci      'pid': 3913,
351fb726d48Sopenharmony_ci      'tid': 3913,
352fb726d48Sopenharmony_ci      'itid': 486,
353fb726d48Sopenharmony_ci      'startTs': 5700671874,
354fb726d48Sopenharmony_ci      'dur': 4128125,
355fb726d48Sopenharmony_ci      'soName': ' system/lib64/extensionability/libbackup_extension_ability_native.z.so',
356fb726d48Sopenharmony_ci      'depth': 0,
357fb726d48Sopenharmony_ci      'frame': {
358fb726d48Sopenharmony_ci        'x': 1164,
359fb726d48Sopenharmony_ci        'y': 0,
360fb726d48Sopenharmony_ci        'width': 1,
361fb726d48Sopenharmony_ci        'height': 20
362fb726d48Sopenharmony_ci      }
363fb726d48Sopenharmony_ci    },
364fb726d48Sopenharmony_ci    {
365fb726d48Sopenharmony_ci      'pid': 3913,
366fb726d48Sopenharmony_ci      'tid': 3913,
367fb726d48Sopenharmony_ci      'itid': 486,
368fb726d48Sopenharmony_ci      'startTs': 5704894270,
369fb726d48Sopenharmony_ci      'dur': 2187500,
370fb726d48Sopenharmony_ci      'soName': ' system/lib64/extensionability/libwindow_extension_module.z.so',
371fb726d48Sopenharmony_ci      'depth': 0,
372fb726d48Sopenharmony_ci      'frame': {
373fb726d48Sopenharmony_ci        'x': 1165,
374fb726d48Sopenharmony_ci        'y': 0,
375fb726d48Sopenharmony_ci        'width': 1,
376fb726d48Sopenharmony_ci        'height': 20
377fb726d48Sopenharmony_ci      }
378fb726d48Sopenharmony_ci    },
379fb726d48Sopenharmony_ci    {
380fb726d48Sopenharmony_ci      'pid': 3913,
381fb726d48Sopenharmony_ci      'tid': 3913,
382fb726d48Sopenharmony_ci      'itid': 486,
383fb726d48Sopenharmony_ci      'startTs': 5707165624,
384fb726d48Sopenharmony_ci      'dur': 1503125,
385fb726d48Sopenharmony_ci      'soName': ' system/lib64/extensionability/libdatashare_ext_ability_module.z.so',
386fb726d48Sopenharmony_ci      'depth': 0,
387fb726d48Sopenharmony_ci      'frame': {
388fb726d48Sopenharmony_ci        'x': 1165,
389fb726d48Sopenharmony_ci        'y': 0,
390fb726d48Sopenharmony_ci        'width': 1,
391fb726d48Sopenharmony_ci        'height': 20
392fb726d48Sopenharmony_ci      }
393fb726d48Sopenharmony_ci    },
394fb726d48Sopenharmony_ci    {
395fb726d48Sopenharmony_ci      'pid': 3913,
396fb726d48Sopenharmony_ci      'tid': 3913,
397fb726d48Sopenharmony_ci      'itid': 486,
398fb726d48Sopenharmony_ci      'startTs': 5708719791,
399fb726d48Sopenharmony_ci      'dur': 2018229,
400fb726d48Sopenharmony_ci      'soName': ' system/lib64/extensionability/libpush_extension.z.so',
401fb726d48Sopenharmony_ci      'depth': 0,
402fb726d48Sopenharmony_ci      'frame': {
403fb726d48Sopenharmony_ci        'x': 1166,
404fb726d48Sopenharmony_ci        'y': 0,
405fb726d48Sopenharmony_ci        'width': 1,
406fb726d48Sopenharmony_ci        'height': 20
407fb726d48Sopenharmony_ci      }
408fb726d48Sopenharmony_ci    },
409fb726d48Sopenharmony_ci    {
410fb726d48Sopenharmony_ci      'pid': 3913,
411fb726d48Sopenharmony_ci      'tid': 3913,
412fb726d48Sopenharmony_ci      'itid': 486,
413fb726d48Sopenharmony_ci      'startTs': 5710788020,
414fb726d48Sopenharmony_ci      'dur': 846875,
415fb726d48Sopenharmony_ci      'soName': ' system/lib64/extensionability/libenterprise_admin_extension_module.z.so',
416fb726d48Sopenharmony_ci      'depth': 0,
417fb726d48Sopenharmony_ci      'frame': {
418fb726d48Sopenharmony_ci        'x': 1166,
419fb726d48Sopenharmony_ci        'y': 0,
420fb726d48Sopenharmony_ci        'width': 1,
421fb726d48Sopenharmony_ci        'height': 20
422fb726d48Sopenharmony_ci      }
423fb726d48Sopenharmony_ci    },
424fb726d48Sopenharmony_ci    {
425fb726d48Sopenharmony_ci      'pid': 3913,
426fb726d48Sopenharmony_ci      'tid': 3913,
427fb726d48Sopenharmony_ci      'itid': 486,
428fb726d48Sopenharmony_ci      'startTs': 5711693749,
429fb726d48Sopenharmony_ci      'dur': 1522917,
430fb726d48Sopenharmony_ci      'soName': ' system/lib64/extensionability/libstatic_subscriber_extension_module.z.so',
431fb726d48Sopenharmony_ci      'depth': 0,
432fb726d48Sopenharmony_ci      'frame': {
433fb726d48Sopenharmony_ci        'x': 1166,
434fb726d48Sopenharmony_ci        'y': 0,
435fb726d48Sopenharmony_ci        'width': 1,
436fb726d48Sopenharmony_ci        'height': 20
437fb726d48Sopenharmony_ci      }
438fb726d48Sopenharmony_ci    },
439fb726d48Sopenharmony_ci    {
440fb726d48Sopenharmony_ci      'pid': 3913,
441fb726d48Sopenharmony_ci      'tid': 3913,
442fb726d48Sopenharmony_ci      'itid': 486,
443fb726d48Sopenharmony_ci      'startTs': 5713377603,
444fb726d48Sopenharmony_ci      'dur': 1327604,
445fb726d48Sopenharmony_ci      'soName': ' system/lib64/extensionability/libui_extension_module.z.so',
446fb726d48Sopenharmony_ci      'depth': 0,
447fb726d48Sopenharmony_ci      'frame': {
448fb726d48Sopenharmony_ci        'x': 1167,
449fb726d48Sopenharmony_ci        'y': 0,
450fb726d48Sopenharmony_ci        'width': 1,
451fb726d48Sopenharmony_ci        'height': 20
452fb726d48Sopenharmony_ci      }
453fb726d48Sopenharmony_ci    },
454fb726d48Sopenharmony_ci    {
455fb726d48Sopenharmony_ci      'pid': 3913,
456fb726d48Sopenharmony_ci      'tid': 3913,
457fb726d48Sopenharmony_ci      'itid': 486,
458fb726d48Sopenharmony_ci      'startTs': 5714757291,
459fb726d48Sopenharmony_ci      'dur': 2567187,
460fb726d48Sopenharmony_ci      'soName': ' system/lib64/extensionability/libauthorization_extension_module.z.so',
461fb726d48Sopenharmony_ci      'depth': 0,
462fb726d48Sopenharmony_ci      'frame': {
463fb726d48Sopenharmony_ci        'x': 1167,
464fb726d48Sopenharmony_ci        'y': 0,
465fb726d48Sopenharmony_ci        'width': 1,
466fb726d48Sopenharmony_ci        'height': 20
467fb726d48Sopenharmony_ci      }
468fb726d48Sopenharmony_ci    },
469fb726d48Sopenharmony_ci    {
470fb726d48Sopenharmony_ci      'pid': 3913,
471fb726d48Sopenharmony_ci      'tid': 3913,
472fb726d48Sopenharmony_ci      'itid': 486,
473fb726d48Sopenharmony_ci      'startTs': 5717385936,
474fb726d48Sopenharmony_ci      'dur': 2341146,
475fb726d48Sopenharmony_ci      'soName': ' system/lib64/extensionability/libaccessibility_extension_module.z.so',
476fb726d48Sopenharmony_ci      'depth': 0,
477fb726d48Sopenharmony_ci      'frame': {
478fb726d48Sopenharmony_ci        'x': 1167,
479fb726d48Sopenharmony_ci        'y': 0,
480fb726d48Sopenharmony_ci        'width': 1,
481fb726d48Sopenharmony_ci        'height': 20
482fb726d48Sopenharmony_ci      }
483fb726d48Sopenharmony_ci    },
484fb726d48Sopenharmony_ci    {
485fb726d48Sopenharmony_ci      'pid': 3913,
486fb726d48Sopenharmony_ci      'tid': 3913,
487fb726d48Sopenharmony_ci      'itid': 486,
488fb726d48Sopenharmony_ci      'startTs': 5719780728,
489fb726d48Sopenharmony_ci      'dur': 1603646,
490fb726d48Sopenharmony_ci      'soName': ' system/lib64/extensionability/libservice_extension_module.z.so',
491fb726d48Sopenharmony_ci      'depth': 0,
492fb726d48Sopenharmony_ci      'frame': {
493fb726d48Sopenharmony_ci        'x': 1168,
494fb726d48Sopenharmony_ci        'y': 0,
495fb726d48Sopenharmony_ci        'width': 1,
496fb726d48Sopenharmony_ci        'height': 20
497fb726d48Sopenharmony_ci      }
498fb726d48Sopenharmony_ci    },
499fb726d48Sopenharmony_ci    {
500fb726d48Sopenharmony_ci      'pid': 3913,
501fb726d48Sopenharmony_ci      'tid': 3913,
502fb726d48Sopenharmony_ci      'itid': 486,
503fb726d48Sopenharmony_ci      'startTs': 5721437499,
504fb726d48Sopenharmony_ci      'dur': 1314583,
505fb726d48Sopenharmony_ci      'soName': ' system/lib64/extensionability/libworkschedextension.z.so',
506fb726d48Sopenharmony_ci      'depth': 0,
507fb726d48Sopenharmony_ci      'frame': {
508fb726d48Sopenharmony_ci        'x': 1168,
509fb726d48Sopenharmony_ci        'y': 0,
510fb726d48Sopenharmony_ci        'width': 1,
511fb726d48Sopenharmony_ci        'height': 20
512fb726d48Sopenharmony_ci      }
513fb726d48Sopenharmony_ci    }
514fb726d48Sopenharmony_ci  ]);
515fb726d48Sopenharmony_ci  let processData = processSqlite.queryProcessData;
516fb726d48Sopenharmony_ci  processData.mockResolvedValue([
517fb726d48Sopenharmony_ci    {
518fb726d48Sopenharmony_ci      cpu: 0, dur: 199000, startTime: 259730000
519fb726d48Sopenharmony_ci    },
520fb726d48Sopenharmony_ci    {
521fb726d48Sopenharmony_ci      cpu: 2, dur: 147000, startTime: 307742000
522fb726d48Sopenharmony_ci    }
523fb726d48Sopenharmony_ci  ]);
524fb726d48Sopenharmony_ci  let processMemData = processSqlite.queryProcessMemData;
525fb726d48Sopenharmony_ci  processMemData.mockResolvedValue([
526fb726d48Sopenharmony_ci    {
527fb726d48Sopenharmony_ci      startTime: 593015789,
528fb726d48Sopenharmony_ci      track_id: 153,
529fb726d48Sopenharmony_ci      ts: 30150767408970,
530fb726d48Sopenharmony_ci      type: 'measure',
531fb726d48Sopenharmony_ci      value: 0
532fb726d48Sopenharmony_ci    },
533fb726d48Sopenharmony_ci    {
534fb726d48Sopenharmony_ci      startTime: 593360060,
535fb726d48Sopenharmony_ci      track_id: 153,
536fb726d48Sopenharmony_ci      ts: 30150767753241,
537fb726d48Sopenharmony_ci      type: 'measure',
538fb726d48Sopenharmony_ci      value: 1
539fb726d48Sopenharmony_ci    }
540fb726d48Sopenharmony_ci  ]);
541fb726d48Sopenharmony_ci  let maxValue = memSqlite.queryMemFilterIdMaxValue;
542fb726d48Sopenharmony_ci  maxValue.mockResolvedValue([
543fb726d48Sopenharmony_ci    {
544fb726d48Sopenharmony_ci      filterId: 1,
545fb726d48Sopenharmony_ci      maxValue: 522
546fb726d48Sopenharmony_ci    },
547fb726d48Sopenharmony_ci    {
548fb726d48Sopenharmony_ci      filterId: 2,
549fb726d48Sopenharmony_ci      maxValue: 563
550fb726d48Sopenharmony_ci    }
551fb726d48Sopenharmony_ci  ]);
552fb726d48Sopenharmony_ci  let funcNames = sqlit.queryAllFuncNames;
553fb726d48Sopenharmony_ci  funcNames.mockResolvedValue([
554fb726d48Sopenharmony_ci    {
555fb726d48Sopenharmony_ci      id: 0,
556fb726d48Sopenharmony_ci      name: 'test'
557fb726d48Sopenharmony_ci    }
558fb726d48Sopenharmony_ci  ]);
559fb726d48Sopenharmony_ci
560fb726d48Sopenharmony_ci  let soInitNames = sqlite.queryAllSoInitNames;
561fb726d48Sopenharmony_ci  soInitNames.mockResolvedValue([
562fb726d48Sopenharmony_ci    {
563fb726d48Sopenharmony_ci      id: 1,
564fb726d48Sopenharmony_ci      name: 'soInitName'
565fb726d48Sopenharmony_ci    }
566fb726d48Sopenharmony_ci  ]);
567fb726d48Sopenharmony_ci
568fb726d48Sopenharmony_ci  let allProcessNames = processSqlite.queryAllProcessNames;
569fb726d48Sopenharmony_ci  allProcessNames.mockResolvedValue([
570fb726d48Sopenharmony_ci    {
571fb726d48Sopenharmony_ci      id: 2,
572fb726d48Sopenharmony_ci      name: 'processName',
573fb726d48Sopenharmony_ci      pid: 256
574fb726d48Sopenharmony_ci    }
575fb726d48Sopenharmony_ci  ]);
576fb726d48Sopenharmony_ci
577fb726d48Sopenharmony_ci  let srcSlices = sqlite.queryAllSrcSlices;
578fb726d48Sopenharmony_ci  srcSlices.mockResolvedValue([
579fb726d48Sopenharmony_ci    {
580fb726d48Sopenharmony_ci      id: 3,
581fb726d48Sopenharmony_ci      src: 'src'
582fb726d48Sopenharmony_ci    }
583fb726d48Sopenharmony_ci  ]);
584fb726d48Sopenharmony_ci
585fb726d48Sopenharmony_ci  let threadNames = processSqlite.queryAllThreadName;
586fb726d48Sopenharmony_ci  threadNames.mockResolvedValue([
587fb726d48Sopenharmony_ci    {
588fb726d48Sopenharmony_ci      tid: 4,
589fb726d48Sopenharmony_ci      name: 'threadName'
590fb726d48Sopenharmony_ci    }
591fb726d48Sopenharmony_ci  ]);
592fb726d48Sopenharmony_ci
593fb726d48Sopenharmony_ci  spProcessChart.setAttribute = jest.fn();
594fb726d48Sopenharmony_ci  spProcessChart.addChildTraceRow = jest.fn();
595fb726d48Sopenharmony_ci  it('SpProcessChart01', function () {
596fb726d48Sopenharmony_ci    spProcessChart.init();
597fb726d48Sopenharmony_ci    expect(spProcessChart).toBeDefined();
598fb726d48Sopenharmony_ci  });
599fb726d48Sopenharmony_ci
600fb726d48Sopenharmony_ci  it('SpProcessChart02', function () {
601fb726d48Sopenharmony_ci    expect(spProcessChart.initAsyncFuncData()).not.toBeUndefined();
602fb726d48Sopenharmony_ci  });
603fb726d48Sopenharmony_ci
604fb726d48Sopenharmony_ci  it('SpProcessChart03', function () {
605fb726d48Sopenharmony_ci    spProcessChart.initAsyncFuncData();
606fb726d48Sopenharmony_ci    spProcessChart.initDeliverInputEvent();
607fb726d48Sopenharmony_ci    expect(spProcessChart.processAsyncFuncArray.length).toEqual(1);
608fb726d48Sopenharmony_ci  });
609fb726d48Sopenharmony_ci
610fb726d48Sopenharmony_ci  it('SpProcessChart04', function () {
611fb726d48Sopenharmony_ci    let row = new TraceRow<ProcessStruct>();
612fb726d48Sopenharmony_ci    let startUpRow = spProcessChart.addStartUpRow(row);
613fb726d48Sopenharmony_ci    expect(startUpRow).not.toBeUndefined();
614fb726d48Sopenharmony_ci  });
615fb726d48Sopenharmony_ci
616fb726d48Sopenharmony_ci  it('SpProcessChart05', function () {
617fb726d48Sopenharmony_ci    let row = new TraceRow<ProcessStruct>();
618fb726d48Sopenharmony_ci    let soInitRow = spProcessChart.addSoInitRow(row, 1);
619fb726d48Sopenharmony_ci    expect(soInitRow).not.toBeUndefined();
620fb726d48Sopenharmony_ci  });
621fb726d48Sopenharmony_ci});
622