1fb726d48Sopenharmony_ci/* 2fb726d48Sopenharmony_ci * Copyright (C) 2022 Huawei Device Co., Ltd. 3fb726d48Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 4fb726d48Sopenharmony_ci * you may not use this file except in compliance with the License. 5fb726d48Sopenharmony_ci * You may obtain a copy of the License at 6fb726d48Sopenharmony_ci * 7fb726d48Sopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 8fb726d48Sopenharmony_ci * 9fb726d48Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software 10fb726d48Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 11fb726d48Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12fb726d48Sopenharmony_ci * See the License for the specific language governing permissions and 13fb726d48Sopenharmony_ci * limitations under the License. 14fb726d48Sopenharmony_ci */ 15fb726d48Sopenharmony_ci 16fb726d48Sopenharmony_ciimport { 17fb726d48Sopenharmony_ci PerfFile, 18fb726d48Sopenharmony_ci PerfThread, 19fb726d48Sopenharmony_ci PerfCallChain, 20fb726d48Sopenharmony_ci PerfCallChainMerageData, 21fb726d48Sopenharmony_ci PerfSample, 22fb726d48Sopenharmony_ci PerfStack, 23fb726d48Sopenharmony_ci PerfCall, 24fb726d48Sopenharmony_ci PerfCmdLine, 25fb726d48Sopenharmony_ci} from '../../../src/trace/bean/PerfProfile'; 26fb726d48Sopenharmony_ci 27fb726d48Sopenharmony_cijest.mock('../../../src/trace/component/trace/base/TraceRow', () => { 28fb726d48Sopenharmony_ci return {}; 29fb726d48Sopenharmony_ci}); 30fb726d48Sopenharmony_ci 31fb726d48Sopenharmony_cidescribe('PerfProfile Test', () => { 32fb726d48Sopenharmony_ci let perfFile = new PerfFile(); 33fb726d48Sopenharmony_ci let perfThread = new PerfThread(); 34fb726d48Sopenharmony_ci let perfCallChain = new PerfCallChain(); 35fb726d48Sopenharmony_ci let perfCallChainMerageData = new PerfCallChainMerageData(); 36fb726d48Sopenharmony_ci let perfSample = new PerfSample(); 37fb726d48Sopenharmony_ci let perfStack = new PerfStack(); 38fb726d48Sopenharmony_ci let perfCall = new PerfCall(); 39fb726d48Sopenharmony_ci let perfCmdLine = new PerfCmdLine(); 40fb726d48Sopenharmony_ci 41fb726d48Sopenharmony_ci it('PerfFile Test', function () { 42fb726d48Sopenharmony_ci perfFile = { 43fb726d48Sopenharmony_ci fileId: 0, 44fb726d48Sopenharmony_ci symbol: 'symbol', 45fb726d48Sopenharmony_ci path: 'path', 46fb726d48Sopenharmony_ci fileName: 'fileName', 47fb726d48Sopenharmony_ci }; 48fb726d48Sopenharmony_ci 49fb726d48Sopenharmony_ci expect(perfFile).not.toBeUndefined(); 50fb726d48Sopenharmony_ci expect(perfFile).toMatchInlineSnapshot( 51fb726d48Sopenharmony_ci{ 52fb726d48Sopenharmony_ci fileId: expect.any(Number), 53fb726d48Sopenharmony_ci symbol: expect.any(String), 54fb726d48Sopenharmony_ci path: expect.any(String), 55fb726d48Sopenharmony_ci fileName: expect.any(String) }, ` 56fb726d48Sopenharmony_ci{ 57fb726d48Sopenharmony_ci "fileId": Any<Number>, 58fb726d48Sopenharmony_ci "fileName": Any<String>, 59fb726d48Sopenharmony_ci "path": Any<String>, 60fb726d48Sopenharmony_ci "symbol": Any<String>, 61fb726d48Sopenharmony_ci} 62fb726d48Sopenharmony_ci`); 63fb726d48Sopenharmony_ci }); 64fb726d48Sopenharmony_ci 65fb726d48Sopenharmony_ci it('PerfThread Test', function () { 66fb726d48Sopenharmony_ci perfThread = { 67fb726d48Sopenharmony_ci tid: 0, 68fb726d48Sopenharmony_ci pid: 0, 69fb726d48Sopenharmony_ci threadName: 'threadName', 70fb726d48Sopenharmony_ci processName: 'processName', 71fb726d48Sopenharmony_ci }; 72fb726d48Sopenharmony_ci 73fb726d48Sopenharmony_ci expect(perfThread).not.toBeUndefined(); 74fb726d48Sopenharmony_ci expect(perfThread).toMatchInlineSnapshot( 75fb726d48Sopenharmony_ci{ 76fb726d48Sopenharmony_ci tid: expect.any(Number), 77fb726d48Sopenharmony_ci pid: expect.any(Number), 78fb726d48Sopenharmony_ci threadName: expect.any(String), 79fb726d48Sopenharmony_ci processName: expect.any(String) }, ` 80fb726d48Sopenharmony_ci{ 81fb726d48Sopenharmony_ci "pid": Any<Number>, 82fb726d48Sopenharmony_ci "processName": Any<String>, 83fb726d48Sopenharmony_ci "threadName": Any<String>, 84fb726d48Sopenharmony_ci "tid": Any<Number>, 85fb726d48Sopenharmony_ci} 86fb726d48Sopenharmony_ci`); 87fb726d48Sopenharmony_ci }); 88fb726d48Sopenharmony_ci 89fb726d48Sopenharmony_ci it('perfCallChain Test', function () { 90fb726d48Sopenharmony_ci perfCallChain = { 91fb726d48Sopenharmony_ci tid: 0, 92fb726d48Sopenharmony_ci pid: 0, 93fb726d48Sopenharmony_ci name: 'name', 94fb726d48Sopenharmony_ci fileName: 'fileName', 95fb726d48Sopenharmony_ci threadState: 'threadState', 96fb726d48Sopenharmony_ci startNS: 0, 97fb726d48Sopenharmony_ci dur: 0, 98fb726d48Sopenharmony_ci sampleId: 0, 99fb726d48Sopenharmony_ci callChainId: 0, 100fb726d48Sopenharmony_ci vaddrInFile: 0, 101fb726d48Sopenharmony_ci fileId: 0, 102fb726d48Sopenharmony_ci symbolId: 0, 103fb726d48Sopenharmony_ci parentId: 'parentId', 104fb726d48Sopenharmony_ci id: 'id', 105fb726d48Sopenharmony_ci topDownMerageId: 'topDownMerageId', 106fb726d48Sopenharmony_ci topDownMerageParentId: 'topDownMerageParentId', 107fb726d48Sopenharmony_ci bottomUpMerageId: 'bottomUpMerageId', 108fb726d48Sopenharmony_ci bottomUpMerageParentId: 'bottomUpMerageParentId', 109fb726d48Sopenharmony_ci depth: 0, 110fb726d48Sopenharmony_ci }; 111fb726d48Sopenharmony_ci 112fb726d48Sopenharmony_ci expect(perfCallChain).not.toBeUndefined(); 113fb726d48Sopenharmony_ci expect(perfCallChain).toMatchInlineSnapshot( 114fb726d48Sopenharmony_ci{ 115fb726d48Sopenharmony_ci tid: expect.any(Number), 116fb726d48Sopenharmony_ci pid: expect.any(Number), 117fb726d48Sopenharmony_ci name: expect.any(String), 118fb726d48Sopenharmony_ci fileName: expect.any(String), 119fb726d48Sopenharmony_ci threadState: expect.any(String), 120fb726d48Sopenharmony_ci startNS: expect.any(Number), 121fb726d48Sopenharmony_ci dur: expect.any(Number), 122fb726d48Sopenharmony_ci sampleId: expect.any(Number), 123fb726d48Sopenharmony_ci callChainId: expect.any(Number), 124fb726d48Sopenharmony_ci vaddrInFile: expect.any(Number), 125fb726d48Sopenharmony_ci fileId: expect.any(Number), 126fb726d48Sopenharmony_ci symbolId: expect.any(Number), 127fb726d48Sopenharmony_ci parentId: expect.any(String), 128fb726d48Sopenharmony_ci id: expect.any(String), 129fb726d48Sopenharmony_ci topDownMerageId: expect.any(String), 130fb726d48Sopenharmony_ci topDownMerageParentId: expect.any(String), 131fb726d48Sopenharmony_ci bottomUpMerageId: expect.any(String), 132fb726d48Sopenharmony_ci bottomUpMerageParentId: expect.any(String), 133fb726d48Sopenharmony_ci depth: expect.any(Number) }, ` 134fb726d48Sopenharmony_ci{ 135fb726d48Sopenharmony_ci "bottomUpMerageId": Any<String>, 136fb726d48Sopenharmony_ci "bottomUpMerageParentId": Any<String>, 137fb726d48Sopenharmony_ci "callChainId": Any<Number>, 138fb726d48Sopenharmony_ci "depth": Any<Number>, 139fb726d48Sopenharmony_ci "dur": Any<Number>, 140fb726d48Sopenharmony_ci "fileId": Any<Number>, 141fb726d48Sopenharmony_ci "fileName": Any<String>, 142fb726d48Sopenharmony_ci "id": Any<String>, 143fb726d48Sopenharmony_ci "name": Any<String>, 144fb726d48Sopenharmony_ci "parentId": Any<String>, 145fb726d48Sopenharmony_ci "pid": Any<Number>, 146fb726d48Sopenharmony_ci "sampleId": Any<Number>, 147fb726d48Sopenharmony_ci "startNS": Any<Number>, 148fb726d48Sopenharmony_ci "symbolId": Any<Number>, 149fb726d48Sopenharmony_ci "threadState": Any<String>, 150fb726d48Sopenharmony_ci "tid": Any<Number>, 151fb726d48Sopenharmony_ci "topDownMerageId": Any<String>, 152fb726d48Sopenharmony_ci "topDownMerageParentId": Any<String>, 153fb726d48Sopenharmony_ci "vaddrInFile": Any<Number>, 154fb726d48Sopenharmony_ci} 155fb726d48Sopenharmony_ci`); 156fb726d48Sopenharmony_ci }); 157fb726d48Sopenharmony_ci 158fb726d48Sopenharmony_ci it('perfCallChain Test', function () { 159fb726d48Sopenharmony_ci perfCallChainMerageData = { 160fb726d48Sopenharmony_ci id: 'id', 161fb726d48Sopenharmony_ci parentId: 'parentId', 162fb726d48Sopenharmony_ci symbolName: 'symbolName', 163fb726d48Sopenharmony_ci symbol: 'symbol', 164fb726d48Sopenharmony_ci libName: 'libName', 165fb726d48Sopenharmony_ci self: 'self', 166fb726d48Sopenharmony_ci weight: 'weight', 167fb726d48Sopenharmony_ci selfDur: 0, 168fb726d48Sopenharmony_ci dur: 0, 169fb726d48Sopenharmony_ci tid: 0, 170fb726d48Sopenharmony_ci pid: 0, 171fb726d48Sopenharmony_ci type: 0, 172fb726d48Sopenharmony_ci isSelected: false, 173fb726d48Sopenharmony_ci }; 174fb726d48Sopenharmony_ci 175fb726d48Sopenharmony_ci expect(perfCallChainMerageData).not.toBeUndefined(); 176fb726d48Sopenharmony_ci expect(perfCallChainMerageData).toMatchInlineSnapshot( 177fb726d48Sopenharmony_ci{ 178fb726d48Sopenharmony_ci id: expect.any(String), 179fb726d48Sopenharmony_ci parentId: expect.any(String), 180fb726d48Sopenharmony_ci symbolName: expect.any(String), 181fb726d48Sopenharmony_ci symbol: expect.any(String), 182fb726d48Sopenharmony_ci libName: expect.any(String), 183fb726d48Sopenharmony_ci self: expect.any(String), 184fb726d48Sopenharmony_ci weight: expect.any(String), 185fb726d48Sopenharmony_ci selfDur: expect.any(Number), 186fb726d48Sopenharmony_ci dur: expect.any(Number), 187fb726d48Sopenharmony_ci tid: expect.any(Number), 188fb726d48Sopenharmony_ci pid: expect.any(Number), 189fb726d48Sopenharmony_ci type: expect.any(Number), 190fb726d48Sopenharmony_ci isSelected: expect.any(Boolean) }, ` 191fb726d48Sopenharmony_ci{ 192fb726d48Sopenharmony_ci "dur": Any<Number>, 193fb726d48Sopenharmony_ci "id": Any<String>, 194fb726d48Sopenharmony_ci "isSelected": Any<Boolean>, 195fb726d48Sopenharmony_ci "libName": Any<String>, 196fb726d48Sopenharmony_ci "parentId": Any<String>, 197fb726d48Sopenharmony_ci "pid": Any<Number>, 198fb726d48Sopenharmony_ci "self": Any<String>, 199fb726d48Sopenharmony_ci "selfDur": Any<Number>, 200fb726d48Sopenharmony_ci "symbol": Any<String>, 201fb726d48Sopenharmony_ci "symbolName": Any<String>, 202fb726d48Sopenharmony_ci "tid": Any<Number>, 203fb726d48Sopenharmony_ci "type": Any<Number>, 204fb726d48Sopenharmony_ci "weight": Any<String>, 205fb726d48Sopenharmony_ci} 206fb726d48Sopenharmony_ci`); 207fb726d48Sopenharmony_ci }); 208fb726d48Sopenharmony_ci 209fb726d48Sopenharmony_ci it('perfSample Test', function () { 210fb726d48Sopenharmony_ci perfSample = { 211fb726d48Sopenharmony_ci sampleId: 0, 212fb726d48Sopenharmony_ci time: 0, 213fb726d48Sopenharmony_ci timeString: 'timeString', 214fb726d48Sopenharmony_ci core: 0, 215fb726d48Sopenharmony_ci coreName: 'coreName', 216fb726d48Sopenharmony_ci state: 'state', 217fb726d48Sopenharmony_ci pid: 0, 218fb726d48Sopenharmony_ci processName: 'processName', 219fb726d48Sopenharmony_ci tid: 0, 220fb726d48Sopenharmony_ci threadName: 'threadName', 221fb726d48Sopenharmony_ci depth: 0, 222fb726d48Sopenharmony_ci addr: 'addr', 223fb726d48Sopenharmony_ci fileId: 0, 224fb726d48Sopenharmony_ci symbolId: 0, 225fb726d48Sopenharmony_ci }; 226fb726d48Sopenharmony_ci expect(perfSample).not.toBeUndefined(); 227fb726d48Sopenharmony_ci expect(perfSample).toMatchInlineSnapshot( 228fb726d48Sopenharmony_ci{ 229fb726d48Sopenharmony_ci sampleId: expect.any(Number), 230fb726d48Sopenharmony_ci time: expect.any(Number), 231fb726d48Sopenharmony_ci timeString: expect.any(String), 232fb726d48Sopenharmony_ci core: expect.any(Number), 233fb726d48Sopenharmony_ci coreName: expect.any(String), 234fb726d48Sopenharmony_ci state: expect.any(String), 235fb726d48Sopenharmony_ci pid: expect.any(Number), 236fb726d48Sopenharmony_ci processName: expect.any(String), 237fb726d48Sopenharmony_ci tid: expect.any(Number), 238fb726d48Sopenharmony_ci threadName: expect.any(String), 239fb726d48Sopenharmony_ci depth: expect.any(Number), 240fb726d48Sopenharmony_ci addr: expect.any(String), 241fb726d48Sopenharmony_ci fileId: expect.any(Number), 242fb726d48Sopenharmony_ci symbolId: expect.any(Number) }, ` 243fb726d48Sopenharmony_ci{ 244fb726d48Sopenharmony_ci "addr": Any<String>, 245fb726d48Sopenharmony_ci "core": Any<Number>, 246fb726d48Sopenharmony_ci "coreName": Any<String>, 247fb726d48Sopenharmony_ci "depth": Any<Number>, 248fb726d48Sopenharmony_ci "fileId": Any<Number>, 249fb726d48Sopenharmony_ci "pid": Any<Number>, 250fb726d48Sopenharmony_ci "processName": Any<String>, 251fb726d48Sopenharmony_ci "sampleId": Any<Number>, 252fb726d48Sopenharmony_ci "state": Any<String>, 253fb726d48Sopenharmony_ci "symbolId": Any<Number>, 254fb726d48Sopenharmony_ci "threadName": Any<String>, 255fb726d48Sopenharmony_ci "tid": Any<Number>, 256fb726d48Sopenharmony_ci "time": Any<Number>, 257fb726d48Sopenharmony_ci "timeString": Any<String>, 258fb726d48Sopenharmony_ci} 259fb726d48Sopenharmony_ci`); 260fb726d48Sopenharmony_ci }); 261fb726d48Sopenharmony_ci 262fb726d48Sopenharmony_ci it('perfStack Test', function () { 263fb726d48Sopenharmony_ci perfStack = { 264fb726d48Sopenharmony_ci symbol: '', 265fb726d48Sopenharmony_ci path: '', 266fb726d48Sopenharmony_ci fileId: 0, 267fb726d48Sopenharmony_ci type: 0, 268fb726d48Sopenharmony_ci }; 269fb726d48Sopenharmony_ci expect(perfStack).not.toBeUndefined(); 270fb726d48Sopenharmony_ci expect(perfStack).toMatchInlineSnapshot( 271fb726d48Sopenharmony_ci{ 272fb726d48Sopenharmony_ci symbol: expect.any(String), 273fb726d48Sopenharmony_ci path: expect.any(String), 274fb726d48Sopenharmony_ci fileId: expect.any(Number), 275fb726d48Sopenharmony_ci type: expect.any(Number) }, ` 276fb726d48Sopenharmony_ci{ 277fb726d48Sopenharmony_ci "fileId": Any<Number>, 278fb726d48Sopenharmony_ci "path": Any<String>, 279fb726d48Sopenharmony_ci "symbol": Any<String>, 280fb726d48Sopenharmony_ci "type": Any<Number>, 281fb726d48Sopenharmony_ci} 282fb726d48Sopenharmony_ci`); 283fb726d48Sopenharmony_ci }); 284fb726d48Sopenharmony_ci 285fb726d48Sopenharmony_ci it('perfCall Test', function () { 286fb726d48Sopenharmony_ci perfCall = { 287fb726d48Sopenharmony_ci sampleId: 0, 288fb726d48Sopenharmony_ci depth: 0, 289fb726d48Sopenharmony_ci name: 'name', 290fb726d48Sopenharmony_ci }; 291fb726d48Sopenharmony_ci expect(perfCall).not.toBeUndefined(); 292fb726d48Sopenharmony_ci expect(perfCall).toMatchInlineSnapshot( 293fb726d48Sopenharmony_ci{ 294fb726d48Sopenharmony_ci sampleId: expect.any(Number), 295fb726d48Sopenharmony_ci depth: expect.any(Number), 296fb726d48Sopenharmony_ci name: expect.any(String) }, ` 297fb726d48Sopenharmony_ci{ 298fb726d48Sopenharmony_ci "depth": Any<Number>, 299fb726d48Sopenharmony_ci "name": Any<String>, 300fb726d48Sopenharmony_ci "sampleId": Any<Number>, 301fb726d48Sopenharmony_ci} 302fb726d48Sopenharmony_ci`); 303fb726d48Sopenharmony_ci }); 304fb726d48Sopenharmony_ci 305fb726d48Sopenharmony_ci it('PerfFile Test01', function () { 306fb726d48Sopenharmony_ci let perfFile = new PerfFile(); 307fb726d48Sopenharmony_ci perfFile.setFileName = jest.fn(() => true) 308fb726d48Sopenharmony_ci expect(perfFile.setFileName()).toBe(true); 309fb726d48Sopenharmony_ci }); 310fb726d48Sopenharmony_ci 311fb726d48Sopenharmony_ci it('PerfFile Test02', function () { 312fb726d48Sopenharmony_ci let perfFile = new PerfFile(); 313fb726d48Sopenharmony_ci let perfF = { 314fb726d48Sopenharmony_ci fileId: 0, 315fb726d48Sopenharmony_ci symbol: 'symbol', 316fb726d48Sopenharmony_ci path: 'path', 317fb726d48Sopenharmony_ci fileName: 'fileName', 318fb726d48Sopenharmony_ci }; 319fb726d48Sopenharmony_ci expect(PerfFile.setFileName(perfF)).toBe(undefined); 320fb726d48Sopenharmony_ci }); 321fb726d48Sopenharmony_ci 322fb726d48Sopenharmony_ci it('PerfCmdLine Test', function () { 323fb726d48Sopenharmony_ci perfCmdLine = { 324fb726d48Sopenharmony_ci report_value: 'report_value', 325fb726d48Sopenharmony_ci }; 326fb726d48Sopenharmony_ci expect(perfCmdLine).not.toBeUndefined(); 327fb726d48Sopenharmony_ci expect(perfCmdLine).toMatchInlineSnapshot( 328fb726d48Sopenharmony_ci{ 329fb726d48Sopenharmony_ci report_value: expect.any(String) }, ` 330fb726d48Sopenharmony_ci{ 331fb726d48Sopenharmony_ci "report_value": Any<String>, 332fb726d48Sopenharmony_ci} 333fb726d48Sopenharmony_ci`); 334fb726d48Sopenharmony_ci }); 335fb726d48Sopenharmony_ci}); 336