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 { TraceRow } from '../../../../src/trace/component/trace/base/TraceRow'; 17import { threadPool } from '../../../../src/trace/database/SqlLite'; 18import { 19 abilityDmaDataSender, 20 abilityGpuMemoryDataSender, 21 abilityPurgeableDataSender, 22 dmaDataSender, 23 gpuGpuDataSender, 24 gpuMemoryDataSender, 25 gpuResourceDataSender, 26 gpuTotalDataSender, 27 gpuWindowDataSender, 28 purgeableDataSender, 29 shmDataSender, 30 sMapsDataSender 31} from '../../../../src/trace/database/data-trafic/VmTrackerDataSender'; 32import { SnapshotStruct } from '../../../../src/trace/database/ui-worker/ProcedureWorkerSnapshot'; 33jest.mock('../../../../src/js-heap/model/DatabaseStruct', () => {}); 34jest.mock('../../../../src/trace/database/ui-worker/ProcedureWorker', () => { 35 return {}; 36}); 37jest.mock('../../../../src/trace/database/ui-worker/ProcedureWorkerSnapshot', () => { 38 return {}; 39}); 40describe('VmTrackerDataSender Test', () => { 41 let data = { 42 dur: 1000, 43 endNs: 576258, 44 frame: {x: 61, y: 3, width: 13, height: 33}, 45 name: "SnapShot 1", 46 startNs: 476258, 47 textWidth: 54.6826, 48 value: 21313 49 } 50 it('VmTrackerDataSenderTest01', () => { 51 threadPool.submitProto = jest.fn((query: number, params: any, callback: Function) => { 52 callback(data, 1, true); 53 }); 54 let sMapsTraceRow = TraceRow.skeleton<SnapshotStruct>(); 55 sMapsDataSender('dirty', sMapsTraceRow).then(result => { 56 expect(result).toHaveLength(1); 57 expect(threadPool.submitProto).toHaveBeenCalled(); 58 }); 59 }); 60 61 it('VmTrackerDataSenderTest02', () => { 62 threadPool.submitProto = jest.fn((query: number, params: any, callback: Function) => { 63 callback(data, 1, true); 64 }); 65 let dmaTraceRow = TraceRow.skeleton<SnapshotStruct>(); 66 dmaDataSender(1, dmaTraceRow).then(result => { 67 expect(result).toHaveLength(1); 68 expect(threadPool.submitProto).toHaveBeenCalled(); 69 }); 70 }); 71 72 it('VmTrackerDataSenderTest03', () => { 73 threadPool.submitProto = jest.fn((query: number, params: any, callback: Function) => { 74 callback(data, 1, true); 75 }); 76 let gpuMemoryTraceRow = TraceRow.skeleton<SnapshotStruct>(); 77 gpuMemoryDataSender(1, gpuMemoryTraceRow).then(result => { 78 expect(result).toHaveLength(1); 79 expect(threadPool.submitProto).toHaveBeenCalled(); 80 }); 81 }); 82 83 it('VmTrackerDataSenderTest04', () => { 84 threadPool.submitProto = jest.fn((query: number, params: any, callback: Function) => { 85 callback(data, 1, true); 86 }); 87 let gpuResourceTraceRow = TraceRow.skeleton<SnapshotStruct>(); 88 gpuResourceDataSender(13, gpuResourceTraceRow).then(result => { 89 expect(result).toHaveLength(1); 90 expect(threadPool.submitProto).toHaveBeenCalled(); 91 }); 92 }); 93 94 it('VmTrackerDataSenderTest05', () => { 95 threadPool.submitProto = jest.fn((query: number, params: any, callback: Function) => { 96 callback(data, 1, true); 97 }); 98 let gpuGpuTraceRow = TraceRow.skeleton<SnapshotStruct>(); 99 gpuGpuDataSender(13, "'mem.graph_pss'", gpuGpuTraceRow).then(result => { 100 expect(result).toHaveLength(1); 101 expect(threadPool.submitProto).toHaveBeenCalled(); 102 }); 103 }); 104 105 it('VmTrackerDataSenderTest06', () => { 106 threadPool.submitProto = jest.fn((query: number, params: any, callback: Function) => { 107 callback(data, 1, true); 108 }); 109 let gpuTotalTraceRow = TraceRow.skeleton<SnapshotStruct>(); 110 gpuTotalDataSender(13, gpuTotalTraceRow).then(result => { 111 expect(result).toHaveLength(1); 112 expect(threadPool.submitProto).toHaveBeenCalled(); 113 }); 114 }); 115 116 it('VmTrackerDataSenderTest07', () => { 117 threadPool.submitProto = jest.fn((query: number, params: any, callback: Function) => { 118 callback(data, 1, true); 119 }); 120 let gpuWindowTraceRow = TraceRow.skeleton<SnapshotStruct>(); 121 gpuWindowDataSender(13, 15, gpuWindowTraceRow).then(result => { 122 expect(result).toHaveLength(1); 123 expect(threadPool.submitProto).toHaveBeenCalled(); 124 }); 125 }); 126 127 it('VmTrackerDataSenderTest08', () => { 128 threadPool.submitProto = jest.fn((query: number, params: any, callback: Function) => { 129 callback(data, 1, true); 130 }); 131 let shmTraceRow = TraceRow.skeleton<SnapshotStruct>(); 132 shmDataSender(13, shmTraceRow).then(result => { 133 expect(result).toHaveLength(1); 134 expect(threadPool.submitProto).toHaveBeenCalled(); 135 }); 136 }); 137 138 it('VmTrackerDataSenderTest09', () => { 139 threadPool.submitProto = jest.fn((query: number, params: any, callback: Function) => { 140 callback(data, 1, true); 141 }); 142 let purgeableTraceRow = TraceRow.skeleton<SnapshotStruct>(); 143 purgeableDataSender(13, purgeableTraceRow).then(result => { 144 expect(result).toHaveLength(1); 145 expect(threadPool.submitProto).toHaveBeenCalled(); 146 }); 147 }); 148 149 it('VmTrackerDataSenderTest10', () => { 150 threadPool.submitProto = jest.fn((query: number, params: any, callback: Function) => { 151 callback(data, 1, true); 152 }); 153 let abilityPurgeablTraceRow = TraceRow.skeleton<SnapshotStruct>(); 154 abilityPurgeableDataSender(abilityPurgeablTraceRow, 1000000000, false).then(result => { 155 expect(result).toHaveLength(1); 156 expect(threadPool.submitProto).toHaveBeenCalled(); 157 }); 158 }); 159 160 it('VmTrackerDataSenderTest11', () => { 161 threadPool.submitProto = jest.fn((query: number, params: any, callback: Function) => { 162 callback(data, 1, true); 163 }); 164 let abilityDmaTraceRow = TraceRow.skeleton<SnapshotStruct>(); 165 abilityDmaDataSender(abilityDmaTraceRow, 1000000000).then(result => { 166 expect(result).toHaveLength(1); 167 expect(threadPool.submitProto).toHaveBeenCalled(); 168 }); 169 }); 170 171 it('VmTrackerDataSenderTest12', () => { 172 threadPool.submitProto = jest.fn((query: number, params: any, callback: Function) => { 173 callback(data, 1, true); 174 }); 175 let abilityGpuMemoryTraceRow = TraceRow.skeleton<SnapshotStruct>(); 176 abilityGpuMemoryDataSender(abilityGpuMemoryTraceRow, 1000000000).then(result => { 177 expect(result).toHaveLength(1); 178 expect(threadPool.submitProto).toHaveBeenCalled(); 179 }); 180 }); 181});