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: HidebugJsTest_010
277         * @tc.desc: getSystemMemInfo()的正常测试
278         * @tc.type: FUNC
279         * @tc.require: issueI5VY8L
280         */
281        it('HidebugJsTest_010', 0, function () {
282            console.info("---------------------------HidebugJsTest_010----------------------------------");
283            try {
284                let systemMemInfo = hidebug.getSystemMemInfo();
285                expect(systemMemInfo.totalMem >= 0).assertTrue();
286                expect(systemMemInfo.freeMem >= 0).assertTrue();
287                expect(systemMemInfo.availableMem >= 0).assertTrue();
288            } catch (error) {
289                console.info(error.code);
290                console.info(error.message);
291                expect(false).assertTrue();
292            }
293        })
294
295    /**
296     * @tc.name: HidebugJsTest_011
297     * @tc.desc: getSystemCpuUsage的正常测试,查询system cpu usage
298     * @tc.type: FUNC
299     * @tc.require: issueI90Z36
300     */
301    it('HidebugJsTest_011', 0, function () {
302        console.info("---------------------------HidebugJsTest_011----------------------------------");
303        try {
304            let sysCpuUsage = hidebug.getSystemCpuUsage();
305            expect(sysCpuUsage >= 0 && sysCpuUsage <= 1).assertTrue();
306        } catch (error) {
307            console.info(error.code);
308            console.info(error.message);
309            expect(false).assertTrue();
310        }
311    })
312
313    /**
314     * @tc.name: HidebugJsTest_012
315     * @tc.desc: getAppMemoryLimit正常测试
316     * @tc.type: FUNC
317     * @tc.require: issueI8ZX7S
318     */
319    it('HidebugJsTest_012', 0, function () {
320        console.info("---------------------------HidebugJsTest_012----------------------------------");
321        try {
322            let temp = hidebug.getAppMemoryLimit();
323            expect(temp.rssLimit >= BigInt(0)).assertTrue();
324            expect(temp.vssLimit >= BigInt(0)).assertTrue();
325            expect(temp.vmHeapLimit >= BigInt(0)).assertTrue();
326            expect(temp.vmTotalHeapSize >= BigInt(0)).assertTrue();
327        } catch (error) {
328            expect().assertFail();
329        }
330    })
331
332    /**
333     * @tc.name: HidebugJsTest_013
334     * @tc.desc: getAppVMMemoryInfo正常测试
335     * @tc.type: FUNC
336     * @tc.require: issueI5VY8L
337     */
338    it('HidebugJsTest_013', 0, function () {
339        console.info("---------------------------HidebugJsTest_013----------------------------------");
340        try {
341            let result = hidebug.getAppVMMemoryInfo();
342            expect(result.allArraySize >= 0 && result.totalHeap >= 0 && result.heapUsed >= 0).assertTrue();
343        } catch (error) {
344            console.info(error.code);
345            console.info(error.message);
346            expect(false).assertTrue();
347        }
348    })
349
350    /**
351     * @tc.name: HidebugJsTest_014
352     * @tc.desc: getAppThreadCpuUsage正常测试
353     * @tc.type: FUNC
354     * @tc.require: issueI5VY8L
355     */
356    it('HidebugJsTest_014', 0, function () {
357        console.info("---------------------------HidebugJsTest_014----------------------------------");
358        try {
359            let appThreadCpuUsage = hidebug.getAppThreadCpuUsage();
360            expect(appThreadCpuUsage.length >= 0).assertTrue();
361        } catch (error) {
362            console.info(error.code);
363            console.info(error.message);
364            expect(false).assertTrue();
365        }
366    })
367
368    /**
369     * @tc.name: HidebugJsTest_015
370     * @tc.desc: StartAppTraceCapture正常测试
371     * @tc.type: FUNC
372     * @tc.require: issueI5VY8L
373     */
374    it('HidebugJsTest_015', 0, function () {
375        console.info("---------------------------HidebugJsTest_015----------------------------------");
376        try {
377            let tags = [hidebug.tags.ABILITY_MANAGER];
378            let flag = hidebug.TraceFlag.MAIN_THREAD;
379            let limitSize = 1024 * 1024;
380            let fileName = hidebug.startAppTraceCapture(tags, flag, limitSize);
381            for (let i = 0; i < 3; i++) {
382                hidebug.getSharedDirty();
383            }
384            hidebug.stopAppTraceCapture();
385            expect(fileName.length > 0).assertTrue();
386        } catch (error) {
387            console.info(error.code);
388            console.info(error.message);
389            expect(false).assertTrue();
390        }
391    })
392
393    /**
394     * @tc.name: HidebugJsTest_016
395     * @tc.desc: getVMRuntimeStats测试
396     * @tc.type: FUNC
397     * @tc.require: issueI5VY8L
398     */
399    it('HidebugJsTest_016', 0, function () {
400        console.info("---------------------------HidebugJsTest_016----------------------------------");
401        try {
402            let runtimeStats = hidebug.getVMRuntimeStats();
403            expect(runtimeStats["ark.gc.gc-count"] >= 0).assertTrue();
404            expect(runtimeStats["ark.gc.gc-time"] >= 0).assertTrue();
405            expect(runtimeStats["ark.gc.gc-bytes-allocated"] >= 0).assertTrue();
406            expect(runtimeStats["ark.gc.gc-bytes-freed"] >= 0).assertTrue();
407            expect(runtimeStats["ark.gc.fullgc-longtime-count"] >= 0).assertTrue();
408            expect(runtimeStats["others"] === undefined).assertTrue();
409        } catch (error) {
410            console.info(error.code);
411            console.info(error.message);
412            expect(false).assertTrue();
413        }
414    })
415
416    /**
417     * @tc.name: HidebugJsTest_017
418     * @tc.desc: getVMRuntimeStat正常测试
419     * @tc.type: FUNC
420     * @tc.require: issueI5VY8L
421     */
422    it('HidebugJsTest_017', 0, function () {
423        console.info("---------------------------HidebugJsTest_017----------------------------------");
424        try {
425            let gcCount = hidebug.getVMRuntimeStat("ark.gc.gc-count");
426            let gcTime = hidebug.getVMRuntimeStat("ark.gc.gc-time");
427            let gcBytesAllocated = hidebug.getVMRuntimeStat("ark.gc.gc-bytes-allocated");
428            let gcBytesFreed = hidebug.getVMRuntimeStat("ark.gc.gc-bytes-freed");
429            let fullGcLongTimeCount = hidebug.getVMRuntimeStat("ark.gc.fullgc-longtime-count");
430            expect(gcCount >= 0).assertTrue();
431            expect(gcTime >= 0).assertTrue();
432            expect(gcBytesAllocated >= 0).assertTrue();
433            expect(gcBytesFreed >= 0).assertTrue();
434            expect(fullGcLongTimeCount >= 0).assertTrue();
435        } catch (error) {
436            console.info(error.code);
437            console.info(error.message);
438            expect(false).assertTrue();
439        }
440    })
441
442    /**
443     * @tc.name: HidebugJsTest_018
444     * @tc.desc: getVMRuntimeStat参数异常测试
445     * @tc.type: FUNC
446     * @tc.require: issueI5VY8L
447     */
448    it('HidebugJsTest_018', 0, function () {
449        console.info("---------------------------HidebugJsTest_018----------------------------------");
450        try {
451            hidebug.getVMRuntimeStat("others");
452            expect(false).assertTrue();
453        } catch (error) {
454            expect(error.code === "401").assertTrue();
455            expect(error.message === "Invalid parameter, unknown property.").assertTrue();
456        }
457    })
458
459    /**
460     * @tc.name: HidebugJsTest_019
461     * @tc.desc: setAppResourceLimit正常测试
462     * @tc.type: FUNC
463     * @tc.require: issueI5VY8L
464     */
465    it('HidebugJsTest_019', 0, function () {
466        console.info("---------------------------HidebugJsTest_019----------------------------------");
467        try {
468            let type = "js_heap";
469            let value = 85;
470            let enabledDebugLog = false;
471            hidebug.setAppResourceLimit(type, value, enabledDebugLog);
472        } catch (error) {
473            console.info(error.code);
474            expect(error.code === "401").assertTrue();
475        }
476    })
477
478    /**
479     * @tc.name: HidebugJsTest_020
480     * @tc.desc: StartAppTraceCapture错误传参测试
481     * @tc.type: FUNC
482     * @tc.require: issueI5VY8L
483     */
484    it('HidebugJsTest_020', 0, function () {
485        console.info("---------------------------HidebugJsTest_020----------------------------------");
486        try {
487            let tags = [hidebug.tags.ABILITY_MANAGER];
488            let flag = 123;
489            let limitSize = 1024 * 1024;
490            let fileName = hidebug.startAppTraceCapture(tags, flag, limitSize);
491            for (let i = 0; i < 3; i++) {
492                hidebug.getSharedDirty();
493            }
494            hidebug.stopAppTraceCapture();
495            expect().assertFail();
496        } catch (error) {
497            console.info(error.code);
498            console.info(error.message);
499            expect(error.code === "401").assertTrue();
500        }
501    })
502
503    /**
504     * @tc.name: HidebugJsTest_021
505     * @tc.desc: StartAppTraceCapture重复启动测试
506     * @tc.type: FUNC
507     * @tc.require: issueI5VY8L
508     */
509    it('HidebugJsTest_021', 0, function () {
510        console.info("---------------------------HidebugJsTest_021----------------------------------");
511        let fileName = "";
512        try {
513            let tags = [hidebug.tags.ABILITY_MANAGER];
514            let flag = hidebug.TraceFlag.MAIN_THREAD;
515            let limitSize = 1024 * 1024;
516            fileName = hidebug.startAppTraceCapture(tags, flag, limitSize);
517            for (let i = 0; i < 3; i++) {
518                hidebug.getSharedDirty();
519            }
520            fileName = hidebug.startAppTraceCapture(tags, flag, limitSize);
521            hidebug.stopAppTraceCapture();
522            expect().assertFail();
523        } catch (error) {
524            console.info(error.code);
525            console.info(error.message);
526            if (fileName.length > 0) {
527                hidebug.stopAppTraceCapture();
528            }
529            expect(error.code === "11400102").assertTrue();
530        }
531    })
532
533    /**
534     * @tc.name: HidebugJsTest_022
535     * @tc.desc: StartAppTraceCapture未启动直接关闭测试
536     * @tc.type: FUNC
537     * @tc.require: issueI5VY8L
538     */
539    it('HidebugJsTest_022', 0, function () {
540        console.info("---------------------------HidebugJsTest_022----------------------------------");
541        try {
542            hidebug.stopAppTraceCapture();
543            expect().assertFail();
544        } catch (error) {
545            console.info(error.code);
546            console.info(error.message);
547            expect(error.code === "11400105").assertTrue();
548        }
549    })
550
551    /**
552     * @tc.name: HidebugJsTest_023
553     * @tc.desc: getSharedDirty测试
554     * @tc.type: FUNC
555     */
556    it('HidebugJsTest_023', 0, function () {
557        console.info("---------------------------HidebugJsTest_023----------------------------------");
558        try {
559            let sharedDirty = hidebug.getSharedDirty();
560            expect(sharedDirty >= 0).assertTrue();
561        } catch (error) {
562            console.info(error.code);
563            console.info(error.message);
564            expect(false).assertTrue();
565        }
566    })
567
568    /**
569     * @tc.name: HidebugJsTest_024
570     * @tc.desc: getPrivateDirty测试
571     * @tc.type: FUNC
572     */
573    it('HidebugJsTest_024', 0, function () {
574        console.info("---------------------------HidebugJsTest_024----------------------------------");
575        try {
576            let privateDirty = hidebug.getPrivateDirty();
577            expect(privateDirty >= 0).assertTrue();
578        } catch (error) {
579            console.info(error.code);
580            console.info(error.message);
581            expect(false).assertTrue();
582        }
583    })
584
585    /**
586     * @tc.name: HidebugJsTest_025
587     * @tc.desc: getPss测试
588     * @tc.type: FUNC
589     */
590    it('HidebugJsTest_025', 0, function () {
591        console.info("---------------------------HidebugJsTest_025----------------------------------");
592        try {
593            let pss = hidebug.getPss();
594            expect(pss >= 0).assertTrue();
595        } catch (error) {
596            console.info(error.code);
597            console.info(error.message);
598            expect(false).assertTrue();
599        }
600    })
601
602    /**
603     * @tc.name: HidebugJsTest_026
604     * @tc.desc: getVss测试
605     * @tc.type: FUNC
606     */
607    it('HidebugJsTest_026', 0, function () {
608        console.info("---------------------------HidebugJsTest_026----------------------------------");
609        try {
610            let vss = hidebug.getVss();
611            expect(vss >= 0).assertTrue();
612        } catch (error) {
613            console.info(error.code);
614            console.info(error.message);
615            expect(false).assertTrue();
616        }
617    })
618
619    /**
620     * @tc.name: HidebugJsTest_027
621     * @tc.desc: getCpuUsage测试
622     * @tc.type: FUNC
623     */
624    it('HidebugJsTest_027', 0, function () {
625        console.info("---------------------------HidebugJsTest_027----------------------------------");
626        try {
627            let cpuUsage = hidebug.getCpuUsage();
628            expect(cpuUsage >= 0).assertTrue();
629        } catch (error) {
630            console.info(error.code);
631            console.info(error.message);
632            expect(false).assertTrue();
633        }
634    })
635
636    /**
637     * @tc.name: HidebugJsTest_028
638     * @tc.desc: getNativeHeapSize测试
639     * @tc.type: FUNC
640     */
641    it('HidebugJsTest_028', 0, function () {
642        console.info("---------------------------HidebugJsTest_028----------------------------------");
643        try {
644            let nativeHeapSize = hidebug.getNativeHeapSize();
645            expect(nativeHeapSize >= 0).assertTrue();
646        } catch (error) {
647            console.info(error.code);
648            console.info(error.message);
649            expect(false).assertTrue();
650        }
651    })
652
653    /**
654     * @tc.name: HidebugJsTest_029
655     * @tc.desc: getNativeHeapAllocatedSize测试
656     * @tc.type: FUNC
657     */
658    it('HidebugJsTest_029', 0, function () {
659        console.info("---------------------------HidebugJsTest_029----------------------------------");
660        try {
661            let nativeHeapAllocatedSize = hidebug.getNativeHeapAllocatedSize();
662            expect(nativeHeapAllocatedSize >= 0).assertTrue();
663        } catch (error) {
664            console.info(error.code);
665            console.info(error.message);
666            expect(false).assertTrue();
667        }
668    })
669
670    /**
671     * @tc.name: HidebugJsTest_030
672     * @tc.desc: getNativeHeapFreeSize测试
673     * @tc.type: FUNC
674     */
675    it('HidebugJsTest_030', 0, function () {
676        console.info("---------------------------HidebugJsTest_030----------------------------------");
677        try {
678            let nativeHeapFreeSize = hidebug.getNativeHeapFreeSize();
679            expect(nativeHeapFreeSize >= 0).assertTrue();
680        } catch (error) {
681            console.info(error.code);
682            console.info(error.message);
683            expect(false).assertTrue();
684        }
685    })
686
687    /**
688     * @tc.name: HidebugJsTest_031
689     * @tc.desc: startProfiling启动两次
690     * @tc.type: FUNC
691     */
692    it('HidebugJsTest_031', 0, async function () {
693        console.info("---------------------------HidebugJsTest_031----------------------------------");
694        try {
695            let timestamp1 = Date.now();
696            let filename1 = "cpuprofiler_" + timestamp1.toString();
697            hidebug.startProfiling(filename1);
698            await msleep(1000);
699            hidebug.stopProfiling();
700            let path1 = "/proc/self/root/data/storage/el2/base/files/" + filename1 + ".json";
701            expect(fs.accessSync(path1)).assertTrue();
702
703            let timestamp2 = Date.now();
704            let filename2 = "cpuprofiler_" + timestamp2.toString();
705            hidebug.startProfiling(filename2);
706            await msleep(1000);
707            hidebug.stopProfiling();
708            let path2 = "/proc/self/root/data/storage/el2/base/files/" + filename2 + ".json";
709            expect(fs.accessSync(path2)).assertTrue();
710        } catch (err) {
711            console.info(error.code);
712            console.info(error.message);
713            expect(false).assertTrue();
714        }
715    })
716
717    /**
718     * @tc.name: HidebugJsTest_032
719     * @tc.desc: startJsCpuProfiling启动两次
720     * @tc.type: FUNC
721     */
722    it('HidebugJsTest_032', 0, async function () {
723        console.info("---------------------------HidebugJsTest_032----------------------------------");
724        try {
725            let timestamp1 = Date.now();
726            let filename1 = "cpuprofiler_" + timestamp1.toString();
727            hidebug.startJsCpuProfiling(filename1);
728            await msleep(1000);
729            hidebug.stopJsCpuProfiling();
730            let path1 = "/proc/self/root/data/storage/el2/base/files/" + filename1 + ".json";
731            expect(fs.accessSync(path1)).assertTrue();
732
733            let timestamp2 = Date.now();
734            let filename2 = "cpuprofiler_" + timestamp2.toString();
735            hidebug.startJsCpuProfiling(filename2);
736            await msleep(1000);
737            hidebug.stopJsCpuProfiling();
738            let path2 = "/proc/self/root/data/storage/el2/base/files/" + filename2 + ".json";
739            expect(fs.accessSync(path2)).assertTrue();
740        } catch (err) {
741            console.info(error.code);
742            console.info(error.message);
743            expect(false).assertTrue();
744        }
745    })
746
747    /**
748     * @tc.name: HidebugJsTest_033
749     * @tc.desc: isDebugState,未连接调试状态下
750     * @tc.type: FUNC
751     * @tc.require: issueIAC8K0
752     */
753    it('HidebugJsTest_033', 0, function () {
754        console.info("---------------------------HidebugJsTest_033----------------------------------");
755        try {
756            let result = hidebug.isDebugState();
757            expect(result).assertFalse();
758        } catch (error) {
759            console.info(error.code);
760            console.info(error.message);
761        }
762    })
763
764    /**
765     * @tc.name: HidebugJsTest_034
766     * @tc.desc: getGraphicsMemory
767     * @tc.type: FUNC
768     */
769    it('HidebugJsTest_034', 0, async function () {
770        console.info("---------------------------HidebugJsTest_034----------------------------------");
771        try {
772            let graphicMemory = await hidebug.getGraphicsMemory();
773            expect(graphicMemory >= 0).assertTrue();
774        } catch (err) {
775            console.info(error.code);
776            console.info(error.message);
777            expect(false).assertTrue();
778        }
779    })
780
781    /**
782     * @tc.name: HidebugJsTest_035
783     * @tc.desc: getGraphicsMemorySync
784     * @tc.type: FUNC
785     */
786    it('HidebugJsTest_035', 0, function () {
787        console.info("---------------------------HidebugJsTest_035----------------------------------");
788        try {
789            let graphicMemory = hidebug.getGraphicsMemorySync();
790            expect(graphicMemory >= 0).assertTrue();
791        } catch (err) {
792            console.info(error.code);
793            console.info(error.message);
794            expect(false).assertTrue();
795        }
796    })
797})
798