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 { VmTrackerChart } from '../../../../src/trace/component/chart/SpVmTrackerChart';
20fb726d48Sopenharmony_ciimport { SpChartManager } from '../../../../src/trace/component/chart/SpChartManager';
21fb726d48Sopenharmony_ci
22fb726d48Sopenharmony_cijest.mock('../../../../src/js-heap/model/DatabaseStruct');
23fb726d48Sopenharmony_ciconst sqlite = require('../../../../src/trace/database/sql/Dma.sql');
24fb726d48Sopenharmony_cijest.mock('../../../../src/trace/database/sql/Dma.sql');
25fb726d48Sopenharmony_ciconst memorySqlite = require('../../../../src/trace/database/sql/Memory.sql');
26fb726d48Sopenharmony_cijest.mock('../../../../src/trace/database/sql/Memory.sql');
27fb726d48Sopenharmony_ciconst smapsSql = require('../../../../src/trace/database/sql/Smaps.sql');
28fb726d48Sopenharmony_cijest.mock('../../../../src/trace/database/sql/Smaps.sql');
29fb726d48Sopenharmony_ciconst gpuSql = require('../../../../src/trace/database/sql/Gpu.sql');
30fb726d48Sopenharmony_cijest.mock('../../../../src/trace/database/sql/Gpu.sql');
31fb726d48Sopenharmony_cijest.mock('../../../../src/trace/component/chart/SpHiPerf');
32fb726d48Sopenharmony_ci
33fb726d48Sopenharmony_ci
34fb726d48Sopenharmony_ci// @ts-ignore
35fb726d48Sopenharmony_ciwindow.ResizeObserver =
36fb726d48Sopenharmony_ci  window.ResizeObserver ||
37fb726d48Sopenharmony_ci  jest.fn().mockImplementation(() => ({
38fb726d48Sopenharmony_ci    disconnect: jest.fn(),
39fb726d48Sopenharmony_ci    observe: jest.fn(),
40fb726d48Sopenharmony_ci    unobserve: jest.fn(),
41fb726d48Sopenharmony_ci  }));
42fb726d48Sopenharmony_ci
43fb726d48Sopenharmony_cidescribe('SpVmTrackerChart Test', () => {
44fb726d48Sopenharmony_ci  let dmaSmapsData = sqlite.queryDmaSampsData;
45fb726d48Sopenharmony_ci  let smapsDmaData = [
46fb726d48Sopenharmony_ci    {
47fb726d48Sopenharmony_ci      startNs: 0,
48fb726d48Sopenharmony_ci      value: 1024,
49fb726d48Sopenharmony_ci      flag: 1,
50fb726d48Sopenharmony_ci      ipid: 1,
51fb726d48Sopenharmony_ci      expTaskComm: 'delay',
52fb726d48Sopenharmony_ci    },
53fb726d48Sopenharmony_ci  ];
54fb726d48Sopenharmony_ci  dmaSmapsData.mockResolvedValue(smapsDmaData);
55fb726d48Sopenharmony_ci  let gpuMemoryData = memorySqlite.queryGpuMemoryData;
56fb726d48Sopenharmony_ci  let gpuData = [
57fb726d48Sopenharmony_ci    {
58fb726d48Sopenharmony_ci      startNs: 0,
59fb726d48Sopenharmony_ci      value: 1024,
60fb726d48Sopenharmony_ci      ipid: 1,
61fb726d48Sopenharmony_ci    },
62fb726d48Sopenharmony_ci  ];
63fb726d48Sopenharmony_ci  gpuMemoryData.mockResolvedValue(gpuData);
64fb726d48Sopenharmony_ci  let smapsExits = smapsSql.querySmapsExits;
65fb726d48Sopenharmony_ci  let exits = [
66fb726d48Sopenharmony_ci    {
67fb726d48Sopenharmony_ci      event_name: 'trace_smaps',
68fb726d48Sopenharmony_ci    },
69fb726d48Sopenharmony_ci  ];
70fb726d48Sopenharmony_ci  smapsExits.mockResolvedValue(exits);
71fb726d48Sopenharmony_ci  let vmTrackerShmData = memorySqlite.queryVmTrackerShmData;
72fb726d48Sopenharmony_ci  let shmData = [
73fb726d48Sopenharmony_ci    {
74fb726d48Sopenharmony_ci      startNs: 0,
75fb726d48Sopenharmony_ci      value: 1024,
76fb726d48Sopenharmony_ci    },
77fb726d48Sopenharmony_ci  ];
78fb726d48Sopenharmony_ci  vmTrackerShmData.mockResolvedValue(shmData);
79fb726d48Sopenharmony_ci  let purgeableProcessData = memorySqlite.queryPurgeableProcessData;
80fb726d48Sopenharmony_ci  let processData = [
81fb726d48Sopenharmony_ci    {
82fb726d48Sopenharmony_ci      startNs: 0,
83fb726d48Sopenharmony_ci      value: 1024,
84fb726d48Sopenharmony_ci    },
85fb726d48Sopenharmony_ci  ];
86fb726d48Sopenharmony_ci  purgeableProcessData.mockResolvedValue(processData);
87fb726d48Sopenharmony_ci  let gpuGlData = gpuSql.queryGpuData;
88fb726d48Sopenharmony_ci  let glData = [
89fb726d48Sopenharmony_ci    {
90fb726d48Sopenharmony_ci      startNs: 0,
91fb726d48Sopenharmony_ci      value: 1024,
92fb726d48Sopenharmony_ci    },
93fb726d48Sopenharmony_ci  ];
94fb726d48Sopenharmony_ci  gpuGlData.mockResolvedValue(glData);
95fb726d48Sopenharmony_ci  let gpuTotalData = gpuSql.queryGpuTotalData;
96fb726d48Sopenharmony_ci  let totalData = [
97fb726d48Sopenharmony_ci    {
98fb726d48Sopenharmony_ci      startNs: 0,
99fb726d48Sopenharmony_ci      value: 1024,
100fb726d48Sopenharmony_ci    },
101fb726d48Sopenharmony_ci  ];
102fb726d48Sopenharmony_ci  gpuTotalData.mockResolvedValue(totalData);
103fb726d48Sopenharmony_ci  let gpuTotalType = gpuSql.queryGpuTotalType;
104fb726d48Sopenharmony_ci  let totalType = [
105fb726d48Sopenharmony_ci    {
106fb726d48Sopenharmony_ci      id: 1,
107fb726d48Sopenharmony_ci      data: 'delay',
108fb726d48Sopenharmony_ci    },
109fb726d48Sopenharmony_ci  ];
110fb726d48Sopenharmony_ci  gpuTotalType.mockResolvedValue(totalType);
111fb726d48Sopenharmony_ci  let gpuWindowData = gpuSql.queryGpuWindowData;
112fb726d48Sopenharmony_ci  let windowsData = [
113fb726d48Sopenharmony_ci    {
114fb726d48Sopenharmony_ci      startNs: 0,
115fb726d48Sopenharmony_ci      value: 1024,
116fb726d48Sopenharmony_ci    },
117fb726d48Sopenharmony_ci  ];
118fb726d48Sopenharmony_ci  gpuWindowData.mockResolvedValue(windowsData);
119fb726d48Sopenharmony_ci  let gpuWindowType = gpuSql.queryGpuWindowType;
120fb726d48Sopenharmony_ci  let windowsType = [
121fb726d48Sopenharmony_ci    {
122fb726d48Sopenharmony_ci      id: 1,
123fb726d48Sopenharmony_ci      data: 'delay',
124fb726d48Sopenharmony_ci      pid: 1,
125fb726d48Sopenharmony_ci    },
126fb726d48Sopenharmony_ci  ];
127fb726d48Sopenharmony_ci  gpuWindowType.mockResolvedValue(windowsType);
128fb726d48Sopenharmony_ci  let htmlElement: any = document.createElement('sp-system-trace');
129fb726d48Sopenharmony_ci  let manager = new SpChartManager(htmlElement);
130fb726d48Sopenharmony_ci  let spVmTrackerChart = new VmTrackerChart(htmlElement);
131fb726d48Sopenharmony_ci  let memoryData = [
132fb726d48Sopenharmony_ci    {
133fb726d48Sopenharmony_ci      startNs: 0,
134fb726d48Sopenharmony_ci      endNs: 0,
135fb726d48Sopenharmony_ci      dur: 0,
136fb726d48Sopenharmony_ci      name: '',
137fb726d48Sopenharmony_ci      textWidth: 0,
138fb726d48Sopenharmony_ci      value: 0,
139fb726d48Sopenharmony_ci      type: '',
140fb726d48Sopenharmony_ci    },
141fb726d48Sopenharmony_ci  ];
142fb726d48Sopenharmony_ci  it('SpVmTrackerChart01', function () {
143fb726d48Sopenharmony_ci    spVmTrackerChart.initVmTrackerFolder();
144fb726d48Sopenharmony_ci    expect(spVmTrackerChart).toBeDefined();
145fb726d48Sopenharmony_ci  });
146fb726d48Sopenharmony_ci  it('SpVmTrackerChart02', function () {
147fb726d48Sopenharmony_ci    expect(spVmTrackerChart.getSmapsKeyName('USS')).toBeDefined();
148fb726d48Sopenharmony_ci  });
149fb726d48Sopenharmony_ci  it('SpVmTrackerChart07', function () {
150fb726d48Sopenharmony_ci    expect(spVmTrackerChart.getSmapsKeyName('RSS')).toBeDefined();
151fb726d48Sopenharmony_ci  });
152fb726d48Sopenharmony_ci  it('SpVmTrackerChart08', function () {
153fb726d48Sopenharmony_ci    expect(spVmTrackerChart.getSmapsKeyName('')).toBeDefined();
154fb726d48Sopenharmony_ci  });
155fb726d48Sopenharmony_ci  it('SpVmTrackerChart03', function () {
156fb726d48Sopenharmony_ci    expect(spVmTrackerChart.initTraceRow('dirty', 'smaps', 'VmTracker')).toBeDefined();
157fb726d48Sopenharmony_ci  });
158fb726d48Sopenharmony_ci  it('SpVmTrackerChart04', function () {
159fb726d48Sopenharmony_ci    expect(spVmTrackerChart.initPurgeablePin()).toBeDefined();
160fb726d48Sopenharmony_ci  });
161fb726d48Sopenharmony_ci  it('SpVmTrackerChart05', function () {
162fb726d48Sopenharmony_ci    expect(spVmTrackerChart.initPurgeableTotal()).toBeDefined();
163fb726d48Sopenharmony_ci  });
164fb726d48Sopenharmony_ci  it('SpVmTrackerChart06', function () {
165fb726d48Sopenharmony_ci    expect(spVmTrackerChart.showTip).toBeDefined();
166fb726d48Sopenharmony_ci  });
167fb726d48Sopenharmony_ci  it('SpVmTrackerChart09', function () {
168fb726d48Sopenharmony_ci    expect(spVmTrackerChart.initGpuFolder()).toBeDefined();
169fb726d48Sopenharmony_ci  });
170fb726d48Sopenharmony_ci  it('SpVmTrackerChart09', function () {
171fb726d48Sopenharmony_ci    expect(spVmTrackerChart.initSMapsFolder()).toBeDefined();
172fb726d48Sopenharmony_ci  });
173fb726d48Sopenharmony_ci  it('SpVmTrackerChart10', function () {
174fb726d48Sopenharmony_ci    expect(spVmTrackerChart.initVmTrackerFolder()).toBeDefined();
175fb726d48Sopenharmony_ci  });
176fb726d48Sopenharmony_ci  it('SpVmTrackerChart11', function () {
177fb726d48Sopenharmony_ci    expect(spVmTrackerChart.initDmaRow()).toBeDefined();
178fb726d48Sopenharmony_ci  });
179fb726d48Sopenharmony_ci  it('SpVmTrackerChart12', function () {
180fb726d48Sopenharmony_ci    expect(spVmTrackerChart.initSmapsRows('Swapped')).toBeDefined();
181fb726d48Sopenharmony_ci  });
182fb726d48Sopenharmony_ci  it('SpVmTrackerChart13', function () {
183fb726d48Sopenharmony_ci    expect(spVmTrackerChart.initShmRows()).toBeDefined();
184fb726d48Sopenharmony_ci  });
185fb726d48Sopenharmony_ci  it('SpVmTrackerChart14', function () {
186fb726d48Sopenharmony_ci    expect(spVmTrackerChart.initGpuMemoryRow(memoryData)).toBeDefined();
187fb726d48Sopenharmony_ci  });
188fb726d48Sopenharmony_ci  it('SpVmTrackerChart15', function () {
189fb726d48Sopenharmony_ci    expect(spVmTrackerChart.addGpuGLRow(memoryData)).toBeDefined();
190fb726d48Sopenharmony_ci  });
191fb726d48Sopenharmony_ci  it('SpVmTrackerChart16', function () {
192fb726d48Sopenharmony_ci    expect(spVmTrackerChart.addGpuTotalRow()).toBeDefined();
193fb726d48Sopenharmony_ci  });
194fb726d48Sopenharmony_ci});
195