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