1/* 2 * Copyright (C) 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 16//@ts-ignore 17import {ProcedureLogicWorkerPerf, PerfCountSample,PerfCallChainMerageData, PerfStack, PerfCmdLine, PerfCall,timeMsFormat2p,PerfFile,PerfThread,PerfCallChain} from "../../../../dist/trace/database/logic-worker/ProcedureLogicWorkerPerf.js" 18 19describe('ProcedureLogicWorkerPerf Test', ()=> { 20 21 it('ProcedureLogicWorkerPerfTest', function () { 22 let procedureLogicWorkerPerf = new ProcedureLogicWorkerPerf(); 23 expect(procedureLogicWorkerPerf).not.toBeUndefined(); 24 }); 25 26 it('ProcedureLogicWorkerPerfTest01', function () { 27 let procedureLogicWorkerPerf = new ProcedureLogicWorkerPerf(); 28 let data = { 29 id:1, 30 params:[{ 31 list:'', 32 }], 33 action:'', 34 type: 'perf-init' 35 } 36 procedureLogicWorkerPerf.initPerfFiles = jest.fn(()=>true) 37 expect(procedureLogicWorkerPerf.handle(data)).toBeUndefined(); 38 }); 39 40 it('ProcedureLogicWorkerPerfTest02', function () { 41 let procedureLogicWorkerPerf = new ProcedureLogicWorkerPerf(); 42 let data = { 43 id:1, 44 params:[{ 45 list:'', 46 }], 47 action:'', 48 type: 'perf-queryPerfFiles' 49 } 50 procedureLogicWorkerPerf.initPerfThreads = jest.fn(()=>true) 51 expect(procedureLogicWorkerPerf.handle(data)).toBeUndefined(); 52 }); 53 54 it('ProcedureLogicWorkerPerfTest03', function () { 55 let procedureLogicWorkerPerf = new ProcedureLogicWorkerPerf(); 56 let data = { 57 id:1, 58 params:[{ 59 list:'', 60 }], 61 action:'', 62 type: 'perf-queryPerfThread' 63 } 64 procedureLogicWorkerPerf.initPerfCalls = jest.fn(()=>true) 65 expect(procedureLogicWorkerPerf.handle(data)).toBeUndefined(); 66 }); 67 68 it('ProcedureLogicWorkerPerfTest04', function () { 69 let procedureLogicWorkerPerf = new ProcedureLogicWorkerPerf(); 70 let data = { 71 id:1, 72 params:[{ 73 list:'', 74 }], 75 action:'', 76 type: 'perf-queryPerfCalls' 77 } 78 procedureLogicWorkerPerf.initPerfCallchains = jest.fn(()=>true) 79 expect(procedureLogicWorkerPerf.handle(data)).toBeUndefined(); 80 }); 81 82 it('ProcedureLogicWorkerPerfTest05', function () { 83 let procedureLogicWorkerPerf = new ProcedureLogicWorkerPerf(); 84 let data = { 85 id:1, 86 params:[{ 87 list:'', 88 }], 89 action:'', 90 type: 'perf-queryPerfCallchains' 91 } 92 window.postMessage = jest.fn(()=>true) 93 procedureLogicWorkerPerf.initCallChainTopDown = jest.fn(()=>true) 94 expect(procedureLogicWorkerPerf.handle(data)).toBeUndefined(); 95 }); 96 97 it('ProcedureLogicWorkerPerfTest06', function () { 98 let procedureLogicWorkerPerf = new ProcedureLogicWorkerPerf(); 99 let data = { 100 id:1, 101 params:[{ 102 list:'', 103 }], 104 action:'', 105 type: 'perf-queryCallchainsGroupSample' 106 } 107 window.postMessage = jest.fn(()=>true) 108 expect(procedureLogicWorkerPerf.handle(data)).toBeUndefined(); 109 }); 110 111 it('ProcedureLogicWorkerPerfTest07', function () { 112 let procedureLogicWorkerPerf = new ProcedureLogicWorkerPerf(); 113 let data = { 114 id:1, 115 params:[{ 116 list:'', 117 }], 118 action:'', 119 type: 'perf-action' 120 } 121 procedureLogicWorkerPerf.resolvingAction = jest.fn(()=>true) 122 window.postMessage = jest.fn(()=>true) 123 expect(procedureLogicWorkerPerf.handle(data)).toBeUndefined(); 124 }); 125 126 it('ProcedureLogicWorkerPerfTest08', function () { 127 let procedureLogicWorkerPerf = new ProcedureLogicWorkerPerf(); 128 expect(procedureLogicWorkerPerf.clearAll()).toBeUndefined(); 129 }); 130 131 it('ProcedureLogicWorkerPerfTest09', function () { 132 let procedureLogicWorkerPerf = new ProcedureLogicWorkerPerf(); 133 let callChain = [{ 134 sampleId: '', 135 depth: 0, 136 canCharge: false, 137 name: '', 138 tid: '', 139 fileName: '', 140 threadName: '', 141 }] 142 expect(procedureLogicWorkerPerf.initCallChainBottomUp(callChain)).toBeUndefined(); 143 }); 144 145 it('ProcedureLogicWorkerPerfTest10', function () { 146 let procedureLogicWorkerPerf = new ProcedureLogicWorkerPerf(); 147 let callChain = [{ 148 sampleId: '', 149 depth: 0, 150 canCharge: false, 151 name: '', 152 tid: '', 153 fileName: '', 154 threadName: '', 155 }] 156 expect(procedureLogicWorkerPerf.initCallChainTopDown([callChain])).toBeUndefined(); 157 }); 158 159 it('ProcedureLogicWorkerPerfTest11', function () { 160 let procedureLogicWorkerPerf = new ProcedureLogicWorkerPerf(); 161 let callChain = { 162 sampleId: -1, 163 depth: 0, 164 canCharge: true, 165 name: '', 166 tid: '', 167 fileName: '', 168 threadName: '', 169 symbolId:-1 170 } 171 expect(procedureLogicWorkerPerf.setCallChainName(callChain)).toBeUndefined(); 172 }); 173 174 it('ProcedureLogicWorkerPerfTest12', function () { 175 let procedureLogicWorkerPerf = new ProcedureLogicWorkerPerf(); 176 let callChain = { 177 sampleId: 0, 178 } 179 expect(procedureLogicWorkerPerf.setCallChainName(callChain)).toBeUndefined(); 180 }); 181 182 it('ProcedureLogicWorkerPerfTest14', function () { 183 let procedureLogicWorkerPerf = new ProcedureLogicWorkerPerf(); 184 let callChain = { 185 sampleId: '', 186 depth: 0, 187 canCharge: false, 188 name: '', 189 tid: '', 190 fileName: '', 191 threadName: '', 192 } 193 expect(procedureLogicWorkerPerf.addPerfCallData(callChain)).toBeUndefined(); 194 }); 195 196 it('ProcedureLogicWorkerPerfTest15', function () { 197 let procedureLogicWorkerPerf = new ProcedureLogicWorkerPerf(); 198 let callChain = { 199 sampleId: '', 200 } 201 expect(procedureLogicWorkerPerf.addGroupData(callChain)).toBeUndefined(); 202 }); 203 204 it('ProcedureLogicWorkerPerfTest16', function () { 205 let procedureLogicWorkerPerf = new ProcedureLogicWorkerPerf(); 206 expect(procedureLogicWorkerPerf.getCallChainsBySampleIds([],[])).toBeTruthy(); 207 }); 208 209 it('ProcedureLogicWorkerPerfTest17', function () { 210 let procedureLogicWorkerPerf = new ProcedureLogicWorkerPerf(); 211 expect(procedureLogicWorkerPerf.freshCurrentCallchains([],1)).toBeUndefined(); 212 }); 213 214 it('ProcedureLogicWorkerPerfTest19', function () { 215 let perfCountSample = new PerfCountSample(); 216 perfCountSample = { 217 sampleId: 0, 218 count: 0, 219 pid: 0, 220 tid: 0, 221 threadState: '', 222 } 223 expect(perfCountSample).not.toBeUndefined(); 224 }); 225 226 it('ProcedureLogicWorkerPerfTest20', function () { 227 let perfStack = new PerfStack(); 228 perfStack = { 229 sample: '', 230 path: '', 231 fileId: 0, 232 type: 0, 233 vaddrInFile: 0, 234 } 235 expect(perfStack).not.toBeUndefined(); 236 }); 237 238 it('ProcedureLogicWorkerPerfTest21', function () { 239 let perfCmdLine = new PerfCmdLine(); 240 perfCmdLine = { 241 report_value: '', 242 } 243 expect(perfCmdLine).not.toBeUndefined(); 244 }); 245 246 it('ProcedureLogicWorkerPerfTest21', function () { 247 let perfCmdLine = new PerfCmdLine(); 248 perfCmdLine = { 249 report_value: '', 250 } 251 expect(perfCmdLine).not.toBeUndefined(); 252 }); 253 254 it('ProcedureLogicWorkerPerfTest21', function () { 255 let perfCall = new PerfCall(); 256 perfCall = { 257 sampleId: 0, 258 name: '', 259 depth: 0, 260 } 261 expect(perfCall).not.toBeUndefined(); 262 }); 263 264 it('ProcedureLogicWorkerPerfTest22', function () { 265 expect(timeMsFormat2p('')).toBe("0s"); 266 }); 267 268 it('ProcedureLogicWorkerPerfTest23', function () { 269 expect(timeMsFormat2p(3600_000)).toBe("1.00h"); 270 }); 271 272 it('ProcedureLogicWorkerPerfTest24', function () { 273 expect(timeMsFormat2p(60_000)).toBe("1.00min"); 274 }); 275 276 it('ProcedureLogicWorkerPerfTest25', function () { 277 expect(timeMsFormat2p(1_000)).toBe("1.00s"); 278 }); 279 280 it('ProcedureLogicWorkerPerfTest26', function () { 281 expect(timeMsFormat2p(100)).toBe("100.00ms"); 282 }); 283 284 it('ProcedureLogicWorkerPerfTest31', function () { 285 let procedureLogicWorkerPerf = new ProcedureLogicWorkerPerf(); 286 procedureLogicWorkerPerf.recursionChargeInitTree = jest.fn(()=>undefined); 287 let node = [{ 288 symbolName: '', 289 libName: '', 290 length: 1, 291 initChildren: { 292 length: 1, 293 } 294 }] 295 expect(procedureLogicWorkerPerf.recursionChargeInitTree(node,'',true)).toBeUndefined(); 296 }); 297 298 it('ProcedureLogicWorkerPerfTest32', function () { 299 let procedureLogicWorkerPerf = new ProcedureLogicWorkerPerf(); 300 expect(procedureLogicWorkerPerf.splitTree([],'','',true)).toBeUndefined(); 301 }); 302 303 it('ProcedureLogicWorkerPerfTest33', function () { 304 let procedureLogicWorkerPerf = new ProcedureLogicWorkerPerf(); 305 procedureLogicWorkerPerf.recursionPruneInitTree = jest.fn(()=>undefined); 306 let node = { 307 symbolName: '', 308 libName: '', 309 length: 1, 310 initChildren: { 311 length: 1, 312 } 313 } 314 expect(procedureLogicWorkerPerf.recursionPruneInitTree(node,'',true)).toBeUndefined(); 315 }); 316 317 it('ProcedureLogicWorkerPerfTest34', function () { 318 let procedureLogicWorkerPerf = new ProcedureLogicWorkerPerf(); 319 procedureLogicWorkerPerf.recursionChargeByRule = jest.fn(()=>undefined); 320 let node = { 321 initChildren: [{ 322 length: 1, 323 }] 324 } 325 let rule = { 326 child: { 327 isStore: 1, 328 } 329 } 330 expect(procedureLogicWorkerPerf.recursionChargeByRule(node,'',rule)).toBeUndefined(); 331 }); 332 333 it('ProcedureLogicWorkerPerfTest35', function () { 334 let procedureLogicWorkerPerf = new ProcedureLogicWorkerPerf(); 335 window.postMessage = jest.fn(()=>true) 336 expect(procedureLogicWorkerPerf.queryData("","","")).toBeUndefined(); 337 }); 338 339 it('ProcedureLogicWorkerPerfTest36', function () { 340 let procedureLogicWorkerPerf = new ProcedureLogicWorkerPerf(); 341 procedureLogicWorkerPerf.queryData = jest.fn(()=>true) 342 expect(procedureLogicWorkerPerf.initPerfFiles()).toBeUndefined(); 343 }); 344 345 it('ProcedureLogicWorkerPerfTest37', function () { 346 let procedureLogicWorkerPerf = new ProcedureLogicWorkerPerf(); 347 procedureLogicWorkerPerf.queryData = jest.fn(()=>true) 348 expect(procedureLogicWorkerPerf.initPerfThreads()).toBeUndefined(); 349 }); 350 351 it('ProcedureLogicWorkerPerfTest38', function () { 352 let procedureLogicWorkerPerf = new ProcedureLogicWorkerPerf(); 353 procedureLogicWorkerPerf.queryData = jest.fn(()=>true) 354 expect(procedureLogicWorkerPerf.initPerfCalls()).toBeUndefined(); 355 }); 356 357 it('ProcedureLogicWorkerPerfTest39', function () { 358 let procedureLogicWorkerPerf = new ProcedureLogicWorkerPerf(); 359 procedureLogicWorkerPerf.queryData = jest.fn(()=>true) 360 expect(procedureLogicWorkerPerf.initPerfCallchains()).toBeUndefined(); 361 }); 362 363 it('ProcedureLogicWorkerPerfTest40', function () { 364 let procedureLogicWorkerPerf = new ProcedureLogicWorkerPerf(); 365 procedureLogicWorkerPerf.queryData = jest.fn(()=>true) 366 let selectionParam = { 367 perfAll:'', 368 perfCpus:[1], 369 perfProcess:[2], 370 perfThread:[1], 371 leftNs:0, 372 rightNs:0 373 } 374 expect(procedureLogicWorkerPerf.getCurrentDataFromDb(selectionParam)).toBeUndefined(); 375 }); 376 377 it('ProcedureLogicWorkerPerfTest41', function () { 378 let procedureLogicWorkerPerf = new ProcedureLogicWorkerPerf(); 379 let currentNode = { 380 children:[], 381 initChildren:[], 382 } 383 let list = [{ 384 length:1, 385 name:"" 386 }] 387 expect(procedureLogicWorkerPerf.merageChildren(currentNode,list,true)).toBeUndefined(); 388 }); 389 it('ProcedureLogicWorkerPerfTest42', function () { 390 let procedureLogicWorkerPerf = new ProcedureLogicWorkerPerf(); 391 let sampleIds = { 392 length:1, 393 } 394 let isTopDown = { 395 396 } 397 expect(procedureLogicWorkerPerf.groupNewTreeNoId(sampleIds, isTopDown)).toStrictEqual([]); 398 }); 399 it('ProcedureLogicWorkerPerfTest43', function () { 400 let procedureLogicWorkerPerf = new ProcedureLogicWorkerPerf(); 401 let node = { 402 initChildren:{ 403 length:1, 404 forEach:jest.fn(()=>true) 405 }, 406 libName:1 407 } 408 let symbolName = 1; 409 410 let isSymbol = true; 411 expect(procedureLogicWorkerPerf.recursionChargeInitTree(node, symbolName, isSymbol)).toBeUndefined(); 412 }); 413 it('ProcedureLogicWorkerPerfTest44', function () { 414 let procedureLogicWorkerPerf = new ProcedureLogicWorkerPerf(); 415 let node = { 416 children:{ 417 length:1, 418 forEach:jest.fn(()=>true) 419 }, 420 libName:1 421 } 422 let symbolName = 1; 423 424 let isSymbol = true; 425 expect(procedureLogicWorkerPerf.recursionChargeTree(node, symbolName, isSymbol)).toBeUndefined(); 426 }); 427 it('ProcedureLogicWorkerPerfTest45', function () { 428 let procedureLogicWorkerPerf = new ProcedureLogicWorkerPerf(); 429 let node = { 430 initChildren:{ 431 length:1, 432 forEach:jest.fn(()=>true) 433 }, 434 libName:1 435 } 436 let symbolName = 1; 437 438 let isSymbol = true; 439 expect(procedureLogicWorkerPerf.recursionPruneInitTree(node, symbolName, isSymbol)).toBeUndefined(); 440 }); 441 it('ProcedureLogicWorkerPerfTest46', function () { 442 let procedureLogicWorkerPerf = new ProcedureLogicWorkerPerf(); 443 let node = { 444 children:{ 445 length:1, 446 forEach:jest.fn(()=>true) 447 }, 448 libName:1 449 } 450 let symbolName = 1; 451 452 let isSymbol = true; 453 expect(procedureLogicWorkerPerf.recursionPruneTree(node, symbolName, isSymbol)).toBeUndefined(); 454 }); 455 it('ProcedureLogicWorkerPerfTest47', function () { 456 let procedureLogicWorkerPerf = new ProcedureLogicWorkerPerf(); 457 let node = { 458 initChildren:{ 459 length:1, 460 forEach:jest.fn(()=>true) 461 }, 462 } 463 let ruleName = 1; 464 465 let rule = true; 466 expect(procedureLogicWorkerPerf.recursionChargeByRule(node, ruleName, rule)).toBeUndefined(); 467 }); 468 it('ProcedureLogicWorkerPerfTest48', function () { 469 let procedureLogicWorkerPerf = new ProcedureLogicWorkerPerf(); 470 let node = { 471 initChildren:{ 472 length:1, 473 forEach:jest.fn(()=>true) 474 }, 475 } 476 let symbolName = 1; 477 expect(procedureLogicWorkerPerf.pruneChildren(node, symbolName)).toBeUndefined(); 478 }); 479 it('ProcedureLogicWorkerPerfTest49', function () { 480 let procedureLogicWorkerPerf = new ProcedureLogicWorkerPerf(); 481 expect(procedureLogicWorkerPerf.clearSplitMapData()).toBeUndefined(); 482 }); 483 it('PerfFileTest01', function () { 484 let perfFile = new PerfFile(); 485 expect(perfFile.constructor()).toBeUndefined(); 486 }); 487 it('PerfFileTest02', function () { 488 let perfFile = new PerfFile(); 489 let path=true 490 expect(perfFile.setFileName(path)).toBeUndefined(); 491 }); 492 it('PerfThreadTest01', function () { 493 let perfThread = new PerfThread(); 494 expect(perfThread.constructor()).toBeUndefined(); 495 }); 496 it('PerfCallChainTest01', function () { 497 let perfCallChain = new PerfCallChain(); 498 expect(perfCallChain.constructor()).toBeUndefined(); 499 }); 500 it('PerfCallChainMerageDataTest01', function () { 501 let perfCallChainMerageData = new PerfCallChainMerageData(); 502 expect(perfCallChainMerageData.constructor()).toEqual({"canCharge": true, "children": [], "count": 0, "currentTreeParentNode": undefined, 503 "depth": 0, "dur": 0, "id": "", "initChildren": [], "isSelected": false, "isStore": 0, "libName": "", 504 "parentId": "", "path": "", "pid": 0, "searchShow": true, "self": "0s", "selfDur": 0, "size": 0, "symbol": "", 505 "symbolName": "", "tid": 0, "type": 0, "vaddrInFile": 0, "weight": "", "weightPercent": ""}); 506 }); 507 it('PerfCallChainMerageDataTest03', function () { 508 let perfCallChainMerageData = new PerfCallChainMerageData(); 509 perfCallChainMerageData.parentNode = true 510 expect(perfCallChainMerageData.parentNode).toBeTruthy() 511 }); 512 it('PerfCallChainMerageDataTest04', function () { 513 let perfCallChainMerageData = new PerfCallChainMerageData(); 514 perfCallChainMerageData.total = true 515 expect(perfCallChainMerageData.total).toBeTruthy() 516 }); 517})