tests/GDBDebuggerTestsR.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Wed, 18 Mar 2015 14:19:37 +0000
changeset 72 eb4eea3ebf4c
parent 66 43c941cacd43
child 74 d53d325c2930
permissions -rw-r--r--
Increate sequence number also when thread or thread group is stopped ...otherwise cached thread-data would not refresh when thread terminates.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
56
20989de12cfb More work on variables + tests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     1
"{ Package: 'jv:libgdbs/tests' }"
20989de12cfb More work on variables + tests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     2
20989de12cfb More work on variables + tests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     3
"{ NameSpace: Smalltalk }"
20989de12cfb More work on variables + tests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     4
20989de12cfb More work on variables + tests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     5
GDBDebuggerTestCase subclass:#GDBDebuggerTestsR
20989de12cfb More work on variables + tests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     6
	instanceVariableNames:''
20989de12cfb More work on variables + tests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     7
	classVariableNames:''
20989de12cfb More work on variables + tests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     8
	poolDictionaries:''
20989de12cfb More work on variables + tests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     9
	category:'GDB-Core-Tests'
20989de12cfb More work on variables + tests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    10
!
20989de12cfb More work on variables + tests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    11
20989de12cfb More work on variables + tests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    12
!GDBDebuggerTestsR class methodsFor:'documentation'!
20989de12cfb More work on variables + tests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    13
20989de12cfb More work on variables + tests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    14
documentation
20989de12cfb More work on variables + tests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    15
"
66
43c941cacd43 Added test for -exec-run & -exec-interrupt
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 63
diff changeset
    16
    Tests for GDBDebugger (using real test programs)         
56
20989de12cfb More work on variables + tests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    17
20989de12cfb More work on variables + tests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    18
    [author:]
20989de12cfb More work on variables + tests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    19
        Jan Vrany <jan.vrany@fit.cvut.cz>
20989de12cfb More work on variables + tests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    20
20989de12cfb More work on variables + tests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    21
    [instance variables:]
20989de12cfb More work on variables + tests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    22
20989de12cfb More work on variables + tests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    23
    [class variables:]
20989de12cfb More work on variables + tests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    24
20989de12cfb More work on variables + tests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    25
    [see also:]
20989de12cfb More work on variables + tests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    26
20989de12cfb More work on variables + tests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    27
"
20989de12cfb More work on variables + tests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    28
! !
20989de12cfb More work on variables + tests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    29
20989de12cfb More work on variables + tests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    30
!GDBDebuggerTestsR class methodsFor:'accessing'!
20989de12cfb More work on variables + tests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    31
20989de12cfb More work on variables + tests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    32
resources
20989de12cfb More work on variables + tests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    33
    ^ Array with: GDBDebuggeesResource
20989de12cfb More work on variables + tests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    34
20989de12cfb More work on variables + tests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    35
    "Created: / 28-02-2015 / 00:45:00 / Jan Vrany <jan.vrany@fit.cvut.cz>"
20989de12cfb More work on variables + tests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    36
! !
20989de12cfb More work on variables + tests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    37
20989de12cfb More work on variables + tests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    38
!GDBDebuggerTestsR methodsFor:'tests - basic'!
20989de12cfb More work on variables + tests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    39
20989de12cfb More work on variables + tests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    40
test_02
20989de12cfb More work on variables + tests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    41
    | inferior1 thread1 frame1 frame2 |
20989de12cfb More work on variables + tests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    42
20989de12cfb More work on variables + tests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    43
    debugger := GDBDebugger new.
20989de12cfb More work on variables + tests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    44
    self assert: debugger isConnected.
20989de12cfb More work on variables + tests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    45
20989de12cfb More work on variables + tests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    46
    debugger executable: GDBDebuggeesResource current binaryFactorial.
20989de12cfb More work on variables + tests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    47
    debugger send: 'b factorial'.
20989de12cfb More work on variables + tests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    48
63
29a7a3b4532b Added conveniece API to ease debugger scripting (and testing)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 56
diff changeset
    49
    debugger send: 'r' andWaitFor: GDBStoppedEvent.
56
20989de12cfb More work on variables + tests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    50
20989de12cfb More work on variables + tests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    51
    self assert: debugger inferiors size == 1.
