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