1 /* 2 * Copyright (c) 2021 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 16 package ohos.devtools.services.memory; 17 18 import ohos.devtools.datasources.databases.databaseapi.DataBaseApi; 19 import ohos.devtools.datasources.utils.profilerlog.ProfilerLogManager; 20 import ohos.devtools.services.memory.agentbean.AgentHeapBean; 21 import ohos.devtools.services.memory.agentbean.ClassInfo; 22 import ohos.devtools.services.memory.agentbean.MemoryHeapInfo; 23 import ohos.devtools.services.memory.agentbean.MemoryInstanceDetailsInfo; 24 import ohos.devtools.services.memory.agentbean.MemoryInstanceInfo; 25 import ohos.devtools.services.memory.agentdao.ClassInfoManager; 26 import ohos.devtools.services.memory.agentdao.MemoryHeapManager; 27 import ohos.devtools.services.memory.agentdao.MemoryInstanceDetailsManager; 28 import ohos.devtools.services.memory.agentdao.MemoryInstanceManager; 29 import org.apache.logging.log4j.Level; 30 import org.junit.Assert; 31 import org.junit.Before; 32 import org.junit.Test; 33 34 import java.util.ArrayList; 35 import java.util.List; 36 37 /** 38 * Heap data test 39 * 40 * @since 2021/5/19 16:39 41 */ 42 public class MemoryHeapTest { 43 private MemoryHeapManager memoryHeapManager; 44 private MemoryInstanceManager memoryInstanceManager; 45 private MemoryInstanceDetailsManager memoryInstanceDetailsManager; 46 private ClassInfoManager classInfoManager; 47 private ClassInfo classInfo; 48 private MemoryInstanceInfo memoryInstanceInfo; 49 private MemoryInstanceDetailsInfo memoryInstanceDetailsInfo; 50 private MemoryHeapInfo memoryHeapInfo; 51 52 /** 53 * functional test 54 * 55 * @tc.name: initObj 56 * @tc.number: OHOS_JAVA_Service_MemoryHeap_initObj_0001 57 * @tc.desc: initObj 58 * @tc.type: functional testing 59 * @tc.require: SR000FK61Q 60 */ 61 @Before initObj()62 public void initObj() { 63 // 应用初始化 Step1 初始化数据中心 64 ProfilerLogManager.getSingleton().updateLogLevel(Level.ERROR); 65 DataBaseApi apo = DataBaseApi.getInstance(); 66 apo.initDataSourceManager(); 67 68 memoryHeapManager = new MemoryHeapManager(); 69 memoryInstanceManager = new MemoryInstanceManager(); 70 memoryInstanceDetailsManager = new MemoryInstanceDetailsManager(); 71 classInfoManager = new ClassInfoManager(); 72 classInfo = new ClassInfo(); 73 classInfo.setcId(2); 74 classInfo.setClassName("java/Lang/String"); 75 memoryInstanceInfo = new MemoryInstanceInfo(); 76 memoryInstanceInfo.setInstanceId(2); 77 memoryInstanceInfo.setcId(1); 78 memoryInstanceInfo.setInstance("java/Lang/String"); 79 memoryInstanceInfo.setCreateTime(20210326L); 80 memoryInstanceInfo.setAllocTime(20210326L); 81 memoryInstanceInfo.setDeallocTime(20210328L); 82 memoryInstanceDetailsInfo = new MemoryInstanceDetailsInfo(); 83 memoryInstanceDetailsInfo.setInstanceId(1); 84 memoryInstanceDetailsInfo.setFrameId(1); 85 memoryInstanceDetailsInfo.setClassName("java/Lang/String"); 86 memoryInstanceDetailsInfo.setMethodName("init"); 87 memoryInstanceDetailsInfo.setFieldName("name"); 88 memoryInstanceDetailsInfo.setLineNumber(2); 89 memoryHeapInfo = new MemoryHeapInfo(); 90 memoryHeapInfo.setcId(1); 91 memoryHeapInfo.setHeapId(1); 92 memoryHeapInfo.setSessionId(1L); 93 memoryHeapInfo.setAllocations(10); 94 memoryHeapInfo.setDeallocations(0); 95 memoryHeapInfo.setTotalCount(79); 96 memoryHeapInfo.setShallowSize(348L); 97 memoryHeapInfo.setCreateTime(20210406L); 98 } 99 100 /** 101 * functional test 102 * 103 * @tc.name: getMemoryHeap 104 * @tc.number: OHOS_JAVA_Service_MemoryHeap_getMemoryHeap_0001 105 * @tc.desc: getMemoryHeap 106 * @tc.type: functional testing 107 * @tc.require: SR000FK61Q 108 */ 109 @Test getMemoryHeap()110 public void getMemoryHeap() { 111 List<AgentHeapBean> memoryHeapInfos = 112 memoryHeapManager.getMemoryHeapInfos(19354329L, 20210317L, 20210322L); 113 Assert.assertNotNull(memoryHeapInfos); 114 } 115 116 /** 117 * functional test 118 * 119 * @tc.name: getMemoryInstance 120 * @tc.number: OHOS_JAVA_Service_MemoryHeap_getMemoryInstance_0001 121 * @tc.desc: getMemoryInstance 122 * @tc.type: functional testing 123 * @tc.require: SR000FK61Q 124 */ 125 @Test getMemoryInstance()126 public void getMemoryInstance() { 127 ArrayList<MemoryInstanceInfo> memoryInstanceInfos = 128 memoryInstanceManager.getMemoryInstanceInfos(2, 20210326L, 20210330L); 129 Assert.assertNotNull(memoryInstanceInfos); 130 } 131 132 /** 133 * functional test 134 * 135 * @tc.name: getMemoryInstanceDetails 136 * @tc.number: OHOS_JAVA_Service_MemoryHeap_getMemoryInstanceDetails_0001 137 * @tc.desc: getMemoryInstanceDetails 138 * @tc.type: functional testing 139 * @tc.require: SR000FK61Q 140 */ 141 @Test getMemoryInstanceDetails()142 public void getMemoryInstanceDetails() { 143 ArrayList<MemoryInstanceDetailsInfo> memoryInstanceDetailsInfos = 144 memoryInstanceDetailsManager.getMemoryInstanceDetailsInfos(2); 145 Assert.assertNotNull(memoryInstanceDetailsInfos); 146 } 147 148 /** 149 * functional test 150 * 151 * @tc.name: insertClassInfo 152 * @tc.number: OHOS_JAVA_Service_MemoryHeap_insertClassInfo_0001 153 * @tc.desc: insertClassInfo 154 * @tc.type: functional testing 155 * @tc.require: SR000FK61Q 156 */ 157 @Test insertClassInfo()158 public void insertClassInfo() { 159 classInfoManager.insertClassInfo(classInfo); 160 } 161 } 162