20989de12cfb More work on variables + tests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    52
    inferior1 := debugger inferiors anElement.
20989de12cfb More work on variables + tests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    53
    self assert: inferior1 threads size == 1.
20989de12cfb More work on variables + tests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    54
    thread1 := inferior1 threads anElement.
20989de12cfb More work on variables + tests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    55
    self assert: thread1 stack size == 2.
20989de12cfb More work on variables + tests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    56
    frame1 := thread1 stack first.
20989de12cfb More work on variables + tests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    57
    frame2 := thread1 stack second.
20989de12cfb More work on variables + tests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    58
    self assert: frame1 variables size == 1.
20989de12cfb More work on variables + tests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    59
    self assert: frame1 variables first name = 'i'.
20989de12cfb More work on variables + tests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    60
20989de12cfb More work on variables + tests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    61
    self assert: frame2 variables size == 4.
20989de12cfb More work on variables + tests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    62
    self assert: frame2 variables first name = 'argc'.
20989de12cfb More work on variables + tests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    63
    self assert: frame2 variables second name = 'argv'.
20989de12cfb More work on variables + tests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    64
    self assert: frame2 variables third name = 'i'.
20989de12cfb More work on variables + tests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    65
    self assert: frame2 variables fourth name = 'f'.
20989de12cfb More work on variables + tests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    66
63
29a7a3b4532b Added conveniece API to ease debugger scripting (and testing)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 56
diff changeset
    67
    debugger send: 'd'.
29a7a3b4532b Added conveniece API to ease debugger scripting (and testing)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 56
diff changeset
    68
    debugger send: 'c' andWaitFor: GDBThreadGroupExitedEvent.
56
20989de12cfb More work on variables + tests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    69
66
43c941cacd43 Added test for -exec-run & -exec-interrupt
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 63
diff changeset
    70
    self assert: thread1 isDead
43c941cacd43 Added test for -exec-run & -exec-interrupt
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 63
diff changeset
    71
56
20989de12cfb More work on variables + tests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    72
    "Created: / 28-02-2015 / 00:55:55 / Jan Vrany <jan.vrany@fit.cvut.cz>"
66
43c941cacd43 Added test for -exec-run & -exec-interrupt
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 63
diff changeset
    73
    "Modified: / 08-03-2015 / 09:11:33 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43c941cacd43 Added test for -exec-run & -exec-interrupt
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 63
diff changeset
    74
!
43c941cacd43 Added test for -exec-run & -exec-interrupt
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 63
diff changeset
    75
43c941cacd43 Added test for -exec-run & -exec-interrupt
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 63
diff changeset
    76
test_03
43c941cacd43 Added test for -exec-run & -exec-interrupt
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 63
diff changeset
    77
    | inferior1 thread1 |
43c941cacd43 Added test for -exec-run & -exec-interrupt
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 63
diff changeset
    78
43c941cacd43 Added test for -exec-run & -exec-interrupt
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 63
diff changeset
    79
    debugger := GDBDebugger new.
43c941cacd43 Added test for -exec-run & -exec-interrupt
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 63
diff changeset
    80
    self assert: debugger isConnected.
43c941cacd43 Added test for -exec-run & -exec-interrupt
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 63
diff changeset
    81
43c941cacd43 Added test for -exec-run & -exec-interrupt
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 63
diff changeset
    82
    debugger executable: GDBDebuggeesResource current binaryPressAnyKey.
43c941cacd43 Added test for -exec-run & -exec-interrupt
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 63
diff changeset
    83
43c941cacd43 Added test for -exec-run & -exec-interrupt
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 63
diff changeset
    84
    debugger send: (GDBMI_exec_run new).
43c941cacd43 Added test for -exec-run & -exec-interrupt
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 63
diff changeset
    85
43c941cacd43 Added test for -exec-run & -exec-interrupt
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 63
diff changeset
    86
    self assert: debugger inferiors size == 1.
43c941cacd43 Added test for -exec-run & -exec-interrupt
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 63
diff changeset
    87
    inferior1 := debugger inferiors anElement.
43c941cacd43 Added test for -exec-run & -exec-interrupt
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 63
diff changeset
    88
    self assert: inferior1 threads size == 1.
43c941cacd43 Added test for -exec-run & -exec-interrupt
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 63
diff changeset
    89
    thread1 := inferior1 threads anElement.
