• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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