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