1/* 2 * Copyright (C) 2021-2022 Huawei Device Co., Ltd. 3 * Licensed under the Apache License, Version 2.0 (the "License"); 4 * you may not use this file except in compliance with the License. 5 * You may obtain a copy of the License at 6 * 7 * http://www.apache.org/licenses/LICENSE-2.0 8 * 9 * Unless required by applicable law or agreed to in writing, software 10 * distributed under the License is distributed on an "AS IS" BASIS, 11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 * See the License for the specific language governing permissions and 13 * limitations under the License. 14 */ 15 16import hiTraceMeter from '@ohos.hiTraceMeter'; 17 18import {describe, beforeAll, beforeEach, afterEach, afterAll, it, expect} from 'deccjsunit/index' 19 20describe('hiTraceMeterJsUnitTest', function () { 21 let logTag = '[hiTraceMeterJsUnitTest]'; 22 const DEBUG = hiTraceMeter.HiTraceOutputLevel.DEBUG; 23 const INFO = hiTraceMeter.HiTraceOutputLevel.INFO; 24 const CRITICAL = hiTraceMeter.HiTraceOutputLevel.CRITICAL; 25 const COMMERCIAL = hiTraceMeter.HiTraceOutputLevel.COMMERCIAL; 26 const MAX = hiTraceMeter.HiTraceOutputLevel.MAX; 27 28 beforeAll(function() { 29 30 /** 31 * @tc.setup: setup invoked before all test cases 32 */ 33 console.info(logTag, 'hiTraceMeterJsUnitTest beforeAll called'); 34 }) 35 36 afterAll(function() { 37 38 /** 39 * @tc.teardown: teardown invoked after all test cases 40 */ 41 console.info(logTag, 'hiTraceMeterJsUnitTest afterAll called'); 42 }) 43 44 beforeEach(function() { 45 46 /** 47 * @tc.setup: setup invoked before each test case 48 */ 49 console.info(logTag, 'hiTraceMeterJsUnitTest beforeEach called'); 50 }) 51 52 afterEach(function() { 53 54 /** 55 * @tc.teardown: teardown invoked after each test case 56 */ 57 console.info(logTag, 'hiTraceMeterJsUnitTest afterEach called'); 58 }) 59 60 /** 61 * @tc.name: hiTraceMeterJsUnitTest001 62 * @tc.desc: test hiTraceMeter.startTrace/hiTraceMeter.finishTrace 63 * @tc.type: FUNC 64 */ 65 it('hiTraceMeterJsUnitTest001', 0, async function (done) { 66 console.info(logTag, 'hiTraceMeterJsUnitTest001: start.'); 67 let name = 'hiTraceMeterJsUnitTest001'; 68 let taskId = 1001; 69 try { 70 hiTraceMeter.startTrace(name, taskId); 71 hiTraceMeter.finishTrace(name, taskId); 72 expect(true).assertTrue(); 73 } catch (err) { 74 console.info(logTag, name + 'fail, err = ' + err); 75 expect(false).assertTrue(); 76 } 77 done(); 78 console.info(logTag, 'hiTraceMeterJsUnitTest001: end.'); 79 }); 80 81 /** 82 * @tc.name: hiTraceMeterJsUnitTest002 83 * @tc.desc: test hiTraceMeter.traceByValue 84 * @tc.type: FUNC 85 */ 86 it('hiTraceMeterJsUnitTest002', 0, async function (done) { 87 console.info(logTag, 'hiTraceMeterJsUnitTest002: start.'); 88 let name = 'hiTraceMeterJsUnitTest002'; 89 let count = 1002; 90 try { 91 hiTraceMeter.traceByValue(name, count); 92 expect(true).assertTrue(); 93 } catch (err) { 94 console.info(logTag, name + 'fail, err = ' + err); 95 expect(false).assertTrue(); 96 } 97 done(); 98 console.info(logTag, 'hiTraceMeterJsUnitTest002: end.'); 99 }); 100 101 /** 102 * @tc.name: hiTraceMeterJsUnitTest003 103 * @tc.desc: test hiTraceMeter.startSyncTrace/hiTraceMeter.finishSyncTrace with different level 104 * @tc.type: FUNC 105 */ 106 it('hiTraceMeterJsUnitTest003', 0, async function (done) { 107 console.info(logTag, 'hiTraceMeterJsUnitTest003: start.'); 108 let name = 'hiTraceMeterJsUnitTest003'; 109 let customArgs = 'key=value'; 110 try { 111 hiTraceMeter.startSyncTrace(DEBUG, name, customArgs); 112 hiTraceMeter.finishSyncTrace(DEBUG, name, customArgs); 113 hiTraceMeter.startSyncTrace(INFO, name, customArgs); 114 hiTraceMeter.finishSyncTrace(INFO, name, customArgs); 115 hiTraceMeter.startSyncTrace(CRITICAL, name, customArgs); 116 hiTraceMeter.finishSyncTrace(CRITICAL, name, customArgs); 117 hiTraceMeter.startSyncTrace(COMMERCIAL, name, customArgs); 118 hiTraceMeter.finishSyncTrace(COMMERCIAL, name, customArgs); 119 hiTraceMeter.startSyncTrace(MAX, name, customArgs); 120 hiTraceMeter.finishSyncTrace(MAX, name, customArgs); 121 expect(true).assertTrue(); 122 } catch (err) { 123 console.info(logTag, name + 'fail, err = ' + err); 124 expect(false).assertTrue(); 125 } 126 done(); 127 console.info(logTag, 'hiTraceMeterJsUnitTest003: end.'); 128 }); 129 130 /** 131 * @tc.name: hiTraceMeterJsUnitTest004 132 * @tc.desc: test hiTraceMeter.startAsyncTrace/hiTraceMeter.finishAsyncTrace 133 * @tc.type: FUNC 134 */ 135 it('hiTraceMeterJsUnitTest004', 0, async function (done) { 136 console.info(logTag, 'hiTraceMeterJsUnitTest004: start.'); 137 let name = 'hiTraceMeterJsUnitTest004'; 138 let customCategory = 'test'; 139 let customArgs = 'key=value'; 140 let taskId = 1004; 141 try { 142 hiTraceMeter.startAsyncTrace(COMMERCIAL, name, taskId, customCategory, customArgs); 143 hiTraceMeter.finishAsyncTrace(COMMERCIAL, name, taskId); 144 expect(true).assertTrue(); 145 } catch (err) { 146 console.info(logTag, name + 'fail, err = ' + err); 147 expect(false).assertTrue(); 148 } 149 done(); 150 console.info(logTag, 'hiTraceMeterJsUnitTest004: end.'); 151 }); 152 153 /** 154 * @tc.name: hiTraceMeterJsUnitTest005 155 * @tc.desc: test hiTraceMeter.traceByValue with level 156 * @tc.type: FUNC 157 */ 158 it('hiTraceMeterJsUnitTest005', 0, async function (done) { 159 console.info(logTag, 'hiTraceMeterJsUnitTest005: start.'); 160 let name = 'hiTraceMeterJsUnitTest005'; 161 let count = 1005; 162 try { 163 hiTraceMeter.traceByValue(COMMERCIAL, name, count); 164 expect(true).assertTrue(); 165 } catch (err) { 166 console.info(logTag, name + 'fail, err = ' + err); 167 expect(false).assertTrue(); 168 } 169 done(); 170 console.info(logTag, 'hiTraceMeterJsUnitTest005: end.'); 171 }); 172 173 /** 174 * @tc.name: hiTraceMeterJsUnitTest006 175 * @tc.desc: test isTraceEnabled 176 * @tc.type: FUNC 177 */ 178 it('hiTraceMeterJsUnitTest006', 0, async function (done) { 179 console.info(logTag, 'hiTraceMeterJsUnitTest006: start.'); 180 let name = 'hiTraceMeterJsUnitTest006'; 181 try { 182 if (hiTraceMeter.isTraceEnabled()) { 183 console.info(logTag, 'trace enable.'); 184 } else { 185 console.info(logTag, 'trace disable.'); 186 } 187 expect(true).assertTrue(); 188 } catch (err) { 189 console.info(logTag, name + 'fail, err = ' + err); 190 expect(false).assertTrue(); 191 } 192 done(); 193 console.info(logTag, 'hiTraceMeterJsUnitTest006: end.'); 194 }); 195}); 196