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