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_ciimport {
17fb726d48Sopenharmony_ci  PerfFile,
18fb726d48Sopenharmony_ci  PerfThread,
19fb726d48Sopenharmony_ci  PerfCallChain,
20fb726d48Sopenharmony_ci  PerfCallChainMerageData,
21fb726d48Sopenharmony_ci  PerfSample,
22fb726d48Sopenharmony_ci  PerfStack,
23fb726d48Sopenharmony_ci  PerfCall,
24fb726d48Sopenharmony_ci  PerfCmdLine,
25fb726d48Sopenharmony_ci} from '../../../src/trace/bean/PerfProfile';
26fb726d48Sopenharmony_ci
27fb726d48Sopenharmony_cijest.mock('../../../src/trace/component/trace/base/TraceRow', () => {
28fb726d48Sopenharmony_ci  return {};
29fb726d48Sopenharmony_ci});
30fb726d48Sopenharmony_ci
31fb726d48Sopenharmony_cidescribe('PerfProfile Test', () => {
32fb726d48Sopenharmony_ci  let perfFile = new PerfFile();
33fb726d48Sopenharmony_ci  let perfThread = new PerfThread();
34fb726d48Sopenharmony_ci  let perfCallChain = new PerfCallChain();
35fb726d48Sopenharmony_ci  let perfCallChainMerageData = new PerfCallChainMerageData();
36fb726d48Sopenharmony_ci  let perfSample = new PerfSample();
37fb726d48Sopenharmony_ci  let perfStack = new PerfStack();
38fb726d48Sopenharmony_ci  let perfCall = new PerfCall();
39fb726d48Sopenharmony_ci  let perfCmdLine = new PerfCmdLine();
40fb726d48Sopenharmony_ci
41fb726d48Sopenharmony_ci  it('PerfFile Test', function () {
42fb726d48Sopenharmony_ci    perfFile = {
43fb726d48Sopenharmony_ci      fileId: 0,
44fb726d48Sopenharmony_ci      symbol: 'symbol',
45fb726d48Sopenharmony_ci      path: 'path',
46fb726d48Sopenharmony_ci      fileName: 'fileName',
47fb726d48Sopenharmony_ci    };
48fb726d48Sopenharmony_ci
49fb726d48Sopenharmony_ci    expect(perfFile).not.toBeUndefined();
50fb726d48Sopenharmony_ci    expect(perfFile).toMatchInlineSnapshot(
51fb726d48Sopenharmony_ci{
52fb726d48Sopenharmony_ci  fileId: expect.any(Number),
53fb726d48Sopenharmony_ci  symbol: expect.any(String),
54fb726d48Sopenharmony_ci  path: expect.any(String),
55fb726d48Sopenharmony_ci  fileName: expect.any(String) }, `
56fb726d48Sopenharmony_ci{
57fb726d48Sopenharmony_ci  "fileId": Any<Number>,
58fb726d48Sopenharmony_ci  "fileName": Any<String>,
59fb726d48Sopenharmony_ci  "path": Any<String>,
60fb726d48Sopenharmony_ci  "symbol": Any<String>,
61fb726d48Sopenharmony_ci}
62fb726d48Sopenharmony_ci`);
63fb726d48Sopenharmony_ci  });
64fb726d48Sopenharmony_ci
65fb726d48Sopenharmony_ci  it('PerfThread Test', function () {
66fb726d48Sopenharmony_ci    perfThread = {
67fb726d48Sopenharmony_ci      tid: 0,
68fb726d48Sopenharmony_ci      pid: 0,
69fb726d48Sopenharmony_ci      threadName: 'threadName',
70fb726d48Sopenharmony_ci      processName: 'processName',
71fb726d48Sopenharmony_ci    };
72fb726d48Sopenharmony_ci
73fb726d48Sopenharmony_ci    expect(perfThread).not.toBeUndefined();
74fb726d48Sopenharmony_ci    expect(perfThread).toMatchInlineSnapshot(
75fb726d48Sopenharmony_ci{
76fb726d48Sopenharmony_ci  tid: expect.any(Number),
77fb726d48Sopenharmony_ci  pid: expect.any(Number),
78fb726d48Sopenharmony_ci  threadName: expect.any(String),
79fb726d48Sopenharmony_ci  processName: expect.any(String) }, `
80fb726d48Sopenharmony_ci{
81fb726d48Sopenharmony_ci  "pid": Any<Number>,
82fb726d48Sopenharmony_ci  "processName": Any<String>,
83fb726d48Sopenharmony_ci  "threadName": Any<String>,
84fb726d48Sopenharmony_ci  "tid": Any<Number>,
85fb726d48Sopenharmony_ci}
86fb726d48Sopenharmony_ci`);
87fb726d48Sopenharmony_ci  });
88fb726d48Sopenharmony_ci
89fb726d48Sopenharmony_ci  it('perfCallChain Test', function () {
90fb726d48Sopenharmony_ci    perfCallChain = {
91fb726d48Sopenharmony_ci      tid: 0,
92fb726d48Sopenharmony_ci      pid: 0,
93fb726d48Sopenharmony_ci      name: 'name',
94fb726d48Sopenharmony_ci      fileName: 'fileName',
95fb726d48Sopenharmony_ci      threadState: 'threadState',
96fb726d48Sopenharmony_ci      startNS: 0,
97fb726d48Sopenharmony_ci      dur: 0,
98fb726d48Sopenharmony_ci      sampleId: 0,
99fb726d48Sopenharmony_ci      callChainId: 0,
100fb726d48Sopenharmony_ci      vaddrInFile: 0,
101fb726d48Sopenharmony_ci      fileId: 0,
102fb726d48Sopenharmony_ci      symbolId: 0,
103fb726d48Sopenharmony_ci      parentId: 'parentId',
104fb726d48Sopenharmony_ci      id: 'id',
105fb726d48Sopenharmony_ci      topDownMerageId: 'topDownMerageId',
106fb726d48Sopenharmony_ci      topDownMerageParentId: 'topDownMerageParentId',
107fb726d48Sopenharmony_ci      bottomUpMerageId: 'bottomUpMerageId',
108fb726d48Sopenharmony_ci      bottomUpMerageParentId: 'bottomUpMerageParentId',
109fb726d48Sopenharmony_ci      depth: 0,
110fb726d48Sopenharmony_ci    };
111fb726d48Sopenharmony_ci
112fb726d48Sopenharmony_ci    expect(perfCallChain).not.toBeUndefined();
113fb726d48Sopenharmony_ci    expect(perfCallChain).toMatchInlineSnapshot(
114fb726d48Sopenharmony_ci{
115fb726d48Sopenharmony_ci  tid: expect.any(Number),
116fb726d48Sopenharmony_ci  pid: expect.any(Number),
117fb726d48Sopenharmony_ci  name: expect.any(String),
118fb726d48Sopenharmony_ci  fileName: expect.any(String),
119fb726d48Sopenharmony_ci  threadState: expect.any(String),
120fb726d48Sopenharmony_ci  startNS: expect.any(Number),
121fb726d48Sopenharmony_ci  dur: expect.any(Number),
122fb726d48Sopenharmony_ci  sampleId: expect.any(Number),
123fb726d48Sopenharmony_ci  callChainId: expect.any(Number),
124fb726d48Sopenharmony_ci  vaddrInFile: expect.any(Number),
125fb726d48Sopenharmony_ci  fileId: expect.any(Number),
126fb726d48Sopenharmony_ci  symbolId: expect.any(Number),
127fb726d48Sopenharmony_ci  parentId: expect.any(String),
128fb726d48Sopenharmony_ci  id: expect.any(String),
129fb726d48Sopenharmony_ci  topDownMerageId: expect.any(String),
130fb726d48Sopenharmony_ci  topDownMerageParentId: expect.any(String),
131fb726d48Sopenharmony_ci  bottomUpMerageId: expect.any(String),
132fb726d48Sopenharmony_ci  bottomUpMerageParentId: expect.any(String),
133fb726d48Sopenharmony_ci  depth: expect.any(Number) }, `
134fb726d48Sopenharmony_ci{
135fb726d48Sopenharmony_ci  "bottomUpMerageId": Any<String>,
136fb726d48Sopenharmony_ci  "bottomUpMerageParentId": Any<String>,
137fb726d48Sopenharmony_ci  "callChainId": Any<Number>,
138fb726d48Sopenharmony_ci  "depth": Any<Number>,
139fb726d48Sopenharmony_ci  "dur": Any<Number>,
140fb726d48Sopenharmony_ci  "fileId": Any<Number>,
141fb726d48Sopenharmony_ci  "fileName": Any<String>,
142fb726d48Sopenharmony_ci  "id": Any<String>,
143fb726d48Sopenharmony_ci  "name": Any<String>,
144fb726d48Sopenharmony_ci  "parentId": Any<String>,
145fb726d48Sopenharmony_ci  "pid": Any<Number>,
146fb726d48Sopenharmony_ci  "sampleId": Any<Number>,
147fb726d48Sopenharmony_ci  "startNS": Any<Number>,
148fb726d48Sopenharmony_ci  "symbolId": Any<Number>,
149fb726d48Sopenharmony_ci  "threadState": Any<String>,
150fb726d48Sopenharmony_ci  "tid": Any<Number>,
151fb726d48Sopenharmony_ci  "topDownMerageId": Any<String>,
152fb726d48Sopenharmony_ci  "topDownMerageParentId": Any<String>,
153fb726d48Sopenharmony_ci  "vaddrInFile": Any<Number>,
154fb726d48Sopenharmony_ci}
155fb726d48Sopenharmony_ci`);
156fb726d48Sopenharmony_ci  });
157fb726d48Sopenharmony_ci
158fb726d48Sopenharmony_ci  it('perfCallChain Test', function () {
159fb726d48Sopenharmony_ci    perfCallChainMerageData = {
160fb726d48Sopenharmony_ci      id: 'id',
161fb726d48Sopenharmony_ci      parentId: 'parentId',
162fb726d48Sopenharmony_ci      symbolName: 'symbolName',
163fb726d48Sopenharmony_ci      symbol: 'symbol',
164fb726d48Sopenharmony_ci      libName: 'libName',
165fb726d48Sopenharmony_ci      self: 'self',
166fb726d48Sopenharmony_ci      weight: 'weight',
167fb726d48Sopenharmony_ci      selfDur: 0,
168fb726d48Sopenharmony_ci      dur: 0,
169fb726d48Sopenharmony_ci      tid: 0,
170fb726d48Sopenharmony_ci      pid: 0,
171fb726d48Sopenharmony_ci      type: 0,
172fb726d48Sopenharmony_ci      isSelected: false,
173fb726d48Sopenharmony_ci    };
174fb726d48Sopenharmony_ci
175fb726d48Sopenharmony_ci    expect(perfCallChainMerageData).not.toBeUndefined();
176fb726d48Sopenharmony_ci    expect(perfCallChainMerageData).toMatchInlineSnapshot(
177fb726d48Sopenharmony_ci{
178fb726d48Sopenharmony_ci  id: expect.any(String),
179fb726d48Sopenharmony_ci  parentId: expect.any(String),
180fb726d48Sopenharmony_ci  symbolName: expect.any(String),
181fb726d48Sopenharmony_ci  symbol: expect.any(String),
182fb726d48Sopenharmony_ci  libName: expect.any(String),
183fb726d48Sopenharmony_ci  self: expect.any(String),
184fb726d48Sopenharmony_ci  weight: expect.any(String),
185fb726d48Sopenharmony_ci  selfDur: expect.any(Number),
186fb726d48Sopenharmony_ci  dur: expect.any(Number),
187fb726d48Sopenharmony_ci  tid: expect.any(Number),
188fb726d48Sopenharmony_ci  pid: expect.any(Number),
189fb726d48Sopenharmony_ci  type: expect.any(Number),
190fb726d48Sopenharmony_ci  isSelected: expect.any(Boolean) }, `
191fb726d48Sopenharmony_ci{
192fb726d48Sopenharmony_ci  "dur": Any<Number>,
193fb726d48Sopenharmony_ci  "id": Any<String>,
194fb726d48Sopenharmony_ci  "isSelected": Any<Boolean>,
195fb726d48Sopenharmony_ci  "libName": Any<String>,
196fb726d48Sopenharmony_ci  "parentId": Any<String>,
197fb726d48Sopenharmony_ci  "pid": Any<Number>,
198fb726d48Sopenharmony_ci  "self": Any<String>,
199fb726d48Sopenharmony_ci  "selfDur": Any<Number>,
200fb726d48Sopenharmony_ci  "symbol": Any<String>,
201fb726d48Sopenharmony_ci  "symbolName": Any<String>,
202fb726d48Sopenharmony_ci  "tid": Any<Number>,
203fb726d48Sopenharmony_ci  "type": Any<Number>,
204fb726d48Sopenharmony_ci  "weight": Any<String>,
205fb726d48Sopenharmony_ci}
206fb726d48Sopenharmony_ci`);
207fb726d48Sopenharmony_ci  });
208fb726d48Sopenharmony_ci
209fb726d48Sopenharmony_ci  it('perfSample Test', function () {
210fb726d48Sopenharmony_ci    perfSample = {
211fb726d48Sopenharmony_ci      sampleId: 0,
212fb726d48Sopenharmony_ci      time: 0,
213fb726d48Sopenharmony_ci      timeString: 'timeString',
214fb726d48Sopenharmony_ci      core: 0,
215fb726d48Sopenharmony_ci      coreName: 'coreName',
216fb726d48Sopenharmony_ci      state: 'state',
217fb726d48Sopenharmony_ci      pid: 0,
218fb726d48Sopenharmony_ci      processName: 'processName',
219fb726d48Sopenharmony_ci      tid: 0,
220fb726d48Sopenharmony_ci      threadName: 'threadName',
221fb726d48Sopenharmony_ci      depth: 0,
222fb726d48Sopenharmony_ci      addr: 'addr',
223fb726d48Sopenharmony_ci      fileId: 0,
224fb726d48Sopenharmony_ci      symbolId: 0,
225fb726d48Sopenharmony_ci    };
226fb726d48Sopenharmony_ci    expect(perfSample).not.toBeUndefined();
227fb726d48Sopenharmony_ci    expect(perfSample).toMatchInlineSnapshot(
228fb726d48Sopenharmony_ci{
229fb726d48Sopenharmony_ci  sampleId: expect.any(Number),
230fb726d48Sopenharmony_ci  time: expect.any(Number),
231fb726d48Sopenharmony_ci  timeString: expect.any(String),
232fb726d48Sopenharmony_ci  core: expect.any(Number),
233fb726d48Sopenharmony_ci  coreName: expect.any(String),
234fb726d48Sopenharmony_ci  state: expect.any(String),
235fb726d48Sopenharmony_ci  pid: expect.any(Number),
236fb726d48Sopenharmony_ci  processName: expect.any(String),
237fb726d48Sopenharmony_ci  tid: expect.any(Number),
238fb726d48Sopenharmony_ci  threadName: expect.any(String),
239fb726d48Sopenharmony_ci  depth: expect.any(Number),
240fb726d48Sopenharmony_ci  addr: expect.any(String),
241fb726d48Sopenharmony_ci  fileId: expect.any(Number),
242fb726d48Sopenharmony_ci  symbolId: expect.any(Number) }, `
243fb726d48Sopenharmony_ci{
244fb726d48Sopenharmony_ci  "addr": Any<String>,
245fb726d48Sopenharmony_ci  "core": Any<Number>,
246fb726d48Sopenharmony_ci  "coreName": Any<String>,
247fb726d48Sopenharmony_ci  "depth": Any<Number>,
248fb726d48Sopenharmony_ci  "fileId": Any<Number>,
249fb726d48Sopenharmony_ci  "pid": Any<Number>,
250fb726d48Sopenharmony_ci  "processName": Any<String>,
251fb726d48Sopenharmony_ci  "sampleId": Any<Number>,
252fb726d48Sopenharmony_ci  "state": Any<String>,
253fb726d48Sopenharmony_ci  "symbolId": Any<Number>,
254fb726d48Sopenharmony_ci  "threadName": Any<String>,
255fb726d48Sopenharmony_ci  "tid": Any<Number>,
256fb726d48Sopenharmony_ci  "time": Any<Number>,
257fb726d48Sopenharmony_ci  "timeString": Any<String>,
258fb726d48Sopenharmony_ci}
259fb726d48Sopenharmony_ci`);
260fb726d48Sopenharmony_ci  });
261fb726d48Sopenharmony_ci
262fb726d48Sopenharmony_ci  it('perfStack Test', function () {
263fb726d48Sopenharmony_ci    perfStack = {
264fb726d48Sopenharmony_ci      symbol: '',
265fb726d48Sopenharmony_ci      path: '',
266fb726d48Sopenharmony_ci      fileId: 0,
267fb726d48Sopenharmony_ci      type: 0,
268fb726d48Sopenharmony_ci    };
269fb726d48Sopenharmony_ci    expect(perfStack).not.toBeUndefined();
270fb726d48Sopenharmony_ci    expect(perfStack).toMatchInlineSnapshot(
271fb726d48Sopenharmony_ci{
272fb726d48Sopenharmony_ci  symbol: expect.any(String),
273fb726d48Sopenharmony_ci  path: expect.any(String),
274fb726d48Sopenharmony_ci  fileId: expect.any(Number),
275fb726d48Sopenharmony_ci  type: expect.any(Number) }, `
276fb726d48Sopenharmony_ci{
277fb726d48Sopenharmony_ci  "fileId": Any<Number>,
278fb726d48Sopenharmony_ci  "path": Any<String>,
279fb726d48Sopenharmony_ci  "symbol": Any<String>,
280fb726d48Sopenharmony_ci  "type": Any<Number>,
281fb726d48Sopenharmony_ci}
282fb726d48Sopenharmony_ci`);
283fb726d48Sopenharmony_ci  });
284fb726d48Sopenharmony_ci
285fb726d48Sopenharmony_ci  it('perfCall Test', function () {
286fb726d48Sopenharmony_ci    perfCall = {
287fb726d48Sopenharmony_ci      sampleId: 0,
288fb726d48Sopenharmony_ci      depth: 0,
289fb726d48Sopenharmony_ci      name: 'name',
290fb726d48Sopenharmony_ci    };
291fb726d48Sopenharmony_ci    expect(perfCall).not.toBeUndefined();
292fb726d48Sopenharmony_ci    expect(perfCall).toMatchInlineSnapshot(
293fb726d48Sopenharmony_ci{
294fb726d48Sopenharmony_ci  sampleId: expect.any(Number),
295fb726d48Sopenharmony_ci  depth: expect.any(Number),
296fb726d48Sopenharmony_ci  name: expect.any(String) }, `
297fb726d48Sopenharmony_ci{
298fb726d48Sopenharmony_ci  "depth": Any<Number>,
299fb726d48Sopenharmony_ci  "name": Any<String>,
300fb726d48Sopenharmony_ci  "sampleId": Any<Number>,
301fb726d48Sopenharmony_ci}
302fb726d48Sopenharmony_ci`);
303fb726d48Sopenharmony_ci  });
304fb726d48Sopenharmony_ci
305fb726d48Sopenharmony_ci  it('PerfFile Test01', function () {
306fb726d48Sopenharmony_ci    let perfFile = new PerfFile();
307fb726d48Sopenharmony_ci    perfFile.setFileName = jest.fn(() => true)
308fb726d48Sopenharmony_ci    expect(perfFile.setFileName()).toBe(true);
309fb726d48Sopenharmony_ci  });
310fb726d48Sopenharmony_ci
311fb726d48Sopenharmony_ci  it('PerfFile Test02', function () {
312fb726d48Sopenharmony_ci    let perfFile = new PerfFile();
313fb726d48Sopenharmony_ci    let perfF = {
314fb726d48Sopenharmony_ci      fileId: 0,
315fb726d48Sopenharmony_ci      symbol: 'symbol',
316fb726d48Sopenharmony_ci      path: 'path',
317fb726d48Sopenharmony_ci      fileName: 'fileName',
318fb726d48Sopenharmony_ci    };
319fb726d48Sopenharmony_ci    expect(PerfFile.setFileName(perfF)).toBe(undefined);
320fb726d48Sopenharmony_ci  });
321fb726d48Sopenharmony_ci
322fb726d48Sopenharmony_ci  it('PerfCmdLine Test', function () {
323fb726d48Sopenharmony_ci    perfCmdLine = {
324fb726d48Sopenharmony_ci      report_value: 'report_value',
325fb726d48Sopenharmony_ci    };
326fb726d48Sopenharmony_ci    expect(perfCmdLine).not.toBeUndefined();
327fb726d48Sopenharmony_ci    expect(perfCmdLine).toMatchInlineSnapshot(
328fb726d48Sopenharmony_ci{
329fb726d48Sopenharmony_ci  report_value: expect.any(String) }, `
330fb726d48Sopenharmony_ci{
331fb726d48Sopenharmony_ci  "report_value": Any<String>,
332fb726d48Sopenharmony_ci}
333fb726d48Sopenharmony_ci`);
334fb726d48Sopenharmony_ci  });
335fb726d48Sopenharmony_ci});
336