• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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")