pykd

Форк
0
/
ehstatustest.py 
41 строка · 1.4 Кб
1
"""Execution status event test"""
2

3
import unittest
4
import target
5
import pykd
6
import testutils
7

8
class StatusChangeHandler(pykd.eventHandler):
9

10
    def __init__(self):
11
        pykd.eventHandler.__init__(self)
12
        self.breakCount = 0
13
        self.goCount = 0
14
        self.noDebuggee = 0
15

16
    def onExecutionStatusChange(self, executionStatus):
17
        if executionStatus == pykd.executionStatus.Break:
18
            self.breakCount += 1
19
        if executionStatus == pykd.executionStatus.Go:
20
            self.goCount += 1
21
        if executionStatus == pykd.executionStatus.NoDebuggee:
22
            self.noDebuggee += 1
23

24

25
class EhStatusTest(unittest.TestCase):
26
    """Execution status event test"""
27

28
    def testException(self):
29
        """Start new process and track exceptions"""
30
        _locProcessId = pykd.startProcess( target.appPath + " -testChangeStatus" )
31
        with testutils.ContextCallIt( testutils.KillProcess(_locProcessId) ) as killStartedProcess :
32

33
            pykd.go() #skip initial break
34

35
            statusChangeHandler = StatusChangeHandler()
36

37
            self.assertRaises(pykd.WaitEventException, testutils.infGo)
38

39
            self.assertEqual( 2, statusChangeHandler.breakCount )
40
            self.assertEqual( 1, statusChangeHandler.noDebuggee )
41
            self.assertEqual( statusChangeHandler.breakCount + statusChangeHandler.noDebuggee , statusChangeHandler.goCount )
42

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.