tests/VDBInstructionListApplicationTests.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Wed, 13 Mar 2019 14:07:49 +0000
changeset 149 adaffe052a41
parent 113 1a40f33af921
child 151 bc7626f46210
permissions -rw-r--r--
Show log output in simple console This needed because, for example, python errors and stacktrace is reported on log stream, not on output stream.

"
jv:vdb - Visual / VM Debugger
Copyright (C) 2015-now Jan Vrany

This software is licensed under 'Creative Commons Attribution-NonCommercial 4.0 International License'

You may find a full license text in LICENSE.txt or at http://creativecommons.org/licenses/by-nc/4.0/
"
"{ Package: 'jv:vdb/tests' }"

"{ NameSpace: Smalltalk }"

VDBAbstractApplicationTests subclass:#VDBInstructionListApplicationTests
	instanceVariableNames:''
	classVariableNames:''
	poolDictionaries:''
	category:'VDB-UI-Others-Tests'
!

!VDBInstructionListApplicationTests class methodsFor:'documentation'!

copyright
"
jv:vdb - Visual / VM Debugger
Copyright (C) 2015-now Jan Vrany

This software is licensed under 'Creative Commons Attribution-NonCommercial 4.0 International License'

You may find a full license text in LICENSE.txt or at http://creativecommons.org/licenses/by-nc/4.0/
"
! !

!VDBInstructionListApplicationTests methodsFor:'tests'!

test_01a
    | stack frameHolder |

    debugger := GDBDebugger new.
    self assert: debugger isConnected.

    frameHolder := ValueHolder new.
    application := VDBInstructionListApplication new.
    application debuggerHolder: (ValueHolder with: debugger).
    application frameHolder: frameHolder.  
    application open.


    debugger executable: GDBDebuggeesResource current binaryFactorial1.
    debugger send: 'b factorial'.
    debugger send: 'r' andWaitFor: GDBStoppedEvent.
    debugger send: 'c' andWaitFor: GDBStoppedEvent.

    stack := debugger selectedInferior threads first stack.
    self assert: stack size = 3.

    frameHolder value: stack first.

    debugger send: 'stepi' andWaitFor: GDBStoppedEvent.
    debugger send: 'next' andWaitFor: GDBStoppedEvent.
    debugger send: 'd'.

    frameHolder value: nil.
    
    debugger send: 'c' andWaitFor: GDBThreadGroupExitedEvent.

    "Created: / 03-10-2018 / 12:27:37 / Jan Vrany <jan.vrany@fit.cvut.cz>"
    "Modified: / 03-10-2018 / 15:19:48 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!

test_01b
    | stack frameHolder |

    debugger := GDBDebugger new.
    self assert: debugger isConnected.

    frameHolder := ValueHolder new.
    application := VDBInstructionListApplication new.
    application debuggerHolder: (ValueHolder with: debugger).
    application frameHolder: frameHolder.  
    application allButOpen.


    debugger executable: GDBDebuggeesResource current binaryFactorial1.
    debugger send: 'b factorial'.
    debugger send: 'r' andWaitFor: GDBStoppedEvent.
    debugger send: 'c' andWaitFor: GDBStoppedEvent.

    stack := debugger selectedInferior threads first stack.
    self assert: stack size = 3.

    frameHolder value: stack first.

    debugger send: 'stepi' andWaitFor: GDBStoppedEvent.
    debugger send: 'next' andWaitFor: GDBStoppedEvent.
    debugger send: 'd'.
    debugger send: 'c' andWaitFor: GDBThreadGroupExitedEvent.

    "Created: / 03-10-2018 / 12:27:40 / Jan Vrany <jan.vrany@fit.cvut.cz>"
    "Modified: / 03-10-2018 / 15:14:10 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !

!VDBInstructionListApplicationTests class methodsFor:'documentation'!

version_HG

    ^ '$Changeset: <not expanded> $'
! !