• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1/*
2 * Copyright (C) 2021 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 */
15import hiTraceChain from '@ohos.hiTraceChain'
16import {describe, beforeAll, beforeEach, afterEach, afterAll, it, expect} from '@ohos/hypium'
17import hilog from '@ohos.hilog'
18
19export default function HiTraceJsTest() {
20describe('HiTraceJsTest', function () {
21
22    /**
23    * run before testClass
24    */
25    beforeAll(function () {
26        console.info('beforeAll called');
27    })
28
29    /**
30    * run after testClass
31    */
32    afterAll(function () {
33        console.info('afterAll called');
34    })
35
36    /**
37     * @tc.number DFX_DFT_Hitrace_JS_001
38     * @tc.name hitrace interface test
39     * @tc.desc hitrace begin interface test.
40     */
41    it('testHitraceApi01', 1, async function (done) {
42        console.info('testHitraceApi01 start');
43        try{
44            let traceId = hiTraceChain.begin("hitrace01");
45            let traceIdIsvalid = hiTraceChain.isValid(traceId);
46            if(!traceIdIsvalid){
47                expect().assertFail();
48                console.log(`testHitraceApi01 got an error: ${JSON.stringify(error)}`);
49            }
50            hiTraceChain.end(traceId);
51        } catch (error){
52            console.log(`testHitraceApi01 got an error: ${JSON.stringify(error)}`);
53            expect().assertFail();
54            done();
55        }
56        console.info('testHitraceApi01 end');
57        done();
58    })
59
60     /**
61     * @tc.number DFX_DFT_Hitrace_JS_002
62     * @tc.name hitrace interface test
63     * @tc.desc hitrace begin interface test.
64     */
65    it('testHitraceApi02', 1, async function (done) {
66        console.info('testHitraceApi02 start');
67        try{
68            let traceId = hiTraceChain.begin("hitrace02", hiTraceChain.HiTraceFlag.INCLUDE_ASYNC |
69            hiTraceChain.HiTraceFlag.DONOT_CREATE_SPAN);
70            let traceIdIsvalid = hiTraceChain.isValid(traceId);
71            if(!traceIdIsvalid){
72                expect().assertFail();
73                console.log(`testHitraceApi02 got an error: ${JSON.stringify(error)}`);
74            }
75            hiTraceChain.end(traceId);
76        } catch (error){
77            console.log(`testHitraceApi02 got an error: ${JSON.stringify(error)}`);
78            expect().assertFail();
79            done();
80        }
81        console.info('testHitraceApi02 end');
82        done();
83    })
84
85     /**
86     * @tc.number DFX_DFT_Hitrace_JS_003
87     * @tc.name hitrace interface test
88     * @tc.desc hitrace begin interface test.
89     */
90    it('testHitraceApi03', 1, async function (done) {
91        console.info('testHitraceApi03 start');
92        try{
93            let traceId = hiTraceChain.begin("hitrace03", hiTraceChain.HiTraceFlag.TP_INFO);
94            let curTraceId = hiTraceChain.getId();
95            if(traceId.chainId != curTraceId.chainId){
96                expect().assertFail();
97                console.log(`testHitraceApi03 got an error: ${JSON.stringify(error)}`);
98            }
99            hiTraceChain.tracepoint(hiTraceChain.HiTraceCommunicationMode.THREAD,
100                                    hiTraceChain.HiTraceTracepointType.SS, traceId, "hitrace api test.");
101            hiTraceChain.end(traceId);
102        } catch (error){
103            console.log(`testHitraceApi03 got an error: ${JSON.stringify(error)}`);
104            expect().assertFail();
105            done();
106        }
107        console.info('testHitraceApi03 end');
108        done();
109    })
110
111     /**
112     * @tc.number DFX_DFT_Hitrace_JS_004
113     * @tc.name hitrace interface test
114     * @tc.desc hitrace begin interface test.
115     */
116    it('testHitraceApi04', 1, async function (done) {
117        console.info('testHitraceApi04 start');
118        try{
119            let traceId = hiTraceChain.begin("hitrace04", hiTraceChain.HiTraceFlag.NO_BE_INFO);
120            let spanTraceId = hiTraceChain.createSpan();
121            let enabledDoNotCreateSpanFlag = hiTraceChain.isFlagEnabled(traceId, hiTraceChain.HiTraceFlag.NO_BE_INFO);
122            if(!enabledDoNotCreateSpanFlag){
123                expect().assertFail();
124                console.log(`testHitraceApi04 got an error: ${JSON.stringify(error)}`);
125            }
126            hiTraceChain.end(traceId);
127        } catch (error){
128            console.log(`testHitraceApi04 got an error: ${JSON.stringify(error)}`);
129            expect().assertFail();
130            done();
131        }
132        console.info('testHitraceApi04 end');
133        done();
134    })
135
136     /**
137     * @tc.number DFX_DFT_Hitrace_JS_005
138     * @tc.name hitrace interface test
139     * @tc.desc hitrace begin interface test.
140     */
141    it('testHitraceApi05', 1, async function (done) {
142        console.info('testHitraceApi05 start');
143        try{
144            let traceId = hiTraceChain.begin("hitrace05");
145            hiTraceChain.enableFlag(traceId, hiTraceChain.HiTraceFlag.DISABLE_LOG);
146            let enabledDoNotCreateSpanFlag = hiTraceChain.isFlagEnabled(traceId, hiTraceChain.HiTraceFlag.DISABLE_LOG);
147            if(!enabledDoNotCreateSpanFlag){
148                expect().assertFail();
149                console.log(`testHitraceApi05 got an error: ${JSON.stringify(error)}`);
150            }
151            hiTraceChain.end(traceId);
152        } catch (error){
153            console.log(`testHitraceApi05 got an error: ${JSON.stringify(error)}`);
154            expect().assertFail();
155            done();
156        }
157        console.info('testHitraceApi05 end');
158        done();
159    })
160
161     /**
162     * @tc.number DFX_DFT_Hitrace_JS_006
163     * @tc.name hitrace interface test
164     * @tc.desc hitrace begin interface test.
165     */
166    it('testHitraceApi06', 1, async function (done) {
167        console.info('testHitraceApi06 start');
168        try{
169            let traceId = hiTraceChain.begin("hitrace06");
170            hiTraceChain.enableFlag(traceId, hiTraceChain.HiTraceFlag.FAILURE_TRIGGER);
171            let enabledDoNotCreateSpanFlag = hiTraceChain.isFlagEnabled(traceId,
172            hiTraceChain.HiTraceFlag.FAILURE_TRIGGER);
173            if(!enabledDoNotCreateSpanFlag){
174                expect().assertFail();
175                console.log(`testHitraceApi06 got an error: ${JSON.stringify(error)}`);
176            }
177            hiTraceChain.end(traceId);
178        } catch (error){
179            console.log(`testHitraceApi06 got an error: ${JSON.stringify(error)}`);
180            expect().assertFail();
181            done();
182        }
183        console.info('testHitraceApi06 end');
184        done();
185    })
186
187     /**
188     * @tc.number DFX_DFT_Hitrace_JS_007
189     * @tc.name hitrace interface test
190     * @tc.desc hitrace begin interface test.
191     */
192    it('testHitraceApi07', 1, async function (done) {
193        console.info('testHitraceApi07 start');
194        try{
195            let traceId = hiTraceChain.begin("hitrace07", hiTraceChain.HiTraceFlag.D2D_TP_INFO);
196            let enabledDoNotCreateSpanFlag = hiTraceChain.isFlagEnabled(traceId, hiTraceChain.HiTraceFlag.D2D_TP_INFO)
197            if(!enabledDoNotCreateSpanFlag){
198                expect().assertFail();
199                console.log(`testHitraceApi07 got an error: ${JSON.stringify(error)}`);
200            }
201            hiTraceChain.tracepoint(hiTraceChain.HiTraceCommunicationMode.PROCESS,
202                                    hiTraceChain.HiTraceTracepointType.CS, traceId, "hitrace test");
203            hiTraceChain.end(traceId);
204        } catch (error){
205            console.log(`testHitraceApi07 got an error: ${JSON.stringify(error)}`);
206            expect().assertFail();
207            done();
208        }
209        console.info('testHitraceApi07 end');
210        done();
211    })
212
213     /**
214     * @tc.number DFX_DFT_Hitrace_JS_008
215     * @tc.name hitrace interface test
216     * @tc.desc hitrace begin interface test.
217     */
218    it('testHitraceApi08', 1, async function (done) {
219        console.info('testHitraceApi08 start');
220        hiTraceChain.clearId();
221        let traceId = hiTraceChain.begin("testHitraceApi08", hiTraceChain.HiTraceFlag.INCLUDE_ASYNC);
222        let curChainId = traceId.chainId;
223        new Promise(function(resolve, reject){
224            resolve()
225        }).then(() => {
226            console.info('in testHitraceApi08 then callback')
227            console.info(`testHitraceApi08 ${hiTraceChain.getId().chainId} <> ${curChainId}`)
228            expect(hiTraceChain.getId().chainId == curChainId).assertTrue()
229            done()
230        })
231        hiTraceChain.end(traceId);
232        done()
233        console.info('testHitraceApi08 end');
234
235    })
236
237     /**
238     * @tc.number DFX_DFT_Hitrace_JS_009
239     * @tc.name hitrace interface test
240     * @tc.desc hitrace begin interface test.
241     */
242    it('testHitraceApi09', 1, async function (done) {
243        console.info('testHitraceApi09 start');
244        hiTraceChain.clearId();
245        let traceId = hiTraceChain.begin("hitrace09", hiTraceChain.HiTraceFlag.INCLUDE_ASYNC);
246        let curChainId = traceId.chainId;
247        async function asyncTask() {
248        }
249        asyncTask().then(() => {
250            console.info('in testhiTraceApi09 then callback')
251            console.info(`testHitraceApi09 ${hiTraceChain.getId().chainId} <> ${curChainId}`)
252            expect(hiTraceChain.getId().chainId == curChainId).assertTrue()
253            done()
254        })
255        hiTraceChain.end(traceId);
256        done()
257        console.info('testHitraceApi09 end');
258    })
259
260    /**
261     * @tc.name: 接口测试-hitrace接口支持跨设备跟踪
262     * @tc.number DFX_DFT_Hitrace_JS_010
263     * @tc.function A01010
264     * @tc.feature DFX_DFT_Hitrace
265     * @tc.level Level3
266     * @tc.type FUNC
267     */
268    it('testHitraceApi10', 0, async function (done) {
269        console.info('testHitraceApi10 start')
270        hiTraceChain.clearId();
271        try {
272            let traceId = hiTraceChain.begin("hitrace10", hiTraceChain.HiTraceFlag.D2D_TP_INFO);
273            let enabledDoNotCreateSpanFlag = hiTraceChain.isFlagEnabled(traceId, hiTraceChain.HiTraceFlag.D2D_TP_INFO);
274            if(!enabledDoNotCreateSpanFlag){
275                expect().assertFail();
276                console.log(`testHitraceApi10 got an error: ${JSON.stringify(error)}`);
277            }
278            hiTraceChain.tracepoint(hiTraceChain.HiTraceCommunicationMode.DEVICE,
279                                    hiTraceChain.HiTraceTracepointType.CR,traceId, "hitrace test");
280            hiTraceChain.end(traceId);
281        } catch (error) {
282            console.log(`testHitraceApi10 got an error: ${JSON.stringify(error)}`);
283            expect().assertFail();
284			done()
285        }
286        console.info('testHitraceApi10 end')
287		done()
288    });
289
290	/**
291     * @tc.name: 接口测试-hitrace接口支持跨设备跟踪
292     * @tc.number DFX_DFT_Hitrace_JS_011
293     * @tc.function A01011
294     * @tc.feature DFX_DFT_Hitrace
295     * @tc.level Level3
296     * @tc.type FUNC
297     */
298    it('testHitraceApi11', 0, async function (done) {
299        console.info('testHitraceApi11 start')
300		hiTraceChain.setId(12345678);
301        hiTraceChain.clearId();
302        try {
303            let traceId = hiTraceChain.begin("hitrace11", hiTraceChain.HiTraceFlag.D2D_TP_INFO);
304			let flags = traceId.flags
305			let parentSpanId = traceId.parentSpanId
306			let spanId = traceId.spanId
307            let enabledDoNotCreateSpanFlag = hiTraceChain.isFlagEnabled(traceId, hiTraceChain.HiTraceFlag.D2D_TP_INFO);
308            if(!enabledDoNotCreateSpanFlag){
309                expect().assertFail();
310                console.log(`testHitraceApi11 got an error: ${JSON.stringify(error)}`);
311            }
312            hiTraceChain.tracepoint(hiTraceChain.HiTraceCommunicationMode.DEFAULT,
313                                    hiTraceChain.HiTraceTracepointType.SR, traceId, "hitrace test");
314            hiTraceChain.end(traceId);
315        } catch (error) {
316            console.log(`testHitraceApi11 got an error: ${JSON.stringify(error)}`);
317            expect().assertFail();
318			done()
319        }
320        console.info('testHitraceApi11 end')
321		done()
322    });
323
324	/**
325     * @tc.name: 接口测试-hitrace接口支持跨设备跟踪
326     * @tc.number DFX_DFT_Hitrace_JS_012
327     * @tc.function A01010
328     * @tc.feature DFX_DFT_Hitrace
329     * @tc.level Level3
330     * @tc.type FUNC
331     */
332    it('testHitraceApi12', 0, async function (done) {
333        console.info('testHitraceApi12 start')
334        try {
335            let traceId = hiTraceChain.begin("hitrace12", hiTraceChain.HiTraceFlag.D2D_TP_INFO);
336            let enabledDoNotCreateSpanFlag = hiTraceChain.isFlagEnabled(traceId, hiTraceChain.HiTraceFlag.D2D_TP_INFO);
337            if(!enabledDoNotCreateSpanFlag){
338                expect().assertFail();
339                console.log(`testHitraceApi12 got an error: ${JSON.stringify(error)}`);
340            }
341            hiTraceChain.tracepoint(hiTraceChain.HiTraceCommunicationMode.DEVICE,
342                                    hiTraceChain.HiTraceTracepointType.GENERAL, traceId, "hitrace test");
343            hiTraceChain.end(traceId);
344        } catch (error) {
345            console.log(`testHitraceApi12 got an error: ${JSON.stringify(error)}`);
346            expect().assertFail();
347			done()
348        }
349        console.info('testHitraceApi12 end')
350		done()
351    });
352
353})
354}
355