From 50d6e99e000b893a084956c360a772c4f41cdea6 Mon Sep 17 00:00:00 2001 From: chenxuihui Date: Tue, 25 Oct 2022 14:19:49 +0800 Subject: [PATCH] =?UTF-8?q?hidebug=E3=80=81hichecker=E3=80=81faultlogger?= =?UTF-8?q?=E6=96=B0=E5=A2=9Eapi=E6=8E=A5=E5=8F=A3=E6=B5=8B=E8=AF=95?= =?UTF-8?q?=E7=94=A8=E4=BE=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: chenxuihui --- .../src/main/js/test/HiChecker.test.js | 119 +++++++++- .../src/main/js/test/Hidebug.test.js | 88 +++++++- .../src/main/js/test/faultlogger.test.js | 206 +++++++++++++++++- 3 files changed, 409 insertions(+), 4 deletions(-) diff --git a/hiviewdfx/hicheckertest/hicheckerjstest/src/main/js/test/HiChecker.test.js b/hiviewdfx/hicheckertest/hicheckerjstest/src/main/js/test/HiChecker.test.js index cc7e7019b..dc12decda 100644 --- a/hiviewdfx/hicheckertest/hicheckerjstest/src/main/js/test/HiChecker.test.js +++ b/hiviewdfx/hicheckertest/hicheckerjstest/src/main/js/test/HiChecker.test.js @@ -144,6 +144,123 @@ describe('HiCheckerTest', function () { hichecker.removeRule(999999); expect(hichecker.getRule() == tmp).assertTrue(); }) - + + /** + * @tc.number DFX_DFR_Hichecker_Interface_2200 + * @tc.name addCheckRule with normal parameter + * @tc.desc + */ + it('DFX_DFR_Hichecker_Interface_2200', 0, function () { + console.info('DFX_DFR_Hichecker_Interface_2200 start'); + try { + hichecker.addCheckRule(hichecker.RULE_THREAD_CHECK_SLOW_PROCESS | hichecker.RULE_CHECK_SLOW_EVENT); + hichecker.addCheckRule(hichecker.RULE_CHECK_ABILITY_CONNECTION_LEAK | hichecker.RULE_CAUTION_PRINT_LOG); + console.log('add rule success!'); + expect(hichecker.containsCheckRule(hichecker.RULE_THREAD_CHECK_SLOW_PROCESS)).assertTrue(); + expect(hichecker.containsCheckRule(hichecker.RULE_CHECK_SLOW_EVENT)).assertTrue(); + expect(hichecker.containsCheckRule(hichecker.RULE_CHECK_ABILITY_CONNECTION_LEAK)).assertTrue(); + expect(hichecker.containsCheckRule(hichecker.RULE_CAUTION_PRINT_LOG)).assertTrue(); + } catch (error) { + console.info(error.code) + console.info(error.message) + expect(error.code == 401).assertTrue(); + } + }) + + /** + * @tc.number DFX_DFR_Hichecker_Interface_2300 + * @tc.name removeCheckRule with normal parameter + * @tc.desc + */ + it('DFX_DFR_Hichecker_Interface_2300', 0, function () { + console.info('DFX_DFR_Hichecker_Interface_2300 start'); + try { + hichecker.addCheckRule(hichecker.RULE_THREAD_CHECK_SLOW_PROCESS | hichecker.RULE_CHECK_SLOW_EVENT); + hichecker.addCheckRule(hichecker.RULE_CHECK_ABILITY_CONNECTION_LEAK | hichecker.RULE_CAUTION_PRINT_LOG); + console.log('add rule success!'); + let tmp = (hichecker.RULE_CHECK_ABILITY_CONNECTION_LEAK | hichecker.RULE_CAUTION_PRINT_LOG); + hichecker.removeCheckRule(hichecker.RULE_THREAD_CHECK_SLOW_PROCESS | hichecker.RULE_CHECK_SLOW_EVENT); + expect(hichecker.getRule() == tmp).assertTrue(); + hichecker.removeCheckRule(hichecker.RULE_CHECK_ABILITY_CONNECTION_LEAK | hichecker.RULE_CAUTION_PRINT_LOG); + expect(hichecker.getRule() == 0).assertTrue(); + } catch (error) { + console.info(error.code) + console.info(error.message) + expect(error.code == 401).assertTrue(); + } + }) + + /** + * @tc.number DFX_DFR_Hichecker_Interface_2400 + * @tc.name containsCheckRule with normal parameter + * @tc.desc + */ + it('DFX_DFR_Hichecker_Interface_2400', 0, function () { + console.info('DFX_DFR_Hichecker_Interface_2400 start'); + try { + hichecker.addCheckRule(hichecker.RULE_THREAD_CHECK_SLOW_PROCESS | hichecker.RULE_CHECK_SLOW_EVENT); + hichecker.addCheckRule(hichecker.RULE_CHECK_ABILITY_CONNECTION_LEAK | hichecker.RULE_CAUTION_PRINT_LOG); + console.log('add rule success!'); + expect(hichecker.containsCheckRule(hichecker.RULE_THREAD_CHECK_SLOW_PROCESS)).assertTrue(); + expect(hichecker.containsCheckRule(hichecker.RULE_CHECK_SLOW_EVENT)).assertTrue(); + expect(hichecker.containsCheckRule(hichecker.RULE_CHECK_ABILITY_CONNECTION_LEAK)).assertTrue(); + expect(hichecker.containsCheckRule(hichecker.RULE_CAUTION_PRINT_LOG)).assertTrue(); + } catch (error) { + console.info(error.code) + console.info(error.message) + expect(error.code == 401).assertTrue(); + } + }) + + /** + * @tc.number DFX_DFR_Hichecker_Interface_2500 + * @tc.name addCheckRule with abnormal parameter + * @tc.desc + */ + it('DFX_DFR_Hichecker_Interface_2500', 0, function () { + console.info('DFX_DFR_Hichecker_Interface_2500 start'); + try { + hichecker.addCheckRule(); + } catch (error) { + console.info(error.code) + console.info(error.message) + expect(error.code == 401).assertTrue(); + } + }) + + /** + * @tc.number DFX_DFR_Hichecker_Interface_2600 + * @tc.name removeCheckRule with abnormal parameter + * @tc.desc + */ + it('DFX_DFR_Hichecker_Interface_2600', 0, function () { + console.info('DFX_DFR_Hichecker_Interface_2600 start'); + try { + hichecker.removeCheckRule(); + } catch (error) { + console.info(error.code) + console.info(error.message) + expect(error.code == 401).assertTrue(); + } + }) + + /** + * @tc.number DFX_DFR_Hichecker_Interface_2700 + * @tc.name containsCheckRule with abnormal parameter + * @tc.desc + */ + it('DFX_DFR_Hichecker_Interface_2700', 0, function () { + console.info('DFX_DFR_Hichecker_Interface_2700 start'); + try { + hichecker.addCheckRule(hichecker.RULE_THREAD_CHECK_SLOW_PROCESS | hichecker.RULE_CHECK_SLOW_EVENT); + console.log('add rule success!'); + hichecker.containsCheckRule(); + } catch (error) { + console.info(error.code) + console.info(error.message) + expect(error.code == 401).assertTrue(); + } + }) + }) } diff --git a/hiviewdfx/hidebugtest/hidebugtestjstest/src/main/js/test/Hidebug.test.js b/hiviewdfx/hidebugtest/hidebugtestjstest/src/main/js/test/Hidebug.test.js index 8bce18754..05c872d3c 100644 --- a/hiviewdfx/hidebugtest/hidebugtestjstest/src/main/js/test/Hidebug.test.js +++ b/hiviewdfx/hidebugtest/hidebugtestjstest/src/main/js/test/Hidebug.test.js @@ -14,6 +14,7 @@ */ import hidebug from '@ohos.hidebug' import fileio from '@ohos.fileio' +import process from '@ohos.process' import featureAbility from '@ohos.ability.featureAbility' import {describe, it, expect} from '@ohos/hypium' @@ -408,6 +409,91 @@ describe('HidebugJsTest', function () { }) console.log('************* DFX_DFR_Hiprofiler_Interface_1000 Test end*************'); }); - + + /* + * @tc.number : DFX_DFR_Hiprofiler_Interface_1800 + * @tc.name : startJsCpuProfiling/stopJsCpuProfiling with normal parameter + * @tc.desc : startJsCpuProfiling/stopJsCpuProfiling + */ + it('DFX_DFR_Hiprofiler_Interface_1800', 0, function() { + console.log('************* DFX_DFR_Hiprofiler_Interface_1800 Test start*************'); + try { + let timestamp = Date.now(); + let filename = "cpuprofiler_" + timestamp.toString(); + hidebug.startJsCpuProfiling(filename); + for (var i = 0; i < 3; i++) { + hidebug.getSharedDirty(); + } + hidebug.stopJsCpuProfiling(); + var pid = process.pid; + let path = "/proc/" + pid + "/root/data/storage/el2/base/files/" + filename + ".json"; + let data = fileio.readTextSync(path); + if (data.includes("napi")) { + expect(true).assertTrue(); + } else { + expect(false).assertTrue(); + } + } catch (err) { + console.error('DFX_DFR_Hiprofiler_Interface_1800 has failed for ' + err); + expect(false).assertTrue(); + } + console.log('************* DFX_DFR_Hiprofiler_Interface_1800 Test end*************'); + }); + + /* + * @tc.number : DFX_DFR_Hiprofiler_Interface_1900 + * @tc.name : startJsCpuProfiling/stopJsCpuProfiling with abnormal parameter + * @tc.desc : startJsCpuProfiling/stopJsCpuProfiling + */ + it('DFX_DFR_Hiprofiler_Interface_1900', 0, function() { + console.log('************* DFX_DFR_Hiprofiler_Interface_1900 Test start*************'); + try { + hidebug.startJsCpuProfiling(); + for (var i = 0; i < 3; i++) { + hidebug.getSharedDirty(); + } + hidebug.stopJsCpuProfiling(); + } catch (error) { + console.info(error.code); + console.info(error.message); + expect(error.code == 401).assertTrue(); + } + console.log('************* DFX_DFR_Hiprofiler_Interface_1900 Test end*************'); + }); + + /* + * @tc.number : DFX_DFR_Hiprofiler_Interface_2000 + * @tc.name : dumpJsHeapData with normal parameter + * @tc.desc : dumpJsHeapData + */ + it('DFX_DFR_Hiprofiler_Interface_2000', 0, function() { + console.log('************* DFX_DFR_Hiprofiler_Interface_2000 Test start*************'); + try { + hidebug.dumpJsHeapData("heapData"); + expect(true).assertTrue(); + } catch (error) { + console.info(error.code); + console.info(error.message); + } + console.log('************* DFX_DFR_Hiprofiler_Interface_2000 Test end*************'); + }); + + /* + * @tc.number : DFX_DFR_Hiprofiler_Interface_2100 + * @tc.name : dumpJsHeapData with abnormal parameter + * @tc.desc : dumpJsHeapData + */ + it('DFX_DFR_Hiprofiler_Interface_2100', 0, function() { + console.log('************* DFX_DFR_Hiprofiler_Interface_2100 Test start*************'); + try { + hidebug.dumpJsHeapData(); + } catch (error) { + console.info(error.code); + console.info(error.message); + expect(error.code == 401).assertTrue(); + } + console.log('************* DFX_DFR_Hiprofiler_Interface_2100 Test end*************'); + }); + }) } diff --git a/hiviewdfx/hiview/faultlogger/faultloggerjs/src/main/js/test/faultlogger.test.js b/hiviewdfx/hiview/faultlogger/faultloggerjs/src/main/js/test/faultlogger.test.js index 910c81513..a2d412db9 100644 --- a/hiviewdfx/hiview/faultlogger/faultloggerjs/src/main/js/test/faultlogger.test.js +++ b/hiviewdfx/hiview/faultlogger/faultloggerjs/src/main/js/test/faultlogger.test.js @@ -197,7 +197,7 @@ describe("FaultlogJsTest", function () { const loopTimes = 10; for (let i = 0; i < loopTimes; i++) { console.info("--------DFX_DFR_Faultlogger_Interface_0300 3 + " + i + "----------"); - faultlogger.addFaultLog(i - 200, + faultlogger.addFaultLog(i - 400, faultlogger.FaultType.APP_FREEZE, module, "faultloggertestsummary04 " + i); await msleep(300); } @@ -242,7 +242,7 @@ describe("FaultlogJsTest", function () { const loopTimes = 10; for (let i = 0; i < loopTimes; i++) { console.info("--------DFX_DFR_Faultlogger_Interface_0100 + " + i + "----------"); - faultlogger.addFaultLog(i - 100, + faultlogger.addFaultLog(i - 300, faultlogger.FaultType.CPP_CRASH, module, "faultloggertestsummary05 " + i); await msleep(300); } @@ -276,5 +276,207 @@ describe("FaultlogJsTest", function () { expect(false).assertTrue(); done(); }) + + /** + * + * @tc.name: DFX_DFR_Faultlogger_Interface_0600 + * @tc.desc: 检验函数参数输入错误时程序是否会崩溃 + * @tc.require: AR000GICT2 + */ + it('DFX_DFR_Faultlogger_Interface_0600', 0, function () { + console.info("---------------------------DFX_DFR_Faultlogger_Interface_0600----------------------------------"); + try { + let ret = faultlogger.query("faultloggertestsummary06"); + console.info("DFX_DFR_Faultlogger_Interface_0600 ret == " + ret); + return; + } catch(err) { + console.info(err.code); + console.info(err.message); + expect(err.code == 401).assertTrue(); + } + }) + + /** + * + * @tc.name: DFX_DFR_Faultlogger_Interface_0700 + * @tc.desc: 检验函数参数输入错误时程序是否会崩溃 + * @tc.require: AR000GICT2 + */ + it('DFX_DFR_Faultlogger_Interface_0700', 0, function () { + console.info("---------------------------DFX_DFR_Faultlogger_Interface_0700----------------------------------"); + try { + let ret = faultlogger.query(faultlogger.FaultType.JS_CRASH, "faultloggertestsummary07"); + console.info("DFX_DFR_Faultlogger_Interface_0700 ret == " + ret); + return; + } catch(err) { + console.info(err.code); + console.info(err.message); + expect(err.code == 401).assertTrue(); + } + }) + + /** + * + * @tc.name: DFX_DFR_Faultlogger_Interface_0800 + * @tc.desc: 检验函数参数输入错误时程序是否会崩溃 + * @tc.require: AR000GICT2 + */ + it('DFX_DFR_Faultlogger_Interface_0800', 0, function () { + console.info("---------------------------DFX_DFR_Faultlogger_Interface_0800----------------------------------"); + try { + let ret = faultlogger.query(); + console.info("DFX_DFR_Faultlogger_Interface_0800 ret == " + ret); + return; + } catch(err) { + console.info(err.code); + console.info(err.message); + expect(err.code == 401).assertTrue(); + } + }) + + /** + * + * @tc.name: DFX_DFR_Faultlogger_Interface_0900 + * @tc.desc: 检验promise同步方式获取faultlog JS_CRASH日志 + * @tc.require: AR000GICT2 + */ + it('DFX_DFR_Faultlogger_Interface_0900', 0, async function (done) { + console.info("---------------------------DFX_DFR_Faultlogger_Interface_0900----------------------------------"); + try { + let now = Date.now(); + console.info("DFX_DFR_Faultlogger_Interface_0900 2 + " + now); + hiSysEvent.write({ + domain: "ACE", + name: "JS_ERROR", + eventType: hiSysEvent.EventType.FAULT, + params: { + PID: 487, + UID:103, + PACKAGE_NAME: "com.ohos.faultlogger.test", + PROCESS_NAME: "com.ohos.faultlogger.test", + MSG: "faultlogger testcase test.", + REASON: "faultlogger testcase test." + } + }).then( + (value) => { + console.log(`HiSysEvent json-callback-success value=${value}`); + }) + await msleep(1000); + + console.info("--------DFX_DFR_Faultlogger_Interface_0900 4" + "----------"); + let ret = await faultlogger.querySelfFaultLog(faultlogger.FaultType.JS_CRASH); + console.info("DFX_DFR_Faultlogger_Interface_0900 ret == " + ret.length); + if (ret.length > 0) { + expect(true).assertTrue(); + } else { + expect(false).assertTrue(); + } + for (let i = 0; i < ret.length; i++) { + console.info("faultloggertestsummary08 " + i + " fullLog.length " + ret[i].fullLog.length); + } + done(); + return; + } catch (err) { + console.info("catch (err) == " + err); + } + console.info("DFX_DFR_Faultlogger_Interface_0900 error"); + expect(false).assertTrue(); + done(); + }) + + /** + * + * @tc.name: DFX_DFR_Faultlogger_Interface_1000 + * @tc.desc: 检验promise同步方式获取faultlog APP_FREEZE日志 + * @tc.require: AR000GICT2 + */ + it('DFX_DFR_Faultlogger_Interface_1000', 0, async function (done) { + console.info("---------------------------DFX_DFR_Faultlogger_Interface_1000----------------------------------"); + try { + let now = Date.now(); + console.info("DFX_DFR_Faultlogger_Interface_1000 2 + " + now); + let module = "ohos.faultloggerjs.test"; + const loopTimes = 10; + for (let i = 0; i < loopTimes; i++) { + console.info("--------DFX_DFR_Faultlogger_Interface_1000 3 + " + i + "----------"); + faultlogger.addFaultLog(i - 200, + faultlogger.FaultType.APP_FREEZE, module, "faultloggertestsummary09 " + i); + await msleep(300); + } + await msleep(1000); + + console.info("--------DFX_DFR_Faultlogger_Interface_1000 4" + "----------"); + let ret = await faultlogger.querySelfFaultLog(faultlogger.FaultType.APP_FREEZE); + console.info("DFX_DFR_Faultlogger_Interface_1000 ret == " + ret.length); + expect(ret.length).assertEqual(loopTimes); + for (let i = 0; i < loopTimes; i++) { + console.info("faultloggertestsummary09 " + i + " fullLog.length " + ret[i].fullLog.length); + if (ret[i].fullLog.indexOf("faultloggertestsummary09 " + (loopTimes - 1 - i)) != -1) { + console.info("DFX_DFR_Faultlogger_Interface_1000 " + ret[i].fullLog.length); + expect(true).assertTrue(); + } else { + expect(false).assertTrue(); + } + } + done(); + return; + } catch (err) { + console.info("catch (err) == " + err); + } + console.info("DFX_DFR_Faultlogger_Interface_1000 error"); + expect(false).assertTrue(); + done(); + }) + + /** + * test + * + * @tc.name: DFX_DFR_Faultlogger_Interface_1100 + * @tc.desc: 检验通过回调方式获取faultlog日志 + * @tc.require: AR000GICT2 + */ + it('DFX_DFR_Faultlogger_Interface_1100', 0, async function (done) { + console.info("---------------------------DFX_DFR_Faultlogger_Interface_1100----------------------------------"); + try { + let now = Date.now(); + console.info("DFX_DFR_Faultlogger_Interface_1100 start + " + now); + let module = "ohos.faultloggerjs.test"; + const loopTimes = 10; + for (let i = 0; i < loopTimes; i++) { + console.info("--------DFX_DFR_Faultlogger_Interface_1100 + " + i + "----------"); + faultlogger.addFaultLog(i - 100, + faultlogger.FaultType.CPP_CRASH, module, "faultloggertestsummary10 " + i); + await msleep(300); + } + await msleep(1000); + + console.info("--------DFX_DFR_Faultlogger_Interface_1100 4----------"); + function queryFaultLogCallback(error, ret) { + if (error) { + console.info('DFX_DFR_Faultlogger_Interface_1100 once error is ' + error); + } else { + console.info("DFX_DFR_Faultlogger_Interface_1100 ret == " + ret.length); + expect(ret.length).assertEqual(loopTimes); + for (let i = 0; i < loopTimes; i++) { + console.info("faultloggertestsummary10 " + i + " fullLog.length " + ret[i].fullLog.length); + if (ret[i].fullLog.indexOf("faultloggertestsummary10 " + (loopTimes - 1 - i)) != -1) { + console.info("DFX_DFR_Faultlogger_Interface_1100 " + ret[i].fullLog.length); + expect(true).assertTrue(); + } else { + expect(false).assertTrue(); + } + } + } + done(); + } + faultlogger.querySelfFaultLog(faultlogger.FaultType.CPP_CRASH, queryFaultLogCallback); + return; + } catch (err) { + console.info(err); + } + console.info("DFX_DFR_Faultlogger_Interface_1100 error"); + expect(false).assertTrue(); + done(); + }) }) } -- GitLab