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