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