43c941cacd43 Added test for -exec-run & -exec-interrupt
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 63
diff changeset
    90
    self assert: thread1 isRunning.
43c941cacd43 Added test for -exec-run & -exec-interrupt
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 63
diff changeset
    91
72
eb4eea3ebf4c Increate sequence number also when thread or thread group is stopped
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 66
diff changeset
    92
    debugger send: (GDBMI_exec_interrupt new arguments: #('--all')) andWaitFor: GDBStoppedEvent.
66
43c941cacd43 Added test for -exec-run & -exec-interrupt
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 63
diff changeset
    93
43c941cacd43 Added test for -exec-run & -exec-interrupt
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 63
diff changeset
    94
    self assert: thread1 isRunning not.
43c941cacd43 Added test for -exec-run & -exec-interrupt
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 63
diff changeset
    95
43c941cacd43 Added test for -exec-run & -exec-interrupt
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 63
diff changeset
    96
    debugger inferiorStdin nextPutLine:'X'.  
43c941cacd43 Added test for -exec-run & -exec-interrupt
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 63
diff changeset
    97
43c941cacd43 Added test for -exec-run & -exec-interrupt
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 63
diff changeset
    98
    debugger send: 'c' andWaitFor: GDBThreadGroupExitedEvent.
43c941cacd43 Added test for -exec-run & -exec-interrupt
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 63
diff changeset
    99
43c941cacd43 Added test for -exec-run & -exec-interrupt
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 63
diff changeset
   100
    "Created: / 08-03-2015 / 07:42:10 / Jan Vrany <jan.vrany@fit.cvut.cz>"
72
eb4eea3ebf4c Increate sequence number also when thread or thread group is stopped
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 66
diff changeset
   101
    "Modified: / 18-03-2015 / 14:01:43 / Jan Vrany <jan.vrany@fit.cvut.cz>"
56
20989de12cfb More work on variables + tests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   102
!
20989de12cfb More work on variables + tests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   103
20989de12cfb More work on variables + tests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   104
test_basic_01
20989de12cfb More work on variables + tests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   105
    | timeouted |
20989de12cfb More work on variables + tests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   106
20989de12cfb More work on variables + tests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   107
    debugger := GDBDebugger new.
20989de12cfb More work on variables + tests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   108
    self assert: debugger isConnected.
20989de12cfb More work on variables + tests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   109
    timeouted  := ([
20989de12cfb More work on variables + tests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   110
        debugger send: (GDBMI_gdb_exit new).
20989de12cfb More work on variables + tests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   111
        true.
20989de12cfb More work on variables + tests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   112
    ] valueWithTimeout: 3 seconds) isNil.
20989de12cfb More work on variables + tests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   113
20989de12cfb More work on variables + tests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   114
    self assert: timeouted not.
20989de12cfb More work on variables + tests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   115
    self assert: debugger isConnected not.
20989de12cfb More work on variables + tests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   116
20989de12cfb More work on variables + tests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   117
    "Created: / 24-06-2014 / 09:06:32 / Jan Vrany <jan.vrany@fit.cvut.cz>"
20989de12cfb More work on variables + tests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   118
    "Modified (format): / 06-09-2014 / 02:16:28 / Jan Vrany <jan.vrany@fit.cvut.cz>"
20989de12cfb More work on variables + tests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   119
! !
20989de12cfb More work on variables + tests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   120
66
43c941cacd43 Added test for -exec-run & -exec-interrupt
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 63
diff changeset
   121
!GDBDebuggerTestsR class methodsFor:'documentation'!
43c941cacd43 Added test for -exec-run & -exec-interrupt
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 63
diff changeset
   122
43c941cacd43 Added test for -exec-run & -exec-interrupt
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 63
diff changeset
   123
version_HG
43c941cacd43 Added test for -exec-run & -exec-interrupt
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 63
diff changeset
   124
43c941cacd43 Added test for -exec-run & -exec-interrupt
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 63
diff changeset
   125
    ^ '$Changeset: <not expanded> $'
43c941cacd43 Added test for -exec-run & -exec-interrupt
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 63
diff changeset
   126
! !
43c941cacd43 Added test for -exec-run & -exec-interrupt
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 63
diff changeset
   127