1 2/* 3 * Copyright (C) 2022 Huawei Device Co., Ltd. 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16import '../../../../src/trace/component/trace/base/TraceRow'; 17import { TraceRow } from '../../../../src/trace/component/trace/base/TraceRow'; 18import { 19 cpuAbilityUserDataSender, 20 abilityMemoryUsedDataSender, 21 abilityBytesReadDataSender, 22 abilityBytesInTraceDataSender 23} from '../../../../src/trace/database/data-trafic/AbilityMonitorSender'; 24import { threadPool } from '../../../../src/trace/database/SqlLite'; 25import { DiskAbilityMonitorStruct } from '../../../../src/trace/database/ui-worker/ProcedureWorkerDiskIoAbility'; 26import { NetworkAbilityMonitorStruct } from '../../../../src/trace/database/ui-worker/ProcedureWorkerNetworkAbility'; 27import { CpuAbilityMonitorStruct } from '../../../../src/trace/database/ui-worker/ProcedureWorkerCpuAbility'; 28import { MemoryAbilityMonitorStruct } from '../../../../src/trace/database/ui-worker/ProcedureWorkerMemoryAbility'; 29jest.mock('../../../../src/trace/database/ui-worker/ProcedureWorker', () => { 30 return {}; 31}); 32jest.mock('../../../../src/trace/database/ui-worker/ProcedureWorkerSnapshot', () => { 33 return {}; 34}); 35jest.mock('../../../../src/js-heap/model/DatabaseStruct', () => {}); 36describe('AbilityMonitorSender Test', () => { 37 let traceRowData = { 38 dur: 9928, 39 frame: 40 {x: 16, y: 5, width: 17, height: 30}, 41 startNS: 9928, 42 value: 6 43 } 44 let useTraceRowData = { 45 dur: 9928, 46 frame: 47 {x: 16, y: 5, width: 17, height: 30}, 48 startNS: 9928, 49 value: 2.62424 50 } 51 let sysTraceRowData = { 52 dur: 92876, 53 frame: 54 {x: 16, y: 5, width: 17, height: 30}, 55 startNS: 6648, 56 value: 3.474 57 } 58 let memoryUsedData = { 59 dur: 877, 60 frame: 61 {x: 68, y: 5, width: 83, height: 30}, 62 startNS: 2089, 63 value: 2012 64 } 65 let bytesReadData = { 66 dur: 9961, 67 frame: 68 {x: 16, y: 5, width: 17, height: 30}, 69 startNS: 147, 70 value: 4 71 } 72 let bytesInTraceRowData = { 73 dur: 1768, 74 frame: 75 {x: 16, y: 5, width: 18, height: 30}, 76 startNS: 21817, 77 value: 24 78 } 79 it('AbilityMonitorSenderTest01', () => { 80 threadPool.submitProto = jest.fn((query: number, params: any, callback: Function) => { 81 callback(traceRowData, 1, true); 82 }); 83 let traceRow = TraceRow.skeleton<CpuAbilityMonitorStruct>(); 84 cpuAbilityUserDataSender(traceRow,'CpuAbilityMonitorData').then(res => { 85 expect(res).toHaveLength(1); 86 }); 87 }); 88 it('AbilityMonitorSenderTest02', () => { 89 threadPool.submitProto = jest.fn((query: number, params: any, callback: Function) => { 90 callback(useTraceRowData, 1, true); 91 }); 92 let traceRow = TraceRow.skeleton<CpuAbilityMonitorStruct>(); 93 cpuAbilityUserDataSender(traceRow,'CpuAbilityUserData').then(res => { 94 expect(res).toHaveLength(1); 95 }); 96 }); 97 it('AbilityMonitorSenderTest03', () => { 98 threadPool.submitProto = jest.fn((query: number, params: any, callback: Function) => { 99 callback(sysTraceRowData, 1, true); 100 }); 101 let traceRow = TraceRow.skeleton<CpuAbilityMonitorStruct>(); 102 cpuAbilityUserDataSender(traceRow,'CpuAbilitySystemData').then(res => { 103 expect(res).toHaveLength(1); 104 }); 105 }); 106 it('AbilityMonitorSenderTest04', () => { 107 threadPool.submitProto = jest.fn((query: number, params: any, callback: Function) => { 108 callback(memoryUsedData, 1, true); 109 }); 110 let memoryUsedTraceRow = TraceRow.skeleton<MemoryAbilityMonitorStruct>(); 111 abilityMemoryUsedDataSender('2241',memoryUsedTraceRow).then(res => { 112 expect(res).toHaveLength(1); 113 }); 114 }); 115 it('AbilityMonitorSenderTest05', () => { 116 threadPool.submitProto = jest.fn((query: number, params: any, callback: Function) => { 117 callback(memoryUsedData, 1, true); 118 }); 119 let memoryUsedTraceRow = TraceRow.skeleton<MemoryAbilityMonitorStruct>(); 120 abilityMemoryUsedDataSender('2241',memoryUsedTraceRow).then(res => { 121 expect(res).toHaveLength(1); 122 }); 123 }); 124 it('AbilityMonitorSenderTest06', () => { 125 threadPool.submitProto = jest.fn((query: number, params: any, callback: Function) => { 126 callback(bytesReadData, 1 , true); 127 }); 128 let traceRow = TraceRow.skeleton<DiskAbilityMonitorStruct>(); 129 abilityBytesReadDataSender(traceRow,'AbilityBytesReadData').then(res => { 130 expect(Array.isArray(res)).toBe(true); 131 }); 132 }); 133 it('AbilityMonitorSenderTest07', () => { 134 threadPool.submitProto = jest.fn((query: number, params: any, callback: Function) => { 135 callback(bytesReadData, 1, true); 136 }); 137 let traceRow = TraceRow.skeleton<DiskAbilityMonitorStruct>(); 138 abilityBytesReadDataSender(traceRow,'AbilityBytesWrittenData').then(res => { 139 expect(Array.isArray(res)).toBe(true); 140 }); 141 }); 142 it('AbilityMonitorSenderTest08', () => { 143 threadPool.submitProto = jest.fn((query: number, params: any, callback: Function) => { 144 callback(bytesReadData, 1, true); 145 }); 146 let traceRow = TraceRow.skeleton<DiskAbilityMonitorStruct>(); 147 abilityBytesReadDataSender(traceRow,'AbilityReadOpsData').then(res => { 148 expect(Array.isArray(res)).toBe(true); 149 }); 150 }); 151 it('AbilityMonitorSenderTest08', () => { 152 threadPool.submitProto = jest.fn((query: number, params: any, callback: Function) => { 153 callback(bytesReadData, 1, true); 154 }); 155 let traceRow = TraceRow.skeleton<DiskAbilityMonitorStruct>(); 156 abilityBytesReadDataSender(traceRow,'AbilityWrittenOpsData').then(res => { 157 expect(Array.isArray(res)).toBe(true); 158 }); 159 }); 160 it('AbilityMonitorSenderTest09', () => { 161 threadPool.submitProto = jest.fn((query: number, params: any, callback: Function) => { 162 callback(bytesInTraceRowData, 1, true); 163 }); 164 let traceRow = TraceRow.skeleton<NetworkAbilityMonitorStruct>(); 165 abilityBytesInTraceDataSender(traceRow, 'AbilityBytesInTraceData').then(res => { 166 expect(res).toHaveLength(1); 167 }); 168 }); 169 it('AbilityMonitorSenderTest10', () => { 170 threadPool.submitProto = jest.fn((query: number, params: any, callback: Function) => { 171 callback(bytesInTraceRowData, 1, true); 172 }); 173 let traceRow = TraceRow.skeleton<NetworkAbilityMonitorStruct>(); 174 abilityBytesInTraceDataSender(traceRow, 'AbilityBytesOutTraceData').then(res => { 175 expect(res).toHaveLength(1); 176 }); 177 }); 178 it('AbilityMonitorSenderTest11', () => { 179 threadPool.submitProto = jest.fn((query: number, params: any, callback: Function) => { 180 callback(bytesInTraceRowData, 1, true); 181 }); 182 let traceRow = TraceRow.skeleton<NetworkAbilityMonitorStruct>(); 183 abilityBytesInTraceDataSender(traceRow, 'AbilityPacketInTraceData').then(res => { 184 expect(res).toHaveLength(1); 185 }); 186 }); 187 it('AbilityMonitorSenderTest12', () => { 188 threadPool.submitProto = jest.fn((query: number, params: any, callback: Function) => { 189 callback(bytesInTraceRowData, 1, true); 190 }); 191 let traceRow = TraceRow.skeleton<NetworkAbilityMonitorStruct>(); 192 abilityBytesInTraceDataSender(traceRow, 'AbilityPacketsOutTraceData').then(res => { 193 expect(res).toHaveLength(1); 194 }); 195 }); 196});