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 {
17  ProcedureLogicWorkerSchedulingAnalysis,
18  FreqThread,
19  ThreadCpuUsage,
20  CpuAnalysis,
21  CpuMeasure,
22  Irq,
23  CpuUsage,
24} from '../../../../src/trace/database/logic-worker/ProcedureLogicWorkerSchedulingAnalysis';
25
26describe('ProcedureLogicWorkerSchedulingAnalysis Test', () => {
27  it('ProcedureLogicWorkerSchedulingAnalysisTest01', function () {
28    let procedureLogicWorkerSchedulingAnalysis = new ProcedureLogicWorkerSchedulingAnalysis();
29    expect(procedureLogicWorkerSchedulingAnalysis).not.toBeUndefined();
30  });
31  it('ProcedureLogicWorkerSchedulingAnalysisTest02', function () {
32    let procedureLogicWorkerSchedulingAnalysis = new ProcedureLogicWorkerSchedulingAnalysis();
33    let data = {
34      params: [
35        {
36          endTs: 1,
37          total: 2,
38          list: '',
39        },
40      ],
41      type: '',
42      id: 1,
43      action: '',
44    };
45    window.postMessage = jest.fn(() => true);
46    expect(procedureLogicWorkerSchedulingAnalysis.handle(data)).toBeUndefined();
47  });
48  it('ProcedureLogicWorkerSchedulingAnalysisTest03', function () {
49    let freqThread = new FreqThread();
50    expect(freqThread).not.toBeUndefined();
51  });
52  it('ProcedureLogicWorkerSchedulingAnalysisTest04', function () {
53    let threadCpuUsage = new ThreadCpuUsage();
54    expect(threadCpuUsage).not.toBeUndefined();
55  });
56  it('ProcedureLogicWorkerSchedulingAnalysisTest05', function () {
57    let cpuAnalysis = new CpuAnalysis();
58    expect(cpuAnalysis).not.toBeUndefined();
59  });
60  it('ProcedureLogicWorkerSchedulingAnalysisTest06', function () {
61    let cpuMeasure = new CpuMeasure();
62    expect(cpuMeasure).not.toBeUndefined();
63  });
64  it('ProcedureLogicWorkerSchedulingAnalysisTest07', function () {
65    let irq = new Irq();
66    expect(irq).not.toBeUndefined();
67  });
68  it('ProcedureLogicWorkerSchedulingAnalysisTest08', function () {
69    let cpuUsage = new CpuUsage();
70    expect(cpuUsage).not.toBeUndefined();
71  });
72  it('ProcedureLogicWorkerSchedulingAnalysisTest09', function () {
73    let procedureLogicWorkerSchedulingAnalysis = new ProcedureLogicWorkerSchedulingAnalysis();
74    let arr = [
75      {
76        cpu: 1,
77        dur: 1,
78        ts: 1,
79        freqArr: { cpu: 1, freq: 1, dur: 1 },
80      },
81    ];
82    expect(procedureLogicWorkerSchedulingAnalysis.handlerThreadFreqData(arr)).toStrictEqual([]);
83  });
84  it('ProcedureLogicWorkerSchedulingAnalysisTest10', function () {
85    let procedureLogicWorkerSchedulingAnalysis = new ProcedureLogicWorkerSchedulingAnalysis();
86    let arr = [
87      {
88        cpu: 1,
89        dur: 1,
90        ts: 1,
91        freqArr: { cpu: 1, freq: 1, dur: 1 },
92      },
93    ];
94    expect(procedureLogicWorkerSchedulingAnalysis.handlerFreqThreadData(arr)).toStrictEqual([]);
95  });
96  it('ProcedureLogicWorkerSchedulingAnalysisTest11', function () {
97    let procedureLogicWorkerSchedulingAnalysis = new ProcedureLogicWorkerSchedulingAnalysis();
98    let arr = [
99      {
100        cpu: 1,
101        dur: 1,
102        ts: 1,
103        freqArr: { cpu: 1, freq: 1, dur: 1 },
104      },
105    ];
106    expect(procedureLogicWorkerSchedulingAnalysis.groupFreqByCpu(arr)).toBeUndefined();
107  });
108  it('ProcedureLogicWorkerSchedulingAnalysisTest12', function () {
109    let procedureLogicWorkerSchedulingAnalysis = new ProcedureLogicWorkerSchedulingAnalysis();
110    let arr = [
111      {
112        cpu: 1,
113        dur: 1,
114        ts: 1,
115        freqArr: { cpu: 1, freq: 1, dur: 1 },
116      },
117    ];
118    expect(procedureLogicWorkerSchedulingAnalysis.handleCPUIdle0Map(arr)).toBeUndefined();
119  });
120  it('ProcedureLogicWorkerSchedulingAnalysisTest13', function () {
121    let procedureLogicWorkerSchedulingAnalysis = new ProcedureLogicWorkerSchedulingAnalysis();
122    let arr = [
123      {
124        cpu: 1,
125        dur: 1,
126        ts: 1,
127        freqArr: { cpu: 1, freq: 1, dur: 1 },
128      },
129    ];
130    expect(procedureLogicWorkerSchedulingAnalysis.getEffectiveFrequencyDur(arr)).toBeUndefined();
131  });
132  it('ProcedureLogicWorkerSchedulingAnalysisTest14', function () {
133    let procedureLogicWorkerSchedulingAnalysis = new ProcedureLogicWorkerSchedulingAnalysis();
134    let arr = [
135      {
136        cpu: 1,
137        dur: 1,
138        ts: 1,
139        freqArr: { cpu: 1, freq: 1, dur: 1 },
140      },
141    ];
142    expect(procedureLogicWorkerSchedulingAnalysis.handleProcessThread(arr)).toBeUndefined();
143  });
144  it('ProcedureLogicWorkerSchedulingAnalysisTest15', function () {
145    let procedureLogicWorkerSchedulingAnalysis = new ProcedureLogicWorkerSchedulingAnalysis();
146    window.postMessage = jest.fn(() => true);
147    expect(procedureLogicWorkerSchedulingAnalysis.getCpuFrequency('')).toBeUndefined();
148  });
149  it('ProcedureLogicWorkerSchedulingAnalysisTest16', function () {
150    let procedureLogicWorkerSchedulingAnalysis = new ProcedureLogicWorkerSchedulingAnalysis();
151    window.postMessage = jest.fn(() => true);
152    expect(procedureLogicWorkerSchedulingAnalysis.getProcessAndThread()).toBeUndefined();
153  });
154  it('ProcedureLogicWorkerSchedulingAnalysisTest17', function () {
155    let procedureLogicWorkerSchedulingAnalysis = new ProcedureLogicWorkerSchedulingAnalysis();
156    window.postMessage = jest.fn(() => true);
157    expect(procedureLogicWorkerSchedulingAnalysis.getCpuUsage()).toBeUndefined();
158  });
159  it('ProcedureLogicWorkerSchedulingAnalysisTest18', function () {
160    let procedureLogicWorkerSchedulingAnalysis = new ProcedureLogicWorkerSchedulingAnalysis();
161    window.postMessage = jest.fn(() => true);
162    expect(procedureLogicWorkerSchedulingAnalysis.queryData('', '', [])).toBeUndefined();
163  });
164  it('ProcedureLogicWorkerSchedulingAnalysisTest19', function () {
165    let procedureLogicWorkerSchedulingAnalysis = new ProcedureLogicWorkerSchedulingAnalysis();
166    window.postMessage = jest.fn(() => true);
167    expect(procedureLogicWorkerSchedulingAnalysis.getThreadStateByCpu(1)).toBeUndefined();
168  });
169  it('ProcedureLogicWorkerSchedulingAnalysisTest20', function () {
170    let procedureLogicWorkerSchedulingAnalysis = new ProcedureLogicWorkerSchedulingAnalysis();
171    window.postMessage = jest.fn(() => true);
172    expect(procedureLogicWorkerSchedulingAnalysis.getCpuIdle0()).toBeUndefined();
173  });
174  it('ProcedureLogicWorkerSchedulingAnalysisTest21', function () {
175    let procedureLogicWorkerSchedulingAnalysis = new ProcedureLogicWorkerSchedulingAnalysis();
176    window.postMessage = jest.fn(() => true);
177    expect(procedureLogicWorkerSchedulingAnalysis.getCpuIdle()).toBeUndefined();
178  });
179  it('ProcedureLogicWorkerSchedulingAnalysisTest22', function () {
180    let procedureLogicWorkerSchedulingAnalysis = new ProcedureLogicWorkerSchedulingAnalysis();
181    window.postMessage = jest.fn(() => true);
182    expect(procedureLogicWorkerSchedulingAnalysis.getCpuIrq()).toBeUndefined();
183  });
184  it('ProcedureLogicWorkerSchedulingAnalysisTest23', function () {
185    let procedureLogicWorkerSchedulingAnalysis = new ProcedureLogicWorkerSchedulingAnalysis();
186    window.postMessage = jest.fn(() => true);
187    expect(procedureLogicWorkerSchedulingAnalysis.queryThreadCpuUsage([1], [0], [2])).toBeUndefined();
188  });
189  it('ProcedureLogicWorkerSchedulingAnalysisTest24', function () {
190    let procedureLogicWorkerSchedulingAnalysis = new ProcedureLogicWorkerSchedulingAnalysis();
191    window.postMessage = jest.fn(() => true);
192    expect(procedureLogicWorkerSchedulingAnalysis.queryThreadRunTime(1)).toBeUndefined();
193  });
194  it('ProcedureLogicWorkerSchedulingAnalysisTest25', function () {
195    let procedureLogicWorkerSchedulingAnalysis = new ProcedureLogicWorkerSchedulingAnalysis();
196    window.postMessage = jest.fn(() => true);
197    expect(procedureLogicWorkerSchedulingAnalysis.queryProcessThreadCount()).toBeUndefined();
198  });
199  it('ProcedureLogicWorkerSchedulingAnalysisTest26', function () {
200    let procedureLogicWorkerSchedulingAnalysis = new ProcedureLogicWorkerSchedulingAnalysis();
201    window.postMessage = jest.fn(() => true);
202    expect(procedureLogicWorkerSchedulingAnalysis.queryProcessSwitchCount()).toBeUndefined();
203  });
204  it('ProcedureLogicWorkerSchedulingAnalysisTest27', function () {
205    let procedureLogicWorkerSchedulingAnalysis = new ProcedureLogicWorkerSchedulingAnalysis();
206    window.postMessage = jest.fn(() => true);
207    expect(procedureLogicWorkerSchedulingAnalysis.queryThreadStateByTid(1)).toBeUndefined();
208  });
209  it('ProcedureLogicWorkerSchedulingAnalysisTest28', function () {
210    let procedureLogicWorkerSchedulingAnalysis = new ProcedureLogicWorkerSchedulingAnalysis();
211    let data = {
212      params: [
213        {
214          endTs: 1,
215          total: 2,
216          list: '',
217        },
218      ],
219      type: 'scheduling-clearData',
220      id: 1,
221      action: '',
222    };
223    window.postMessage = jest.fn(() => true);
224    expect(procedureLogicWorkerSchedulingAnalysis.handle(data)).toBeUndefined();
225  });
226  it('ProcedureLogicWorkerSchedulingAnalysisTest29', function () {
227    let procedureLogicWorkerSchedulingAnalysis = new ProcedureLogicWorkerSchedulingAnalysis();
228    let data = {
229      params: [
230        {
231          endTs: 1,
232          total: 2,
233          list: '',
234        },
235      ],
236      type: 'scheduling-initFreqData',
237      id: 1,
238      action: '',
239    };
240    window.postMessage = jest.fn(() => true);
241    expect(procedureLogicWorkerSchedulingAnalysis.handle(data)).toBeUndefined();
242  });
243  it('ProcedureLogicWorkerSchedulingAnalysisTest30', function () {
244    let procedureLogicWorkerSchedulingAnalysis = new ProcedureLogicWorkerSchedulingAnalysis();
245    let data = {
246      params: [
247        {
248          endTs: 1,
249          total: 2,
250          list: '',
251        },
252      ],
253      type: 'scheduling-getProcessAndThread',
254      id: 1,
255      action: '',
256    };
257    window.postMessage = jest.fn(() => true);
258    expect(procedureLogicWorkerSchedulingAnalysis.handle(data)).toBeUndefined();
259  });
260  it('ProcedureLogicWorkerSchedulingAnalysisTest31', function () {
261    let procedureLogicWorkerSchedulingAnalysis = new ProcedureLogicWorkerSchedulingAnalysis();
262    let data = {
263      params: [
264        {
265          endTs: 1,
266          total: 2,
267          list: '',
268        },
269      ],
270      type: 'scheduling-getCpuIdle0',
271      id: 1,
272      action: '',
273    };
274    window.postMessage = jest.fn(() => true);
275    expect(procedureLogicWorkerSchedulingAnalysis.handle(data)).toBeUndefined();
276  });
277  it('ProcedureLogicWorkerSchedulingAnalysisTest32', function () {
278    let procedureLogicWorkerSchedulingAnalysis = new ProcedureLogicWorkerSchedulingAnalysis();
279    let data = {
280      params: [
281        {
282          endTs: 1,
283          total: 2,
284          list: '',
285        },
286      ],
287      type: 'scheduling-getCpuUsage',
288      id: 1,
289      action: '',
290    };
291    window.postMessage = jest.fn(() => true);
292    expect(procedureLogicWorkerSchedulingAnalysis.handle(data)).toBeUndefined();
293  });
294  it('ProcedureLogicWorkerSchedulingAnalysisTest33', function () {
295    let procedureLogicWorkerSchedulingAnalysis = new ProcedureLogicWorkerSchedulingAnalysis();
296    let data = {
297      params: [
298        {
299          endTs: 1,
300          total: 2,
301          list: '',
302        },
303      ],
304      type: 'scheduling-CPU Frequency',
305      id: 1,
306      action: '',
307    };
308    window.postMessage = jest.fn(() => true);
309    expect(procedureLogicWorkerSchedulingAnalysis.handle(data)).toBeUndefined();
310  });
311  it('ProcedureLogicWorkerSchedulingAnalysisTest34', function () {
312    let procedureLogicWorkerSchedulingAnalysis = new ProcedureLogicWorkerSchedulingAnalysis();
313    let data = {
314      params: [
315        {
316          endTs: 1,
317          total: 2,
318          list: '',
319        },
320      ],
321      type: 'scheduling-CPU Frequency Thread',
322      id: 1,
323      action: '',
324    };
325    window.postMessage = jest.fn(() => true);
326    expect(procedureLogicWorkerSchedulingAnalysis.handle(data)).toBeUndefined();
327  });
328  it('ProcedureLogicWorkerSchedulingAnalysisTest35', function () {
329    let procedureLogicWorkerSchedulingAnalysis = new ProcedureLogicWorkerSchedulingAnalysis();
330    let data = {
331      params: [
332        {
333          endTs: 1,
334          total: 2,
335          list: '',
336        },
337      ],
338      type: 'scheduling-CPU Idle',
339      id: 1,
340      action: '',
341    };
342    window.postMessage = jest.fn(() => true);
343    expect(procedureLogicWorkerSchedulingAnalysis.handle(data)).toBeUndefined();
344  });
345  it('ProcedureLogicWorkerSchedulingAnalysisTest37', function () {
346    let procedureLogicWorkerSchedulingAnalysis = new ProcedureLogicWorkerSchedulingAnalysis();
347    let data = {
348      params: [
349        {
350          endTs: 1,
351          total: 2,
352          list: '',
353        },
354      ],
355      type: 'scheduling-CPU Irq',
356      id: 1,
357      action: '',
358    };
359    window.postMessage = jest.fn(() => true);
360    expect(procedureLogicWorkerSchedulingAnalysis.handle(data)).toBeUndefined();
361  });
362  it('ProcedureLogicWorkerSchedulingAnalysisTest38', function () {
363    let procedureLogicWorkerSchedulingAnalysis = new ProcedureLogicWorkerSchedulingAnalysis();
364    let data = {
365      params: [
366        {
367          endTs: 1,
368          total: 2,
369          list: '',
370        },
371      ],
372      type: 'scheduling-Thread CpuUsage',
373      id: 1,
374      action: '',
375    };
376    window.postMessage = jest.fn(() => true);
377    expect(procedureLogicWorkerSchedulingAnalysis.handle(data)).toBeUndefined();
378  });
379  it('ProcedureLogicWorkerSchedulingAnalysisTest39', function () {
380    let procedureLogicWorkerSchedulingAnalysis = new ProcedureLogicWorkerSchedulingAnalysis();
381    let data = {
382      params: [
383        {
384          endTs: 1,
385          total: 2,
386          list: '',
387        },
388      ],
389      type: 'scheduling-Thread RunTime',
390      id: 1,
391      action: '',
392    };
393    window.postMessage = jest.fn(() => true);
394    expect(procedureLogicWorkerSchedulingAnalysis.handle(data)).toBeUndefined();
395  });
396  it('ProcedureLogicWorkerSchedulingAnalysisTest40', function () {
397    let procedureLogicWorkerSchedulingAnalysis = new ProcedureLogicWorkerSchedulingAnalysis();
398    let data = {
399      params: [
400        {
401          endTs: 1,
402          total: 2,
403          list: '',
404        },
405      ],
406      type: 'scheduling-Process ThreadCount',
407      id: 1,
408      action: '',
409    };
410    window.postMessage = jest.fn(() => true);
411    expect(procedureLogicWorkerSchedulingAnalysis.handle(data)).toBeUndefined();
412  });
413  it('ProcedureLogicWorkerSchedulingAnalysisTest41', function () {
414    let procedureLogicWorkerSchedulingAnalysis = new ProcedureLogicWorkerSchedulingAnalysis();
415    let data = {
416      params: [
417        {
418          endTs: 1,
419          total: 2,
420          list: '',
421        },
422      ],
423      type: 'scheduling-Process SwitchCount',
424      id: 1,
425      action: '',
426    };
427    window.postMessage = jest.fn(() => true);
428    expect(procedureLogicWorkerSchedulingAnalysis.handle(data)).toBeUndefined();
429  });
430  it('ProcedureLogicWorkerSchedulingAnalysisTest42', function () {
431    let procedureLogicWorkerSchedulingAnalysis = new ProcedureLogicWorkerSchedulingAnalysis();
432    let data = {
433      params: [
434        {
435          endTs: 1,
436          total: 2,
437          list: '',
438        },
439      ],
440      type: 'scheduling-Thread Freq',
441      id: 1,
442      action: '',
443    };
444    window.postMessage = jest.fn(() => true);
445    expect(procedureLogicWorkerSchedulingAnalysis.handle(data)).toBeUndefined();
446  });
447  it('ProcedureLogicWorkerSchedulingAnalysisTest43', function () {
448    let procedureLogicWorkerSchedulingAnalysis = new ProcedureLogicWorkerSchedulingAnalysis();
449    window.postMessage = jest.fn(() => true);
450    expect(procedureLogicWorkerSchedulingAnalysis.groupIrgDataByCpu([])).toBeTruthy();
451  });
452  it('ProcedureLogicWorkerSchedulingAnalysisTest44', function () {
453    let procedureLogicWorkerSchedulingAnalysis = new ProcedureLogicWorkerSchedulingAnalysis();
454    window.postMessage = jest.fn(() => true);
455    expect(procedureLogicWorkerSchedulingAnalysis.computeCpuMeasureDur([], 1)).toBeTruthy();
456  });
457  it('ProcedureLogicWorkerSchedulingAnalysisTest45', function () {
458    let procedureLogicWorkerSchedulingAnalysis = new ProcedureLogicWorkerSchedulingAnalysis();
459    window.postMessage = jest.fn(() => true);
460    expect(procedureLogicWorkerSchedulingAnalysis.handlerThreadCpuUsageData([])).toBeTruthy();
461  });
462});
463