1# 2# Copyright (c) 2024 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 subprocess 17import unittest 18import os 19 20from js_test_base import JsTestBase 21 22 23class JsTestCase(JsTestBase): 24 repeat_time = 3 25 26 @classmethod 27 def setUpClass(cls): 28 os.environ["isSkipped"] = "False" 29 # pass 30 cls.get_hdctool(cls) 31 hap_name = os.environ.get("HapName", "") 32 dbg_name = "com.example" 33 # start hap 34 subprocess.run( 35 [ 36 cls.hdctool, 37 "shell", 38 "aa", 39 "start", 40 "-a", 41 "EntryAbility", 42 "-b", 43 hap_name, 44 ], 45 stdout=subprocess.PIPE, 46 ) 47 cls.run_arkdb_server(cls, dbg_name) 48 cls.connect_client_socket(cls, dbg_name) 49 cls.tcp_client_socket.send("enable".encode('utf-8')) 50 data, addr = cls.tcp_client_socket.recvfrom(cls.BUFSIZ) 51 data, addr = cls.tcp_client_socket.recvfrom(cls.BUFSIZ) 52 print("recv: ", data.decode('utf-8')) 53 54 @classmethod 55 def tearDownClass(cls): 56 cls.close_client_socket(cls) 57 # stop hap 58 hap_name = os.environ.get("HapName", "") 59 subprocess.run( 60 [ 61 cls.hdctool, 62 "shell", 63 "aa", 64 "force-stop", 65 hap_name, 66 ], 67 stdout=subprocess.PIPE, 68 ) 69 70 def test_set_and_delete_breakpoints(self): 71 if (os.environ.get("isRelease", "") == "True" or os.environ.get("isSkipped", "") == "True"): 72 return 73 breakpoint_lines = [ 74 "page1.ets 22", "page2.ets 22", "page3.ets 25" 75 ] 76 self.send_command("rt-enable") 77 for line in breakpoint_lines: 78 self.send_command("b entry/src/main/ets/pages/%s" % line) 79 for i in breakpoint_lines: 80 self.send_command("delete 1") 81 82 def test_repeat_breakpoints(self): 83 if (os.environ.get("isRelease", "") == "True" or os.environ.get("isSkipped", "") == "True"): 84 return 85 breakpoint_lines = [ 86 "page1.ets 22", "page2.ets 22", "page3.ets 25" 87 ] 88 self.send_command("rt-enable") 89 for line in breakpoint_lines: 90 for i in range(self.repeat_time): 91 self.send_command("b entry/src/main/ets/pages/%s" % line) 92 for i in breakpoint_lines: 93 self.send_command("delete 1") 94 95 def test_dispaly(self): 96 if (os.environ.get("isRelease", "") == "True" or os.environ.get("isSkipped", "") == "True"): 97 return 98 breakpoint_lines = [ 99 "page1.ets 22", "page2.ets 22", "page3.ets 25" 100 ] 101 self.send_command("rt-enable") 102 for line in breakpoint_lines: 103 self.send_command("b entry/src/main/ets/pages/%s" % line) 104 self.send_command("display") 105 for i in range(len(breakpoint_lines)): 106 self.send_command("delete 1") 107 self.send_command("display") 108 109 def test_break_and_resume(self): 110 if (os.environ.get("isRelease", "") == "True" or os.environ.get("isSkipped", "") == "True"): 111 return 112 breakpoint_lines = [ 113 "page1.ets 22", "page2.ets 22", "page3.ets 25" 114 ] 115 self.send_command("rt-enable") 116 for line in breakpoint_lines: 117 self.send_command("b entry/src/main/ets/pages/%s" % line) 118 for i in range(self.repeat_time): 119 self.send_command("resume") 120 for i in breakpoint_lines: 121 self.send_command("delete 1") 122 123 def test_step_into(self): 124 if (os.environ.get("isRelease", "") == "True" or os.environ.get("isSkipped", "") == "True"): 125 return 126 breakpoint_lines = ["page1.ets 22", "page2.ets 22", "page3.ets 25"] 127 self.send_command("rt-enable") 128 for line in breakpoint_lines: 129 self.send_command("b entry/src/main/ets/pages/%s" % line) 130 subprocess.run("%s shell wukong special -t 600,600 -c 1" % self.hdctool, stdout=subprocess.PIPE) 131 for i in range(self.repeat_time): 132 self.send_command("step-into") 133 for i in range(self.repeat_time): 134 self.send_command("resume") 135 subprocess.run("%s shell wukong special -t 600,600 -c 1" % self.hdctool, stdout=subprocess.PIPE) 136 for i in range(self.repeat_time): 137 self.send_command("resume") 138 139 subprocess.run("%s shell wukong special -t 600,600 -c 1" % self.hdctool, stdout=subprocess.PIPE) 140 141 for i in range(self.repeat_time): 142 self.send_command("step-into") 143 for i in range(self.repeat_time): 144 self.send_command("resume") 145 146 subprocess.run("%s shell wukong special -t 600,600 -c 1" % self.hdctool, stdout=subprocess.PIPE) 147 for i in range(self.repeat_time): 148 self.send_command("resume") 149 150 subprocess.run("%s shell wukong special -t 600,600 -c 1" % self.hdctool, stdout=subprocess.PIPE) 151 152 for i in range(self.repeat_time): 153 self.send_command("step-into") 154 for i in range(self.repeat_time): 155 self.send_command("resume") 156 157 for i in breakpoint_lines: 158 self.send_command("delete 1") 159 160 subprocess.run("%s shell wukong special -t 600,600 -c 1" % self.hdctool, stdout=subprocess.PIPE) 161 for i in range(self.repeat_time): 162 self.send_command("resume") 163 164 def test_step_out(self): 165 if (os.environ.get("isRelease", "") == "True" or os.environ.get("isSkipped", "") == "True"): 166 return 167 breakpoint_lines = [ 168 "page1.ets 22", "page2.ets 22", "page3.ets 25" 169 ] 170 self.send_command("rt-enable") 171 for line in breakpoint_lines: 172 self.send_command("b entry/src/main/ets/pages/%s" % line) 173 subprocess.run( 174 "%s shell wukong special -t 600,600 -c 1" % self.hdctool, 175 stdout=subprocess.PIPE 176 ) 177 self.send_command("step-out") 178 for i in range(self.repeat_time): 179 self.send_command("resume") 180 181 subprocess.run( 182 "%s shell wukong special -t 600,600 -c 1" % self.hdctool, 183 stdout=subprocess.PIPE 184 ) 185 for i in range(self.repeat_time): 186 self.send_command("resume") 187 188 subprocess.run( 189 "%s shell wukong special -t 600,600 -c 1" % self.hdctool, 190 stdout=subprocess.PIPE 191 ) 192 self.send_command("step-out") 193 for i in range(self.repeat_time): 194 self.send_command("resume") 195 196 subprocess.run( 197 "%s shell wukong special -t 600,600 -c 1" % self.hdctool, 198 stdout=subprocess.PIPE 199 ) 200 for i in range(self.repeat_time): 201 self.send_command("resume") 202 203 subprocess.run( 204 "%s shell wukong special -t 600,600 -c 1" % self.hdctool, 205 stdout=subprocess.PIPE 206 ) 207 self.send_command("step-out") 208 for i in range(self.repeat_time): 209 self.send_command("resume") 210 211 for i in breakpoint_lines: 212 self.send_command("delete 1") 213 214 subprocess.run( 215 "%s shell wukong special -t 600,600 -c 1" % self.hdctool, 216 stdout=subprocess.PIPE 217 ) 218 for i in range(self.repeat_time): 219 self.send_command("resume") 220 221 def test_step_over(self): 222 if (os.environ.get("isRelease", "") == "True" or os.environ.get("isSkipped", "") == "True"): 223 return 224 breakpoint_lines = ["page1.ets 22", "page2.ets 22", "page3.ets 25"] 225 self.send_command("rt-enable") 226 for line in breakpoint_lines: 227 self.send_command("b entry/src/main/ets/pages/%s" % line) 228 subprocess.run("%s shell wukong special -t 600,600 -c 1" % self.hdctool, stdout=subprocess.PIPE) 229 for i in range(self.repeat_time): 230 self.send_command("step-over") 231 for i in range(self.repeat_time): 232 self.send_command("resume") 233 234 subprocess.run("%s shell wukong special -t 600,600 -c 1" % self.hdctool, stdout=subprocess.PIPE) 235 for i in range(self.repeat_time): 236 self.send_command("resume") 237 238 subprocess.run("%s shell wukong special -t 600,600 -c 1" % self.hdctool, stdout=subprocess.PIPE) 239 for i in range(self.repeat_time): 240 self.send_command("step-over") 241 for i in range(self.repeat_time): 242 self.send_command("resume") 243 244 subprocess.run("%s shell wukong special -t 600,600 -c 1" % self.hdctool, stdout=subprocess.PIPE) 245 for i in range(self.repeat_time): 246 self.send_command("resume") 247 248 subprocess.run("%s shell wukong special -t 600,600 -c 1" % self.hdctool, stdout=subprocess.PIPE) 249 for i in range(self.repeat_time): 250 self.send_command("step-over") 251 for i in range(self.repeat_time): 252 self.send_command("resume") 253 254 for i in breakpoint_lines: 255 self.send_command("delete 1") 256 257 subprocess.run("%s shell wukong special -t 600,600 -c 1" % self.hdctool, stdout=subprocess.PIPE) 258 for i in range(self.repeat_time): 259 self.send_command("resume") 260 261 def test_step_into_and_step_out(self): 262 if (os.environ.get("isRelease", "") == "True" or os.environ.get("isSkipped", "") == "True"): 263 return 264 breakpoint_lines = ["page1.ets 22", "page2.ets 22", "page3.ets 25"] 265 self.send_command("rt-enable") 266 for line in breakpoint_lines: 267 self.send_command("b entry/src/main/ets/pages/%s" % line) 268 subprocess.run("%s shell wukong special -t 600,600 -c 1" % self.hdctool, stdout=subprocess.PIPE) 269 for i in range(self.repeat_time): 270 self.send_command("step-into") 271 self.send_command("step-over") 272 for i in range(self.repeat_time): 273 self.send_command("resume") 274 275 subprocess.run("%s shell wukong special -t 600,600 -c 1" % self.hdctool, stdout=subprocess.PIPE) 276 for i in range(self.repeat_time): 277 self.send_command("resume") 278 279 subprocess.run("%s shell wukong special -t 600,600 -c 1" % self.hdctool, stdout=subprocess.PIPE) 280 for i in range(self.repeat_time): 281 self.send_command("step-into") 282 self.send_command("step-over") 283 for i in range(self.repeat_time): 284 self.send_command("resume") 285 286 subprocess.run("%s shell wukong special -t 600,600 -c 1" % self.hdctool, stdout=subprocess.PIPE) 287 for i in range(self.repeat_time): 288 self.send_command("resume") 289 290 subprocess.run("%s shell wukong special -t 600,600 -c 1" % self.hdctool, stdout=subprocess.PIPE) 291 for i in range(self.repeat_time): 292 self.send_command("step-into") 293 self.send_command("step-over") 294 for i in range(self.repeat_time): 295 self.send_command("resume") 296 297 for i in breakpoint_lines: 298 self.send_command("delete 1") 299 300 subprocess.run("%s shell wukong special -t 600,600 -c 1" % self.hdctool, stdout=subprocess.PIPE) 301 for i in range(self.repeat_time): 302 self.send_command("resume") 303 304 def test_watch(self): 305 if (os.environ.get("isRelease", "") == "True" or os.environ.get("isSkipped", "") == "True"): 306 return 307 breakpoint_lines = [ 308 "page1.ets 22", "page2.ets 22", "page3.ets 25" 309 ] 310 self.send_command("rt-enable") 311 for line in breakpoint_lines: 312 self.send_command("b entry/src/main/ets/pages/%s" % line) 313 subprocess.run( 314 "%s shell wukong special -t 600,600 -c 1" % self.hdctool, 315 stdout=subprocess.PIPE 316 ) 317 self.send_command("watch a") 318 for i in range(self.repeat_time): 319 self.send_command("resume") 320 321 for i in breakpoint_lines: 322 self.send_command("delete 1") 323 324 subprocess.run( 325 "%s shell wukong special -t 600,600 -c 1" % self.hdctool, 326 stdout=subprocess.PIPE 327 ) 328 for i in range(self.repeat_time): 329 self.send_command("resume") 330 331 def test_repeat_watch(self): 332 if (os.environ.get("isRelease", "") == "True" or os.environ.get("isSkipped", "") == "True"): 333 return 334 breakpoint_lines = ["page1.ets 22", "page2.ets 22", "page3.ets 25"] 335 self.send_command("rt-enable") 336 for line in breakpoint_lines: 337 self.send_command("b entry/src/main/ets/pages/%s" % line) 338 subprocess.run("%s shell wukong special -t 600,600 -c 1" % self.hdctool, stdout=subprocess.PIPE) 339 for i in range(self.repeat_time): 340 self.send_command("step-over") 341 self.send_command("watch a") 342 for i in range(self.repeat_time): 343 self.send_command("resume") 344 345 subprocess.run("%s shell wukong special -t 600,600 -c 1" % self.hdctool, stdout=subprocess.PIPE) 346 for i in range(self.repeat_time): 347 self.send_command("resume") 348 349 subprocess.run("%s shell wukong special -t 600,600 -c 1" % self.hdctool, stdout=subprocess.PIPE) 350 for i in range(self.repeat_time): 351 self.send_command("step-over") 352 self.send_command("watch a") 353 for i in range(self.repeat_time): 354 self.send_command("resume") 355 356 subprocess.run("%s shell wukong special -t 600,600 -c 1" % self.hdctool, stdout=subprocess.PIPE) 357 for i in range(self.repeat_time): 358 self.send_command("resume") 359 360 subprocess.run("%s shell wukong special -t 600,600 -c 1" % self.hdctool, stdout=subprocess.PIPE) 361 for i in range(self.repeat_time): 362 self.send_command("step-over") 363 self.send_command("watch a") 364 for i in range(self.repeat_time): 365 self.send_command("resume") 366 367 for i in breakpoint_lines: 368 self.send_command("delete 1") 369 370 subprocess.run("%s shell wukong special -t 600,600 -c 1" % self.hdctool, stdout=subprocess.PIPE) 371 for i in range(self.repeat_time): 372 self.send_command("resume") 373 374 def test_print(self): 375 if (os.environ.get("isRelease", "") == "True" or os.environ.get("isSkipped", "") == "True"): 376 return 377 breakpoint_lines = [ 378 "page1.ets 22", "page2.ets 22", "page3.ets 25" 379 ] 380 self.send_command("rt-enable") 381 for line in breakpoint_lines: 382 self.send_command("b entry/src/main/ets/pages/%s" % line) 383 subprocess.run( 384 "%s shell wukong special -t 600,600 -c 1" % self.hdctool, 385 stdout=subprocess.PIPE 386 ) 387 self.send_command("print") 388 self.send_command("print 2") 389 for i in range(self.repeat_time): 390 self.send_command("resume") 391 392 for i in breakpoint_lines: 393 self.send_command("delete 1") 394 395 subprocess.run( 396 "%s shell wukong special -t 600,600 -c 1" % self.hdctool, 397 stdout=subprocess.PIPE 398 ) 399 for i in range(self.repeat_time): 400 self.send_command("resume") 401 402 def test_repeat_print(self): 403 if (os.environ.get("isRelease", "") == "True" or os.environ.get("isSkipped", "") == "True"): 404 return 405 breakpoint_lines = [ 406 "page1.ets 22", "page2.ets 22", "page3.ets 25" 407 ] 408 self.send_command("rt-enable") 409 for line in breakpoint_lines: 410 self.send_command("b entry/src/main/ets/pages/%s" % line) 411 subprocess.run( 412 "%s shell wukong special -t 600,600 -c 1" % self.hdctool, 413 stdout=subprocess.PIPE 414 ) 415 for i in range(self.repeat_time): 416 self.send_command("print") 417 for i in range(self.repeat_time): 418 self.send_command("resume") 419 420 for i in breakpoint_lines: 421 self.send_command("delete 1") 422 423 subprocess.run( 424 "%s shell wukong special -t 600,600 -c 1" % self.hdctool, 425 stdout=subprocess.PIPE 426 ) 427 for i in range(self.repeat_time): 428 self.send_command("resume") 429 430 def test_cpuprofile(self): 431 if (os.environ.get("isRelease", "") == "True" or os.environ.get("isSkipped", "") == "True"): 432 return 433 breakpoint_lines = [ 434 "page1.ets 22", "page2.ets 22", "page3.ets 25" 435 ] 436 self.send_command("rt-enable") 437 for line in breakpoint_lines: 438 self.send_command("b entry/src/main/ets/pages/%s" % line) 439 subprocess.run( 440 "%s shell wukong special -t 600,600 -c 1" % self.hdctool, 441 stdout=subprocess.PIPE 442 ) 443 for i in range(self.repeat_time): 444 self.send_command("cpuprofile-enable") 445 self.send_command("cpuprofile") 446 self.send_command("step-over") 447 self.send_command("cpuprofile-stop") 448 self.send_command("cpuprofile-disable") 449 for i in range(self.repeat_time): 450 self.send_command("resume") 451 452 for i in breakpoint_lines: 453 self.send_command("delete 1") 454 455 subprocess.run( 456 "%s shell wukong special -t 600,600 -c 1" % self.hdctool, 457 stdout=subprocess.PIPE 458 ) 459 for i in range(self.repeat_time): 460 self.send_command("resume") 461 462 def test_heapdump(self): 463 if (os.environ.get("isRelease", "") == "True" or os.environ.get("isSkipped", "") == "True"): 464 return 465 breakpoint_lines = [ 466 "page1.ets 22", "page2.ets 22", "page3.ets 25" 467 ] 468 self.send_command("rt-enable") 469 for line in breakpoint_lines: 470 self.send_command("b entry/src/main/ets/pages/%s" % line) 471 subprocess.run( 472 "%s shell wukong special -t 600,600 -c 1" % self.hdctool, 473 stdout=subprocess.PIPE 474 ) 475 self.send_command("heapprofiler-enable") 476 self.send_command("heapdump") 477 self.send_command("resume") 478 subprocess.run( 479 "%s shell wukong special -t 600,600 -c 1" % self.hdctool, 480 stdout=subprocess.PIPE 481 ) 482 for i in range(self.repeat_time): 483 self.send_command("resume") 484 self.send_command("heapprofiler-disable") 485 for i in range(self.repeat_time): 486 self.send_command("resume") 487 488 for i in breakpoint_lines: 489 self.send_command("delete 1") 490 491 subprocess.run( 492 "%s shell wukong special -t 600,600 -c 1" % self.hdctool, 493 stdout=subprocess.PIPE 494 ) 495 for i in range(self.repeat_time): 496 self.send_command("resume") 497 498 def test_allocationtrack(self): 499 if (os.environ.get("isRelease", "") == "True" or os.environ.get("isSkipped", "") == "True"): 500 return 501 breakpoint_lines = [ 502 "page1.ets 22", "page2.ets 22", "page3.ets 25" 503 ] 504 self.send_command("rt-enable") 505 for line in breakpoint_lines: 506 self.send_command("b entry/src/main/ets/pages/%s" % line) 507 subprocess.run( 508 "%s shell wukong special -t 600,600 -c 1" % self.hdctool, 509 stdout=subprocess.PIPE 510 ) 511 self.send_command("heapprofiler-enable") 512 self.send_command("allocationtrack") 513 self.send_command("resume") 514 subprocess.run( 515 "%s shell wukong special -t 600,600 -c 1" % self.hdctool, 516 stdout=subprocess.PIPE 517 ) 518 for i in range(self.repeat_time): 519 self.send_command("resume") 520 self.send_command("allocationtrack-stop") 521 self.send_command("heapprofiler-disable") 522 for i in range(self.repeat_time): 523 self.send_command("resume") 524 for i in breakpoint_lines: 525 self.send_command("delete 1") 526 527 subprocess.run( 528 "%s shell wukong special -t 600,600 -c 1" % self.hdctool, 529 stdout=subprocess.PIPE 530 ) 531 for i in range(self.repeat_time): 532 self.send_command("resume") 533 534 def test_sampling(self): 535 if (os.environ.get("isRelease", "") == "True" or os.environ.get("isSkipped", "") == "True"): 536 return 537 breakpoint_lines = [ 538 "page1.ets 22", "page2.ets 22", "page3.ets 25" 539 ] 540 self.send_command("rt-enable") 541 for line in breakpoint_lines: 542 self.send_command("b entry/src/main/ets/pages/%s" % line) 543 subprocess.run( 544 "%s shell wukong special -t 600,600 -c 1" % self.hdctool, 545 stdout=subprocess.PIPE 546 ) 547 for i in range(self.repeat_time): 548 self.send_command("heapprofiler-enable") 549 self.send_command("sampling") 550 self.send_command("step-over") 551 self.send_command("sampling-stop") 552 self.send_command("heapprofiler-disable") 553 for i in range(self.repeat_time): 554 self.send_command("resume") 555 for i in breakpoint_lines: 556 self.send_command("delete 1") 557 558 subprocess.run( 559 "%s shell wukong special -t 600,600 -c 1" % self.hdctool, 560 stdout=subprocess.PIPE 561 ) 562 for i in range(self.repeat_time): 563 self.send_command("resume") 564 565 def test_heapusage(self): 566 if (os.environ.get("isRelease", "") == "True" or os.environ.get("isSkipped", "") == "True"): 567 return 568 breakpoint_lines = [ 569 "page1.ets 22", "page2.ets 22", "page3.ets 25" 570 ] 571 self.send_command("rt-enable") 572 for line in breakpoint_lines: 573 self.send_command("b entry/src/main/ets/pages/%s" % line) 574 subprocess.run( 575 "%s shell wukong special -t 600,600 -c 1" % self.hdctool, 576 stdout=subprocess.PIPE 577 ) 578 for i in range(self.repeat_time): 579 self.send_command("heapusage") 580 for i in range(self.repeat_time): 581 self.send_command("resume") 582 for i in breakpoint_lines: 583 self.send_command("delete 1") 584 585 subprocess.run( 586 "%s shell wukong special -t 600,600 -c 1" % self.hdctool, 587 stdout=subprocess.PIPE 588 ) 589 for i in range(self.repeat_time): 590 self.send_command("resume") 591 592 def test_showstack(self): 593 if (os.environ.get("isRelease", "") == "True" or os.environ.get("isSkipped", "") == "True"): 594 return 595 breakpoint_lines = [ 596 "page1.ets 22", "page2.ets 22", "page3.ets 25" 597 ] 598 self.send_command("rt-enable") 599 for line in breakpoint_lines: 600 self.send_command("b entry/src/main/ets/pages/%s" % line) 601 subprocess.run( 602 "%s shell wukong special -t 600,600 -c 1" % self.hdctool, 603 stdout=subprocess.PIPE 604 ) 605 self.send_command("showstack") 606 self.send_command("resume") 607 subprocess.run( 608 "%s shell wukong special -t 600,600 -c 1" % self.hdctool, 609 stdout=subprocess.PIPE 610 ) 611 for i in range(self.repeat_time): 612 self.send_command("resume") 613 for i in breakpoint_lines: 614 self.send_command("delete 1") 615 616 subprocess.run( 617 "%s shell wukong special -t 600,600 -c 1" % self.hdctool, 618 stdout=subprocess.PIPE 619 ) 620 for i in range(self.repeat_time): 621 self.send_command("resume") 622 623 def test_combined_cmds(self): 624 if (os.environ.get("isRelease", "") == "True" or os.environ.get("isSkipped", "") == "True"): 625 return 626 breakpoint_lines = [ 627 "page1.ets 22", "page2.ets 22", "page3.ets 25" 628 ] 629 self.send_command("rt-enable") 630 for line in breakpoint_lines: 631 self.send_command("b entry/src/main/ets/pages/%s" % line) 632 subprocess.run( 633 "%s shell wukong special -t 600,600 -c 1" % self.hdctool, 634 stdout=subprocess.PIPE 635 ) 636 637 self.send_command("step-into") 638 self.send_command("watch") 639 self.send_command("step-out") 640 self.send_command("print") 641 self.send_command("heapprofiler-enable") 642 self.send_command("sampling") 643 subprocess.run( 644 "%s shell wukong special -t 600,600 -c 1" % self.hdctool, 645 stdout=subprocess.PIPE 646 ) 647 for i in range(self.repeat_time): 648 self.send_command("resume") 649 self.send_command("sampling-stop") 650 self.send_command("heapprofiler-disable") 651 self.send_command("step-over") 652 self.send_command("cpuprofile-enable") 653 self.send_command("cpuprofile") 654 self.send_command("cpuprofile-stop") 655 self.send_command("cpuprofile-disable") 656 self.send_command("heapusage") 657 self.send_command("showstack") 658 subprocess.run( 659 "%s shell wukong special -t 600,600 -c 1" % self.hdctool, 660 stdout=subprocess.PIPE 661 ) 662 for i in range(self.repeat_time): 663 self.send_command("resume") 664 for i in breakpoint_lines: 665 self.send_command("delete 1") 666 667 subprocess.run( 668 "%s shell wukong special -t 600,600 -c 1" % self.hdctool, 669 stdout=subprocess.PIPE 670 ) 671 for i in range(self.repeat_time): 672 self.send_command("resume") 673 674 def test_only_cpuprofile(self): 675 if (os.environ.get("isSkipped", "") == "True"): 676 return 677 self.send_command("rt-enable") 678 subprocess.run( 679 "%s shell wukong special -t 600,600 -c 1" % self.hdctool, 680 stdout=subprocess.PIPE 681 ) 682 for i in range(self.repeat_time): 683 self.send_command("cpuprofile-enable") 684 self.send_command("cpuprofile") 685 self.send_command("cpuprofile-stop") 686 self.send_command("cpuprofile-disable") 687 for i in range(self.repeat_time): 688 self.send_command("resume") 689 690 subprocess.run( 691 "%s shell wukong special -t 600,600 -c 1" % self.hdctool, 692 stdout=subprocess.PIPE 693 ) 694 for i in range(self.repeat_time): 695 self.send_command("resume") 696 697 def test_only_heapdump(self): 698 if (os.environ.get("isSkipped", "") == "True"): 699 return 700 self.send_command("rt-enable") 701 subprocess.run( 702 "%s shell wukong special -t 600,600 -c 1" % self.hdctool, 703 stdout=subprocess.PIPE 704 ) 705 self.send_command("heapprofiler-enable") 706 self.send_command("heapdump") 707 subprocess.run( 708 "%s shell wukong special -t 600,600 -c 1" % self.hdctool, 709 stdout=subprocess.PIPE 710 ) 711 for i in range(self.repeat_time): 712 self.send_command("resume") 713 self.send_command("heapprofiler-disable") 714 for i in range(self.repeat_time): 715 self.send_command("resume") 716 717 subprocess.run( 718 "%s shell wukong special -t 600,600 -c 1" % self.hdctool, 719 stdout=subprocess.PIPE 720 ) 721 for i in range(self.repeat_time): 722 self.send_command("resume") 723 724 def test_only_allocationtrack(self): 725 if (os.environ.get("isSkipped", "") == "True"): 726 return 727 self.send_command("rt-enable") 728 subprocess.run( 729 "%s shell wukong special -t 600,600 -c 1" % self.hdctool, 730 stdout=subprocess.PIPE 731 ) 732 self.send_command("heapprofiler-enable") 733 self.send_command("allocationtrack") 734 subprocess.run( 735 "%s shell wukong special -t 600,600 -c 1" % self.hdctool, 736 stdout=subprocess.PIPE 737 ) 738 for i in range(self.repeat_time): 739 self.send_command("resume") 740 self.send_command("allocationtrack-stop") 741 self.send_command("heapprofiler-disable") 742 for i in range(self.repeat_time): 743 self.send_command("resume") 744 745 subprocess.run( 746 "%s shell wukong special -t 600,600 -c 1" % self.hdctool, 747 stdout=subprocess.PIPE 748 ) 749 for i in range(self.repeat_time): 750 self.send_command("resume") 751 752 def test_only_sampling(self): 753 if (os.environ.get("isSkipped", "") == "True"): 754 return 755 self.send_command("rt-enable") 756 subprocess.run( 757 "%s shell wukong special -t 600,600 -c 1" % self.hdctool, 758 stdout=subprocess.PIPE 759 ) 760 for i in range(self.repeat_time): 761 self.send_command("heapprofiler-enable") 762 self.send_command("sampling") 763 self.send_command("sampling-stop") 764 self.send_command("heapprofiler-disable") 765 for i in range(self.repeat_time): 766 self.send_command("resume") 767 768 subprocess.run( 769 "%s shell wukong special -t 600,600 -c 1" % self.hdctool, 770 stdout=subprocess.PIPE 771 ) 772 for i in range(self.repeat_time): 773 self.send_command("resume") 774 775 def test_only_heapusage(self): 776 if (os.environ.get("isSkipped", "") == "True"): 777 return 778 self.send_command("rt-enable") 779 subprocess.run( 780 "%s shell wukong special -t 600,600 -c 1" % self.hdctool, 781 stdout=subprocess.PIPE 782 ) 783 for i in range(self.repeat_time): 784 self.send_command("heapusage") 785 for i in range(self.repeat_time): 786 self.send_command("resume") 787 788 subprocess.run( 789 "%s shell wukong special -t 600,600 -c 1" % self.hdctool, 790 stdout=subprocess.PIPE 791 ) 792 for i in range(self.repeat_time): 793 self.send_command("resume") 794 795 def test_only_showstack(self): 796 if (os.environ.get("isSkipped", "") == "True"): 797 return 798 self.send_command("rt-enable") 799 subprocess.run( 800 "%s shell wukong special -t 600,600 -c 1" % self.hdctool, 801 stdout=subprocess.PIPE 802 ) 803 self.send_command("showstack") 804 self.send_command("resume") 805 subprocess.run( 806 "%s shell wukong special -t 600,600 -c 1" % self.hdctool, 807 stdout=subprocess.PIPE 808 ) 809 for i in range(self.repeat_time): 810 self.send_command("resume") 811 812 subprocess.run( 813 "%s shell wukong special -t 600,600 -c 1" % self.hdctool, 814 stdout=subprocess.PIPE 815 ) 816 for i in range(self.repeat_time): 817 self.send_command("resume")