• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1/*
2 * Copyright (c) Huawei Technologies Co., Ltd. 2021. All rights reserved.
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 */
15import hidebug from '@ohos.hidebug'
16import fs from '@ohos.file.fs'
17import process from '@ohos.process'
18import featureAbility from '@ohos.ability.featureAbility'
19
20import {describe, beforeAll, beforeEach, afterEach, afterAll, it, expect} from 'deccjsunit/index'
21
22describe("HidebugJsTest", function () {
23    beforeAll(function() {
24        /*
25         * @tc.setup: setup invoked before all testcases
26         */
27         console.info('HidebugJsTest beforeAll called')
28    })
29
30    afterAll(function() {
31        /*
32         * @tc.teardown: teardown invoked after all testcases
33         */
34         console.info('HidebugJsTest afterAll called')
35    })
36
37    beforeEach(function() {
38        /*
39         * @tc.setup: setup invoked before each testcases
40         */
41         console.info('HidebugJsTest beforeEach called')
42    })
43
44    afterEach(function() {
45        /*
46         * @tc.teardown: teardown invoked after each testcases
47         */
48         console.info('HidebugJsTest afterEach called')
49    })
50
51    async function msleep(time) {
52        let promise = new Promise((resolve, reject) => {
53            setTimeout(() => resolve("done!"), time)
54        });
55        let result = await promise;
56    }
57
58    /**
59     * test
60     *
61     * @tc.name: HidebugJsTest_001
62     * @tc.desc: 检测cpuProfiler采集的cpuprofiler数据是否含有js napi callframe信息
63     * @tc.type: FUNC
64     * @tc.require: issueI5NXHX
65     */
66    it('HidebugJsTest_001', 0, function () {
67        console.info("---------------------------HidebugJsTest_001----------------------------------");
68        try {
69            let timestamp = Date.now();
70            let filename = "cpuprofiler_" + timestamp.toString();
71            hidebug.startProfiling(filename);
72            for (let i = 0; i < 3; i++) {
73                hidebug.getSharedDirty();
74            }
75            hidebug.stopProfiling();
76            let path = "/proc/self/root/data/storage/el2/base/files/" + filename + ".json";
77            let data = fs.readTextSync(path);
78            if (data.includes("napi")) {
79                expect(true).assertTrue();
80            } else {
81                expect(false).assertTrue();
82            }
83        } catch (err) {
84            console.error('HidebugJsTest_001 has failed for ' + err);
85            expect(false).assertTrue();
86        }
87    })
88
89    /**
90     * @tc.name: HidebugJsTest_002
91     * @tc.desc: startJsCpuProfiling/stopJsCpuProfiling的正常测试, startProfiling/stopProfiling的更新版本
92     * @tc.type: FUNC
93     * @tc.require: issueI5VY8L
94     */
95     it('HidebugJsTest_002', 0, function () {
96        console.info("---------------------------HidebugJsTest_002----------------------------------");
97        try {
98            let timestamp = Date.now();
99            let filename = "cpuprofiler_" + timestamp.toString();
100            hidebug.startJsCpuProfiling(filename);
101            for (let i = 0; i < 3; i++) {
102                hidebug.getSharedDirty();
103            }
104            hidebug.stopJsCpuProfiling();
105            let path = "/proc/self/root/data/storage/el2/base/files/" + filename + ".json";
106            let data = fs.readTextSync(path);
107            if (data.includes("napi")) {
108                expect(true).assertTrue();
109            } else {
110                expect(false).assertTrue();
111            }
112        } catch (err) {
113            console.error('HidebugJsTest_002 has failed for ' + err);
114            expect(false).assertTrue();
115        }
116    })
117
118    /**
119     * @tc.name: HidebugJsTest_003
120     * @tc.desc: startJsCpuProfiling/stopJsCpuProfiling的异常测试, startProfiling/stopProfiling的更新版本
121     * @tc.type: FUNC
122     * @tc.require: issueI5VY8L
123     */
124     it('HidebugJsTest_003', 0, function () {
125        console.info("---------------------------HidebugJsTest_003----------------------------------");
126        try {
127            hidebug.startJsCpuProfiling();
128            for (let i = 0; i < 3; i++) {
129                hidebug.getSharedDirty();
130            }
131            hidebug.stopJsCpuProfiling();
132        } catch (error) {
133            console.info(error.code);
134            console.info(error.message);
135            expect(error.code === "401").assertTrue();
136        }
137    })
138
139    /**
140     * @tc.name: HidebugJsTest_004
141     * @tc.desc: dumpJsHeapData的正常测试, dumpHeapData的更新版本
142     * @tc.type: FUNC
143     * @tc.require: issueI5VY8L
144     */
145     it('HidebugJsTest_004', 0, function () {
146        console.info("---------------------------HidebugJsTest_004----------------------------------");
147        try {
148            hidebug.dumpJsHeapData("heapData");
149            expect(true).assertTrue();
150        } catch (error) {
151            console.info(error.code);
152            console.info(error.message);
153        }
154    })
155
156    /**
157     * @tc.name: HidebugJsTest_005
158     * @tc.desc: dumpJsHeapData的异常测试, dumpHeapData的更新版本
159     * @tc.type: FUNC
160     * @tc.require: issueI5VY8L
161     */
162     it('HidebugJsTest_005', 0, function () {
163        console.info("---------------------------HidebugJsTest_005----------------------------------");
164        try {
165            hidebug.dumpJsHeapData();
166        } catch (error) {
167            console.info(error.code);
168            console.info(error.message);
169            expect(error.code === "401").assertTrue();
170        }
171    })
172
173    /**
174     * @tc.name: HidebugJsTest_006
175     * @tc.desc: getServiceDump的正常测试
176     * @tc.type: FUNC
177     * @tc.require: issueI5VY8L
178     */
179     it('HidebugJsTest_006', 0, function () {
180        console.info("---------------------------HidebugJsTest_006----------------------------------");
181        let context = featureAbility.getContext();
182        context.getFilesDir().then((data) => {
183            const path = data + "/serviceInfo1.txt";
184            console.info("output path: " + path);
185            let file = fs.openSync(path, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE);
186            const serviceId = 10;
187            const args = new Array("allInfo");
188            try {
189              hidebug.getServiceDump(serviceId, file.fd, args);
190              expect(true).assertTrue();
191            } catch (error) {
192              console.info(error.code);
193              console.info(error.message);
194            }
195            fs.closeSync(file);
196        })
197    })
198
199    /**
200     * @tc.name: HidebugJsTest_007
201     * @tc.desc: getServiceDump的异常测试,参数错误
202     * @tc.type: FUNC
203     * @tc.require: issueI5VY8L
204     */
205     it('HidebugJsTest_007', 0, function () {
206        console.info("---------------------------HidebugJsTest_007----------------------------------");
207        let context = featureAbility.getContext();
208        context.getFilesDir().then((data) => {
209            const path = data + "/serviceInfo2.txt";
210            console.info("output path: " + path);
211            let file = fs.openSync(path, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE);
212            const serviceId = 10;
213            const args = new Array("allInfo");
214            try {
215                hidebug.getServiceDump(serviceId);
216            } catch (error) {
217              console.info(error.code);
218              console.info(error.message);
219              expect(error.code === "401").assertTrue();
220            }
221            fs.closeSync(file);
222        })
223    })
224
225    /**
226     * @tc.name: HidebugJsTest_008
227     * @tc.desc: getServiceDump的异常测试,查询system ability失败
228     * @tc.type: FUNC
229     * @tc.require: issueI5VY8L
230     */
231     it('HidebugJsTest_008', 0, function () {
232        console.info("---------------------------HidebugJsTest_008----------------------------------");
233        let context = featureAbility.getContext();
234        context.getFilesDir().then((data) => {
235            const path = data + "/serviceInfo3.txt";
236            console.info("output path: " + path);
237            let file = fs.openSync(path, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE);
238            const serviceId = -10;
239            const args = new Array("allInfo");
240            try {
241                hidebug.getServiceDump(serviceId, file.fd, args);
242            } catch (error) {
243              console.info(error.code);
244              console.info(error.message);
245              expect(error.code === "11400101").assertTrue();
246            }
247            fs.closeSync(file);
248        })
249    })
250
251    /**
252     * @tc.name: HidebugJsTest_009
253     * @tc.desc: getAppNativeMemInfo的正常测试, getVss()/getPss()/getSharedDirty()/getPrivateDirty()的更新版本
254     * @tc.type: FUNC
255     * @tc.require: issueI5VY8L
256     */
257        it('HidebugJsTest_009', 0, function () {
258            console.info("---------------------------HidebugJsTest_009----------------------------------");
259            try {
260                let nativeMemInfo = hidebug.getAppNativeMemInfo();
261                expect(nativeMemInfo.pss >= 0).assertTrue();
262                expect(nativeMemInfo.vss >= 0).assertTrue();
263                expect(nativeMemInfo.rss >= 0).assertTrue();
264                expect(nativeMemInfo.sharedDirty >= 0).assertTrue();
265                expect(nativeMemInfo.privateDirty >= 0).assertTrue();
266                expect(nativeMemInfo.sharedClean >= 0).assertTrue();
267                expect(nativeMemInfo.privateClean >= 0).assertTrue();
268            } catch (error) {
269                console.info(error.code);
270                console.info(error.message);
271                expect(false).assertTrue();
272            }
273        })
274
275        /**
276         * @tc.name:
277         * @tc.desc: getAppNativeMemInfoAsync的正常测试, getVss()/getPss()/getSharedDirty()/getPrivateDirty()的更新版本
278         * @tc.type: FUNC
279         * @tc.require: issueI5VY8L
280         */
281        it('HidebugJsTest_getAppNativeMemInfoAsync', 0, async function () {
282            console.info("---------------------------HidebugJsTest_getAppNativeMemInfoAsync----------------------------------");
283            try {
284                let nativeMemInfo = await hidebug.getAppNativeMemInfoAsync();
285                expect(nativeMemInfo.pss >= 0).assertTrue();
286                expect(nativeMemInfo.vss >= 0).assertTrue();
287                expect(nativeMemInfo.rss >= 0).assertTrue();
288                expect(nativeMemInfo.sharedDirty >= 0).assertTrue();
289                expect(nativeMemInfo.privateDirty >= 0).assertTrue();
290                expect(nativeMemInfo.sharedClean >= 0).assertTrue();
291                expect(nativeMemInfo.privateClean >= 0).assertTrue();
292            } catch (error) {
293                console.info(error.code);
294                console.info(error.message);
295                expect(false).assertTrue();
296            }
297        })
298
299        /**
300         * @tc.name:
301         * @tc.desc: getAppNativeMemInfoWithCache的异常参数测试, getVss()/getPss()/getSharedDirty()/getPrivateDirty()的更新版本
302         * @tc.type: FUNC
303         * @tc.require: issueI5VY8L
304         */
305        it('HidebugJsTest_getAppNativeMemInfoWithCache1', 0, async function () {
306            console.info("---------------------------HidebugJsTest_getAppNativeMemInfoWithCache1----------------------------------");
307            try {
308                hidebug.getAppNativeMemInfoWithCache("TEST");
309            } catch (error) {
310                console.info(error.code);
311                console.info(error.message);
312                expect(error.code === "401").assertTrue();
313            }
314        })
315
316        /**
317         * @tc.name:
318         * @tc.desc: getAppNativeMemInfoWithCache的异常参数测试, getVss()/getPss()/getSharedDirty()/getPrivateDirty()的更新版本
319         * @tc.type: FUNC
320         * @tc.require: issueI5VY8L
321         */
322        it('HidebugJsTest_getAppNativeMemInfoWithCache2', 0, async function () {
323            console.info("---------------------------HidebugJsTest_getAppNativeMemInfoWithCache2----------------------------------");
324            try {
325                hidebug.getAppNativeMemInfoWithCache("", "");
326            } catch (error) {
327                console.info(error.code);
328                console.info(error.message);
329                expect(error.code === "401").assertTrue();
330            }
331        })
332
333        function assertNativeMemInfoEqual(nativeMemInfoA, nativeMemInfoB) {
334            expect(nativeMemInfoA.pss === nativeMemInfoB.pss).assertTrue();
335            expect(nativeMemInfoA.vss === nativeMemInfoB.vss).assertTrue();
336            expect(nativeMemInfoA.rss === nativeMemInfoB.rss).assertTrue();
337            expect(nativeMemInfoA.sharedDirty === nativeMemInfoB.sharedDirty).assertTrue();
338            expect(nativeMemInfoA.privateDirty === nativeMemInfoB.privateDirty).assertTrue();
339            expect(nativeMemInfoA.sharedClean === nativeMemInfoB.sharedClean).assertTrue();
340            expect(nativeMemInfoA.privateClean === nativeMemInfoB.privateClean).assertTrue();
341        }
342
343        /**
344         * @tc.name:
345         * @tc.desc: getAppNativeMemInfoWithCache的正常测试, getVss()/getPss()/getSharedDirty()/getPrivateDirty()的更新版本
346         * @tc.type: FUNC
347         * @tc.require: issueI5VY8L
348         */
349        it('HidebugJsTest_getAppNativeMemInfoWithCache3', 0, async function () {
350            console.info("---------------------------HidebugJsTest_getAppNativeMemInfoWithCache3----------------------------------");
351            try {
352                let nativeMemInfo1 = hidebug.getAppNativeMemInfoWithCache(true);
353                let nativeMemInfo2 = hidebug.getAppNativeMemInfoWithCache(false);
354                let nativeMemInfo3 = hidebug.getAppNativeMemInfoWithCache();
355                assertNativeMemInfoEqual(nativeMemInfo1, nativeMemInfo2);
356                assertNativeMemInfoEqual(nativeMemInfo1, nativeMemInfo3);
357            } catch (error) {
358                console.info(error.code);
359                console.info(error.message);
360                expect(false).assertTrue();
361            }
362        })
363
364        /**
365         * @tc.name: HidebugJsTest_010
366         * @tc.desc: getSystemMemInfo()的正常测试
367         * @tc.type: FUNC
368         * @tc.require: issueI5VY8L
369         */
370        it('HidebugJsTest_010', 0, function () {
371            console.info("---------------------------HidebugJsTest_010----------------------------------");
372            try {
373                let systemMemInfo = hidebug.getSystemMemInfo();
374                expect(systemMemInfo.totalMem >= 0).assertTrue();
375                expect(systemMemInfo.freeMem >= 0).assertTrue();
376                expect(systemMemInfo.availableMem >= 0).assertTrue();
377            } catch (error) {
378                console.info(error.code);
379                console.info(error.message);
380                expect(false).assertTrue();
381            }
382        })
383
384    /**
385     * @tc.name: HidebugJsTest_011
386     * @tc.desc: getSystemCpuUsage的正常测试,查询system cpu usage
387     * @tc.type: FUNC
388     * @tc.require: issueI90Z36
389     */
390    it('HidebugJsTest_011', 0, function () {
391        console.info("---------------------------HidebugJsTest_011----------------------------------");
392        try {
393            let sysCpuUsage = hidebug.getSystemCpuUsage();
394            expect(sysCpuUsage >= 0 && sysCpuUsage <= 1).assertTrue();
395        } catch (error) {
396            console.info(error.code);
397            console.info(error.message);
398            expect(false).assertTrue();
399        }
400    })
401
402    /**
403     * @tc.name: HidebugJsTest_012
404     * @tc.desc: getAppMemoryLimit正常测试
405     * @tc.type: FUNC
406     * @tc.require: issueI8ZX7S
407     */
408    it('HidebugJsTest_012', 0, function () {
409        console.info("---------------------------HidebugJsTest_012----------------------------------");
410        try {
411            let temp = hidebug.getAppMemoryLimit();
412            expect(temp.rssLimit >= BigInt(0)).assertTrue();
413            expect(temp.vssLimit >= BigInt(0)).assertTrue();
414            expect(temp.vmHeapLimit >= BigInt(0)).assertTrue();
415            expect(temp.vmTotalHeapSize >= BigInt(0)).assertTrue();
416        } catch (error) {
417            expect().assertFail();
418        }
419    })
420
421    /**
422     * @tc.name: HidebugJsTest_013
423     * @tc.desc: getAppVMMemoryInfo正常测试
424     * @tc.type: FUNC
425     * @tc.require: issueI5VY8L
426     */
427    it('HidebugJsTest_013', 0, function () {
428        console.info("---------------------------HidebugJsTest_013----------------------------------");
429        try {
430            let result = hidebug.getAppVMMemoryInfo();
431            expect(result.allArraySize >= 0 && result.totalHeap >= 0 && result.heapUsed >= 0).assertTrue();
432        } catch (error) {
433            console.info(error.code);
434            console.info(error.message);
435            expect(false).assertTrue();
436        }
437    })
438
439    /**
440     * @tc.name: HidebugJsTest_014
441     * @tc.desc: getAppThreadCpuUsage正常测试
442     * @tc.type: FUNC
443     * @tc.require: issueI5VY8L
444     */
445    it('HidebugJsTest_014', 0, function () {
446        console.info("---------------------------HidebugJsTest_014----------------------------------");
447        try {
448            let appThreadCpuUsage = hidebug.getAppThreadCpuUsage();
449            expect(appThreadCpuUsage.length >= 0).assertTrue();
450        } catch (error) {
451            console.info(error.code);
452            console.info(error.message);
453            expect(false).assertTrue();
454        }
455    })
456
457    /**
458     * @tc.name: HidebugJsTest_015
459     * @tc.desc: StartAppTraceCapture正常测试
460     * @tc.type: FUNC
461     * @tc.require: issueI5VY8L
462     */
463    it('HidebugJsTest_015', 0, function () {
464        console.info("---------------------------HidebugJsTest_015----------------------------------");
465        try {
466            let tags = [hidebug.tags.ABILITY_MANAGER];
467            let flag = hidebug.TraceFlag.MAIN_THREAD;
468            let limitSize = 1024 * 1024;
469            let fileName = hidebug.startAppTraceCapture(tags, flag, limitSize);
470            for (let i = 0; i < 3; i++) {
471                hidebug.getSharedDirty();
472            }
473            hidebug.stopAppTraceCapture();
474            expect(fileName.length > 0).assertTrue();
475        } catch (error) {
476            console.info(error.code);
477            console.info(error.message);
478            expect(false).assertTrue();
479        }
480    })
481
482    /**
483     * @tc.name: HidebugJsTest_016
484     * @tc.desc: getVMRuntimeStats测试
485     * @tc.type: FUNC
486     * @tc.require: issueI5VY8L
487     */
488    it('HidebugJsTest_016', 0, function () {
489        console.info("---------------------------HidebugJsTest_016----------------------------------");
490        try {
491            let runtimeStats = hidebug.getVMRuntimeStats();
492            expect(runtimeStats["ark.gc.gc-count"] >= 0).assertTrue();
493            expect(runtimeStats["ark.gc.gc-time"] >= 0).assertTrue();
494            expect(runtimeStats["ark.gc.gc-bytes-allocated"] >= 0).assertTrue();
495            expect(runtimeStats["ark.gc.gc-bytes-freed"] >= 0).assertTrue();
496            expect(runtimeStats["ark.gc.fullgc-longtime-count"] >= 0).assertTrue();
497            expect(runtimeStats["others"] === undefined).assertTrue();
498        } catch (error) {
499            console.info(error.code);
500            console.info(error.message);
501            expect(false).assertTrue();
502        }
503    })
504
505    /**
506     * @tc.name: HidebugJsTest_017
507     * @tc.desc: getVMRuntimeStat正常测试
508     * @tc.type: FUNC
509     * @tc.require: issueI5VY8L
510     */
511    it('HidebugJsTest_017', 0, function () {
512        console.info("---------------------------HidebugJsTest_017----------------------------------");
513        try {
514            let gcCount = hidebug.getVMRuntimeStat("ark.gc.gc-count");
515            let gcTime = hidebug.getVMRuntimeStat("ark.gc.gc-time");
516            let gcBytesAllocated = hidebug.getVMRuntimeStat("ark.gc.gc-bytes-allocated");
517            let gcBytesFreed = hidebug.getVMRuntimeStat("ark.gc.gc-bytes-freed");
518            let fullGcLongTimeCount = hidebug.getVMRuntimeStat("ark.gc.fullgc-longtime-count");
519            expect(gcCount >= 0).assertTrue();
520            expect(gcTime >= 0).assertTrue();
521            expect(gcBytesAllocated >= 0).assertTrue();
522            expect(gcBytesFreed >= 0).assertTrue();
523            expect(fullGcLongTimeCount >= 0).assertTrue();
524        } catch (error) {
525            console.info(error.code);
526            console.info(error.message);
527            expect(false).assertTrue();
528        }
529    })
530
531    /**
532     * @tc.name: HidebugJsTest_018
533     * @tc.desc: getVMRuntimeStat参数异常测试
534     * @tc.type: FUNC
535     * @tc.require: issueI5VY8L
536     */
537    it('HidebugJsTest_018', 0, function () {
538        console.info("---------------------------HidebugJsTest_018----------------------------------");
539        try {
540            hidebug.getVMRuntimeStat("others");
541            expect(false).assertTrue();
542        } catch (error) {
543            expect(error.code === "401").assertTrue();
544            expect(error.message === "Invalid parameter, unknown property.").assertTrue();
545        }
546    })
547
548    /**
549     * @tc.name: HidebugJsTest_019
550     * @tc.desc: setAppResourceLimit正常测试
551     * @tc.type: FUNC
552     * @tc.require: issueI5VY8L
553     */
554    it('HidebugJsTest_019', 0, function () {
555        console.info("---------------------------HidebugJsTest_019----------------------------------");
556        try {
557            let type = "js_heap";
558            let value = 85;
559            let enabledDebugLog = false;
560            hidebug.setAppResourceLimit(type, value, enabledDebugLog);
561        } catch (error) {
562            console.info(error.code);
563            expect(error.code === "401").assertTrue();
564        }
565    })
566
567    /**
568     * @tc.name: HidebugJsTest_020
569     * @tc.desc: StartAppTraceCapture错误传参测试
570     * @tc.type: FUNC
571     * @tc.require: issueI5VY8L
572     */
573    it('HidebugJsTest_020', 0, function () {
574        console.info("---------------------------HidebugJsTest_020----------------------------------");
575        try {
576            let tags = [hidebug.tags.ABILITY_MANAGER];
577            let flag = 123;
578            let limitSize = 1024 * 1024;
579            let fileName = hidebug.startAppTraceCapture(tags, flag, limitSize);
580            for (let i = 0; i < 3; i++) {
581                hidebug.getSharedDirty();
582            }
583            hidebug.stopAppTraceCapture();
584            expect().assertFail();
585        } catch (error) {
586            console.info(error.code);
587            console.info(error.message);
588            expect(error.code === "401").assertTrue();
589        }
590    })
591
592    /**
593     * @tc.name: HidebugJsTest_021
594     * @tc.desc: StartAppTraceCapture重复启动测试
595     * @tc.type: FUNC
596     * @tc.require: issueI5VY8L
597     */
598    it('HidebugJsTest_021', 0, function () {
599        console.info("---------------------------HidebugJsTest_021----------------------------------");
600        let fileName = "";
601        try {
602            let tags = [hidebug.tags.ABILITY_MANAGER];
603            let flag = hidebug.TraceFlag.MAIN_THREAD;
604            let limitSize = 1024 * 1024;
605            fileName = hidebug.startAppTraceCapture(tags, flag, limitSize);
606            for (let i = 0; i < 3; i++) {
607                hidebug.getSharedDirty();
608            }
609            fileName = hidebug.startAppTraceCapture(tags, flag, limitSize);
610            hidebug.stopAppTraceCapture();
611            expect().assertFail();
612        } catch (error) {
613            console.info(error.code);
614            console.info(error.message);
615            if (fileName.length > 0) {
616                hidebug.stopAppTraceCapture();
617            }
618            expect(error.code === "11400102").assertTrue();
619        }
620    })
621
622    /**
623     * @tc.name: HidebugJsTest_022
624     * @tc.desc: StartAppTraceCapture未启动直接关闭测试
625     * @tc.type: FUNC
626     * @tc.require: issueI5VY8L
627     */
628    it('HidebugJsTest_022', 0, function () {
629        console.info("---------------------------HidebugJsTest_022----------------------------------");
630        try {
631            hidebug.stopAppTraceCapture();
632            expect().assertFail();
633        } catch (error) {
634            console.info(error.code);
635            console.info(error.message);
636            expect(error.code === "11400105").assertTrue();
637        }
638    })
639
640    /**
641     * @tc.name: HidebugJsTest_023
642     * @tc.desc: getSharedDirty测试
643     * @tc.type: FUNC
644     */
645    it('HidebugJsTest_023', 0, function () {
646        console.info("---------------------------HidebugJsTest_023----------------------------------");
647        try {
648            let sharedDirty = hidebug.getSharedDirty();
649            expect(sharedDirty >= 0).assertTrue();
650        } catch (error) {
651            console.info(error.code);
652            console.info(error.message);
653            expect(false).assertTrue();
654        }
655    })
656
657    /**
658     * @tc.name: HidebugJsTest_024
659     * @tc.desc: getPrivateDirty测试
660     * @tc.type: FUNC
661     */
662    it('HidebugJsTest_024', 0, function () {
663        console.info("---------------------------HidebugJsTest_024----------------------------------");
664        try {
665            let privateDirty = hidebug.getPrivateDirty();
666            expect(privateDirty >= 0).assertTrue();
667        } catch (error) {
668            console.info(error.code);
669            console.info(error.message);
670            expect(false).assertTrue();
671        }
672    })
673
674    /**
675     * @tc.name: HidebugJsTest_025
676     * @tc.desc: getPss测试
677     * @tc.type: FUNC
678     */
679    it('HidebugJsTest_025', 0, function () {
680        console.info("---------------------------HidebugJsTest_025----------------------------------");
681        try {
682            let pss = hidebug.getPss();
683            expect(pss >= 0).assertTrue();
684        } catch (error) {
685            console.info(error.code);
686            console.info(error.message);
687            expect(false).assertTrue();
688        }
689    })
690
691    /**
692     * @tc.name: HidebugJsTest_026
693     * @tc.desc: getVss测试
694     * @tc.type: FUNC
695     */
696    it('HidebugJsTest_026', 0, function () {
697        console.info("---------------------------HidebugJsTest_026----------------------------------");
698        try {
699            let vss = hidebug.getVss();
700            expect(vss >= 0).assertTrue();
701        } catch (error) {
702            console.info(error.code);
703            console.info(error.message);
704            expect(false).assertTrue();
705        }
706    })
707
708    /**
709     * @tc.name: HidebugJsTest_027
710     * @tc.desc: getCpuUsage测试
711     * @tc.type: FUNC
712     */
713    it('HidebugJsTest_027', 0, function () {
714        console.info("---------------------------HidebugJsTest_027----------------------------------");
715        try {
716            let cpuUsage = hidebug.getCpuUsage();
717            expect(cpuUsage >= 0).assertTrue();
718        } catch (error) {
719            console.info(error.code);
720            console.info(error.message);
721            expect(false).assertTrue();
722        }
723    })
724
725    /**
726     * @tc.name: HidebugJsTest_028
727     * @tc.desc: getNativeHeapSize测试
728     * @tc.type: FUNC
729     */
730    it('HidebugJsTest_028', 0, function () {
731        console.info("---------------------------HidebugJsTest_028----------------------------------");
732        try {
733            let nativeHeapSize = hidebug.getNativeHeapSize();
734            expect(nativeHeapSize >= 0).assertTrue();
735        } catch (error) {
736            console.info(error.code);
737            console.info(error.message);
738            expect(false).assertTrue();
739        }
740    })
741
742    /**
743     * @tc.name: HidebugJsTest_029
744     * @tc.desc: getNativeHeapAllocatedSize测试
745     * @tc.type: FUNC
746     */
747    it('HidebugJsTest_029', 0, function () {
748        console.info("---------------------------HidebugJsTest_029----------------------------------");
749        try {
750            let nativeHeapAllocatedSize = hidebug.getNativeHeapAllocatedSize();
751            expect(nativeHeapAllocatedSize >= 0).assertTrue();
752        } catch (error) {
753            console.info(error.code);
754            console.info(error.message);
755            expect(false).assertTrue();
756        }
757    })
758
759    /**
760     * @tc.name: HidebugJsTest_030
761     * @tc.desc: getNativeHeapFreeSize测试
762     * @tc.type: FUNC
763     */
764    it('HidebugJsTest_030', 0, function () {
765        console.info("---------------------------HidebugJsTest_030----------------------------------");
766        try {
767            let nativeHeapFreeSize = hidebug.getNativeHeapFreeSize();
768            expect(nativeHeapFreeSize >= 0).assertTrue();
769        } catch (error) {
770            console.info(error.code);
771            console.info(error.message);
772            expect(false).assertTrue();
773        }
774    })
775
776    /**
777     * @tc.name: HidebugJsTest_031
778     * @tc.desc: startProfiling启动两次
779     * @tc.type: FUNC
780     */
781    it('HidebugJsTest_031', 0, async function () {
782        console.info("---------------------------HidebugJsTest_031----------------------------------");
783        try {
784            let timestamp1 = Date.now();
785            let filename1 = "cpuprofiler_" + timestamp1.toString();
786            hidebug.startProfiling(filename1);
787            await msleep(1000);
788            hidebug.stopProfiling();
789            let path1 = "/proc/self/root/data/storage/el2/base/files/" + filename1 + ".json";
790            expect(fs.accessSync(path1)).assertTrue();
791
792            let timestamp2 = Date.now();
793            let filename2 = "cpuprofiler_" + timestamp2.toString();
794            hidebug.startProfiling(filename2);
795            await msleep(1000);
796            hidebug.stopProfiling();
797            let path2 = "/proc/self/root/data/storage/el2/base/files/" + filename2 + ".json";
798            expect(fs.accessSync(path2)).assertTrue();
799        } catch (error) {
800            console.info(error.code);
801            console.info(error.message);
802            expect(false).assertTrue();
803        }
804    })
805
806    /**
807     * @tc.name: HidebugJsTest_032
808     * @tc.desc: startJsCpuProfiling启动两次
809     * @tc.type: FUNC
810     */
811    it('HidebugJsTest_032', 0, async function () {
812        console.info("---------------------------HidebugJsTest_032----------------------------------");
813        try {
814            let timestamp1 = Date.now();
815            let filename1 = "cpuprofiler_" + timestamp1.toString();
816            hidebug.startJsCpuProfiling(filename1);
817            await msleep(1000);
818            hidebug.stopJsCpuProfiling();
819            let path1 = "/proc/self/root/data/storage/el2/base/files/" + filename1 + ".json";
820            expect(fs.accessSync(path1)).assertTrue();
821
822            let timestamp2 = Date.now();
823            let filename2 = "cpuprofiler_" + timestamp2.toString();
824            hidebug.startJsCpuProfiling(filename2);
825            await msleep(1000);
826            hidebug.stopJsCpuProfiling();
827            let path2 = "/proc/self/root/data/storage/el2/base/files/" + filename2 + ".json";
828            expect(fs.accessSync(path2)).assertTrue();
829        } catch (error) {
830            console.info(error.code);
831            console.info(error.message);
832            expect(false).assertTrue();
833        }
834    })
835
836    /**
837     * @tc.name: HidebugJsTest_033
838     * @tc.desc: isDebugState,未连接调试状态下
839     * @tc.type: FUNC
840     * @tc.require: issueIAC8K0
841     */
842    it('HidebugJsTest_033', 0, function () {
843        console.info("---------------------------HidebugJsTest_033----------------------------------");
844        try {
845            let result = hidebug.isDebugState();
846            expect(result).assertFalse();
847        } catch (error) {
848            console.info(error.code);
849            console.info(error.message);
850        }
851    })
852
853    /**
854     * @tc.name: HidebugJsTest_034
855     * @tc.desc: getGraphicsMemory
856     * @tc.type: FUNC
857     */
858    it('HidebugJsTest_034', 0, async function () {
859        console.info("---------------------------HidebugJsTest_034----------------------------------");
860        try {
861            let graphicMemory = await hidebug.getGraphicsMemory();
862            expect(graphicMemory >= 0).assertTrue();
863        } catch (error) {
864            console.info(error.code);
865            console.info(error.message);
866            expect(false).assertTrue();
867        }
868    })
869
870    /**
871     * @tc.name: HidebugJsTest_035
872     * @tc.desc: getGraphicsMemorySync
873     * @tc.type: FUNC
874     */
875    it('HidebugJsTest_035', 0, function () {
876        console.info("---------------------------HidebugJsTest_035----------------------------------");
877        try {
878            let graphicMemory = hidebug.getGraphicsMemorySync();
879            expect(graphicMemory >= 0).assertTrue();
880        } catch (error) {
881            console.info(error.code);
882            console.info(error.message);
883            expect(false).assertTrue();
884        }
885    })
886
887    /**
888     * @tc.name: HidebugJsTest_036
889     * @tc.desc: testDumpJsRawHeapData1
890     * @tc.type: FUNC
891     */
892    it('HidebugJsTest_036', 0, async function () {
893        console.info("---------------------------HidebugJsTest_036----------------------------------");
894        hidebug.dumpJsRawHeapData("TEST").then((path) => {
895            expect(false).assertTrue();
896        }).catch(error => {
897            expect(error.code === "401").assertTrue();
898        });
899    })
900
901    /**
902     * @tc.name: HidebugJsTest_037
903     * @tc.desc: setJsRawHeapTrimLevel
904     * @tc.type: FUNC
905     */
906    it('HidebugJsTest_037', 0, function () {
907        console.info("---------------------------HidebugJsTest_037----------------------------------");
908        try {
909            hidebug.setJsRawHeapTrimLevel(2);
910            expect().assertFail();
911        } catch (error) {
912            console.info(error.code);
913            expect(error.code === "401").assertTrue();
914        }
915    })
916
917    /**
918     * @tc.name: HidebugJsTest_038
919     * @tc.desc: setJsRawHeapTrimLevel
920     * @tc.type: FUNC
921     */
922    it('HidebugJsTest_038', 0, function () {
923        console.info("---------------------------HidebugJsTest_038----------------------------------");
924        try {
925            hidebug.setJsRawHeapTrimLevel("abc");
926            expect().assertFail();
927        } catch (error) {
928            console.info(error.code);
929            expect(error.code === "401").assertTrue();
930        }
931    })
932
933    /**
934     * @tc.name: HidebugJsTest_039
935     * @tc.desc: setJsRawHeapTrimLevel
936     * @tc.type: FUNC
937     */
938    it('HidebugJsTest_039', 0, function () {
939        console.info("---------------------------HidebugJsTest_039----------------------------------");
940        try {
941            hidebug.setJsRawHeapTrimLevel(1);
942            expect(true).assertTrue();
943        } catch (error) {
944            console.info(error.code);
945            expect(error.code === "401").assertTrue();
946        }
947    })
948
949    /**
950     * @tc.name: HidebugJsTest_040
951     * @tc.desc: setJsRawHeapTrimLevel
952     * @tc.type: FUNC
953     */
954    it('HidebugJsTest_040', 0, function () {
955        console.info("---------------------------HidebugJsTest_040----------------------------------");
956        try {
957            hidebug.setJsRawHeapTrimLevel(1, 2);
958            expect().assertFail();
959        } catch (error) {
960            console.info(error.code);
961            expect(error.code === "401").assertTrue();
962        }
963    })
964
965    /**
966     * @tc.name: HidebugJsTest_041
967     * @tc.desc: setJsRawHeapTrimLevel
968     * @tc.type: FUNC
969     */
970    it('HidebugJsTest_041', 0, function () {
971        console.info("---------------------------HidebugJsTest_041----------------------------------");
972        try {
973            hidebug.setJsRawHeapTrimLevel(hidebug.JsRawHeapTrimLevel.TRIM_LEVEL_1);
974            expect(true).assertTrue();
975        } catch (error) {
976            console.info(error.code);
977            expect(false).toBe(true);
978        }
979    })
980
981    /**
982     * @tc.name: HidebugJsTest_042
983     * @tc.desc: setJsRawHeapTrimLevel
984     * @tc.type: FUNC
985     */
986    it('HidebugJsTest_042', 0, function () {
987        console.info("---------------------------HidebugJsTest_042----------------------------------");
988        try {
989            hidebug.setJsRawHeapTrimLevel(hidebug.JsRawHeapTrimLevel.TRIM_LEVEL_2);
990            expect(true).assertTrue();
991        } catch (error) {
992            console.info(error.code);
993            expect(false).toBe(true);
994        }
995    })
996})
997