• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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