TestTester.st
author Claus Gittinger <cg@exept.de>
Sun, 01 Jul 2018 12:52:19 +0200
changeset 719 2c96860ad5cb
parent 215 6db48dedef3a
permissions -rw-r--r--
#FEATURE by cg class: TestCase::Should class definition added: #assertSelector #beInstanceOf: #equal: #not #raise: changed: #be:
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
210
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     1
"{ Package: 'stx:goodies/sunit' }"
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     2
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     3
ApplicationModel subclass:#TestTester
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     4
	instanceVariableNames:'currentSource testCaseClassListApp testCaseMethodListApp
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     5
		testeeClassListApp testeeMethodListApp selectedTesteeClasses
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     6
		selectedTesteeMethods selectedTestCaseClasses
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     7
		selectedTestCaseMethods testeeMethodListHolder
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     8
		testCaseSourceHolder mutatedMethodSourceHolder
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     9
		originalMethodSourceHolder testCaseClassGeneratorHolder
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    10
		selectedTesteeMethod selectedTestCaseClass infoLabelHolder
214
1d33c415f378 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
    11
		diffTextView numberOfTriedMutations maxTestExecutionTime'
210
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    12
	classVariableNames:''
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    13
	poolDictionaries:''
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    14
	category:'SUnit-UI'
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    15
!
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    16
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    17
Object subclass:#Mutator
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    18
	instanceVariableNames:'blockToCall treeTop'
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    19
	classVariableNames:''
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    20
	poolDictionaries:''
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    21
	privateIn:TestTester
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    22
!
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    23
214
1d33c415f378 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
    24
Error subclass:#TestSuiteIncompleteError
1d33c415f378 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
    25
	instanceVariableNames:''
1d33c415f378 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
    26
	classVariableNames:''
1d33c415f378 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
    27
	poolDictionaries:''
1d33c415f378 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
    28
	privateIn:TestTester
1d33c415f378 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
    29
!
1d33c415f378 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
    30
1d33c415f378 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
    31
Error subclass:#TimeoutError
1d33c415f378 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
    32
	instanceVariableNames:''
1d33c415f378 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
    33
	classVariableNames:''
1d33c415f378 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
    34
	poolDictionaries:''
1d33c415f378 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
    35
	privateIn:TestTester
1d33c415f378 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
    36
!
1d33c415f378 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
    37
210
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    38
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    39
!TestTester class methodsFor:'interface specs'!
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    40
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    41
windowSpec
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    42
    "This resource specification was automatically generated
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    43
     by the UIPainter of ST/X."
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    44
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    45
    "Do not manually edit this!! If it is corrupted,
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    46
     the UIPainter may not be able to read the specification."
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    47
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    48
    "
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    49
     UIPainter new openOnClass:TestTester andSelector:#windowSpec
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    50
     TestTester new openInterface:#windowSpec
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    51
     TestTester open
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    52
    "
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    53
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    54
    <resource: #canvas>
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    55
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    56
    ^ 
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    57
     #(FullSpec
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    58
        name: windowSpec
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    59
        window: 
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    60
       (WindowSpec
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    61
          label: 'TestTester'
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    62
          name: 'TestTester'
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    63
          min: (Point 10 10)
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    64
          max: (Point 1024 768)
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    65
          bounds: (Rectangle 0 0 554 504)
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    66
          menu: mainMenu
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    67
        )
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    68
        component: 
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    69
       (SpecCollection
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    70
          collection: (
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    71
           (MenuPanelSpec
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    72
              name: 'ToolBar1'
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    73
              layout: (LayoutFrame 0 0.0 0 0 0 1.0 36 0)
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    74
              menu: toolbarMenu
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    75
              textDefault: true
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    76
            )
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    77
           (ViewSpec
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    78
              name: 'Box4'
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    79
              layout: (LayoutFrame 0 0 36 0 0 1 -26 1)
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    80
              component: 
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    81
             (SpecCollection
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    82
                collection: (
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    83
                 (ViewSpec
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    84
                    name: 'TestedMethodSelectionBox'
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    85
                    layout: (LayoutFrame 0 0 0 0 0 0.4 0 0.5)
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    86
                    component: 
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    87
                   (SpecCollection
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    88
                      collection: (
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    89
                       (LabelSpec
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    90
                          label: 'Tested Method'
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    91
                          name: 'Label4'
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    92
                          layout: (LayoutFrame 0 0.0 0 0 0 1.0 22 0)
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    93
                          translateLabel: true
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    94
                        )
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    95
                       (SubCanvasSpec
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    96
                          name: 'TestedMethodClassList'
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    97
                          layout: (LayoutFrame 0 0 22 0 0 0.5 0 1)
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    98
                          hasHorizontalScrollBar: false
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    99
                          hasVerticalScrollBar: false
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   100
                          majorKey: #'Tools::ClassList'
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   101
                          subAspectHolders: 
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   102
                         (Array
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   103
                            
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   104
                           (SubChannelInfoSpec
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   105
                              subAspect: selectedClasses
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   106
                              aspect: selectedTesteeClasses
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   107
                            )
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   108
                          )
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   109
                          createNewApplication: true
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   110
                          createNewBuilder: true
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   111
                          postBuildCallback: postBuildTestedClassList:
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   112
                        )
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   113
                       (SubCanvasSpec
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   114
                          name: 'TestedMethodMethodList'
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   115
                          layout: (LayoutFrame 0 0.5 22 0 0 1 0 1)
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   116
                          hasHorizontalScrollBar: false
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   117
                          hasVerticalScrollBar: false
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   118
                          majorKey: #'Tools::MethodList'
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   119
                          subAspectHolders: 
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   120
                         (Array
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   121
                            
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   122
                           (SubChannelInfoSpec
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   123
                              subAspect: inGeneratorHolder
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   124
                              aspect: testeeMethodListHolder
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   125
                            ) 
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   126
                           (SubChannelInfoSpec
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   127
                              subAspect: selectedMethods
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   128
                              aspect: selectedTesteeMethods
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   129
                            )
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   130
                          )
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   131
                          createNewApplication: true
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   132
                          createNewBuilder: true
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   133
                          postBuildCallback: postBuildTestedMethodList:
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   134
                        )
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   135
                       )
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   136
                     
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   137
                    )
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   138
                  )
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   139
                 (LabelSpec
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   140
                    label: 'Original'
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   141
                    name: 'Label5'
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   142
                    layout: (LayoutFrame 0 0.4 0 0 0 0.7 22 0)
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   143
                    translateLabel: true
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   144
                  )
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   145
                 (TextEditorSpec
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   146
                    name: 'OriginalMethodEditor'
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   147
                    layout: (LayoutFrame 0 0.4 22 0 0 0.7 0 0.5)
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   148
                    model: originalMethodSourceHolder
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   149
                    hasHorizontalScrollBar: true
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   150
                    hasVerticalScrollBar: true
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   151
                    hasKeyboardFocusInitially: false
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   152
                  )
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   153
                 (LabelSpec
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   154
                    label: 'Mutation'
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   155
                    name: 'Label6'
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   156
                    layout: (LayoutFrame 0 0.7 0 0 0 1 22 0)
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   157
                    translateLabel: true
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   158
                  )
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   159
                 (TextEditorSpec
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   160
                    name: 'MutatedMethodEditor'
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   161
                    layout: (LayoutFrame 0 0.7 22 0 0 1 0 0.5)
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   162
                    model: mutatedMethodSourceHolder
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   163
                    hasHorizontalScrollBar: true
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   164
                    hasVerticalScrollBar: true
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   165
                    hasKeyboardFocusInitially: false
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   166
                  )
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   167
                 (ViewSpec
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   168
                    name: 'TestSuiteSelectionBox'
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   169
                    layout: (LayoutFrame 0 0 0 0.5 0 0.4 0 1)
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   170
                    component: 
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   171
                   (SpecCollection
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   172
                      collection: (
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   173
                       (LabelSpec
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   174
                          label: 'TestCase'
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   175
                          name: 'Label3'
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   176
                          layout: (LayoutFrame 0 0.0 0 0 0 1.0 22 0)
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   177
                          translateLabel: true
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   178
                        )
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   179
                       (SubCanvasSpec
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   180
                          name: 'TestCaseClassList'
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   181
                          layout: (LayoutFrame 0 0 22 0 0 1 0 1)
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   182
                          hasHorizontalScrollBar: false
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   183
                          hasVerticalScrollBar: false
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   184
                          majorKey: #'Tools::ClassList'
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   185
                          subAspectHolders: 
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   186
                         (Array
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   187
                            
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   188
                           (SubChannelInfoSpec
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   189
                              subAspect: inGeneratorHolder
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   190
                              aspect: testCaseClassGeneratorHolder
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   191
                            ) 
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   192
                           (SubChannelInfoSpec
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   193
                              subAspect: selectedClasses
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   194
                              aspect: selectedTestCaseClasses
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   195
                            )
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   196
                          )
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   197
                          createNewApplication: true
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   198
                          createNewBuilder: true
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   199
                          postBuildCallback: postBuildTestCaseClassList:
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   200
                        )
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   201
                       )
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   202
                     
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   203
                    )
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   204
                  )
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   205
                 (LabelSpec
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   206
                    name: 'Label7'
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   207
                    layout: (LayoutFrame 0 0.5 0 0.5 0 1 22 0.5)
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   208
                    translateLabel: true
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   209
                  )
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   210
                 (TextEditorSpec
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   211
                    name: 'TextCaseEditor1'
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   212
                    layout: (LayoutFrame 0 0.4 22 0.5 0 1 0 1)
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   213
                    model: testCaseSourceHolder
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   214
                    hasHorizontalScrollBar: true
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   215
                    hasVerticalScrollBar: true
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   216
                    hasKeyboardFocusInitially: false
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   217
                  )
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   218
                 (ArbitraryComponentSpec
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   219
                    name: 'ArbitraryComponent1'
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   220
                    layout: (LayoutFrame 0 0.4 0 0 0 1 0 0.5)
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   221
                    hasHorizontalScrollBar: true
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   222
                    hasVerticalScrollBar: true
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   223
                    miniScrollerHorizontal: true
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   224
                    component: DiffTextView
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   225
                    postBuildCallback: postBuildDiffTextView:
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   226
                  )
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   227
                 )
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   228
               
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   229
              )
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   230
            )
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   231
           (ViewSpec
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   232
              name: 'Box2'
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   233
              layout: (LayoutFrame 0 0 -26 1 0 1 0 1)
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   234
              level: 1
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   235
              component: 
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   236
             (SpecCollection
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   237
                collection: (
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   238
                 (LabelSpec
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   239
                    label: 'InfoLabel'
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   240
                    name: 'Label2'
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   241
                    layout: (LayoutFrame 0 0 -26 1 -1 1 0 1)
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   242
                    level: -1
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   243
                    translateLabel: true
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   244
                    labelChannel: infoLabelHolder
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   245
                    adjust: left
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   246
                  )
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   247
                 )
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   248
               
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   249
              )
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   250
            )
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   251
           )
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   252
         
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   253
        )
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   254
      )
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   255
! !
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   256
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   257
!TestTester class methodsFor:'menu specs'!
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   258
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   259
mainMenu
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   260
    "This resource specification was automatically generated
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   261
     by the MenuEditor of ST/X."
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   262
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   263
    "Do not manually edit this!! If it is corrupted,
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   264
     the MenuEditor may not be able to read the specification."
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   265
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   266
    "
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   267
     MenuEditor new openOnClass:TestTester andSelector:#mainMenu
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   268
     (Menu new fromLiteralArrayEncoding:(TestTester mainMenu)) startUp
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   269
    "
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   270
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   271
    <resource: #menu>
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   272
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   273
    ^ 
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   274
     #(Menu
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   275
        (
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   276
         (MenuItem
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   277
            label: 'File'
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   278
            translateLabel: true
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   279
            submenu: 
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   280
           (Menu
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   281
              (
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   282
               (MenuItem
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   283
                  label: 'Exit'
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   284
                  itemValue: closeRequest
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   285
                  translateLabel: true
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   286
                )
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   287
               )
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   288
              nil
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   289
              nil
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   290
            )
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   291
          )
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   292
         (MenuItem
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   293
            label: 'Help'
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   294
            translateLabel: true
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   295
            startGroup: right
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   296
            submenu: 
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   297
           (Menu
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   298
              (
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   299
               (MenuItem
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   300
                  label: 'Documentation'
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   301
                  itemValue: openDocumentation
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   302
                  translateLabel: true
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   303
                )
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   304
               (MenuItem
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   305
                  label: '-'
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   306
                )
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   307
               (MenuItem
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   308
                  label: 'About this Application...'
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   309
                  itemValue: openAboutThisApplication
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   310
                  translateLabel: true
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   311
                )
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   312
               )
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   313
              nil
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   314
              nil
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   315
            )
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   316
          )
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   317
         )
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   318
        nil
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   319
        nil
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   320
      )
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   321
!
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   322
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   323
toolbarMenu
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   324
    "This resource specification was automatically generated
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   325
     by the MenuEditor of ST/X."
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   326
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   327
    "Do not manually edit this!! If it is corrupted,
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   328
     the MenuEditor may not be able to read the specification."
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   329
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   330
    "
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   331
     MenuEditor new openOnClass:TestTester andSelector:#toolbarMenu
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   332
     (Menu new fromLiteralArrayEncoding:(TestTester toolbarMenu)) startUp
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   333
    "
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   334
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   335
    <resource: #menu>
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   336
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   337
    ^ 
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   338
     #(Menu
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   339
        (
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   340
         (MenuItem
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   341
            label: 'RunCheck'
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   342
            itemValue: menuRunCheck
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   343
            translateLabel: true
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   344
            isButton: true
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   345
            labelImage: (ResourceRetriever ToolbarIconLibrary make22x22Icon)
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   346
          )
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   347
         )
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   348
        nil
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   349
        nil
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   350
      )
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   351
! !
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   352
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   353
!TestTester methodsFor:'aspects'!
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   354
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   355
infoLabelHolder
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   356
    infoLabelHolder isNil ifTrue:[
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   357
        infoLabelHolder := ValueHolder new.
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   358
    ].
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   359
    ^ infoLabelHolder
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   360
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   361
    "Created: / 25-04-2010 / 21:01:00 / cg"
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   362
!
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   363
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   364
mutatedMethodSourceHolder
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   365
    mutatedMethodSourceHolder isNil ifTrue:[
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   366
        mutatedMethodSourceHolder := ValueHolder new.
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   367
    ].
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   368
    ^ mutatedMethodSourceHolder
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   369
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   370
    "Created: / 25-04-2010 / 15:53:44 / cg"
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   371
!
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   372
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   373
originalMethodSourceHolder
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   374
    originalMethodSourceHolder isNil ifTrue:[
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   375
        originalMethodSourceHolder := ValueHolder new.
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   376
    ].
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   377
    ^ originalMethodSourceHolder
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   378
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   379
    "Created: / 25-04-2010 / 15:53:58 / cg"
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   380
!
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   381
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   382
selectedTestCaseClasses
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   383
    selectedTestCaseClasses isNil ifTrue:[
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   384
        selectedTestCaseClasses := ValueHolder new.
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   385
        selectedTestCaseClasses onChangeSend:#selectedTestCaseClassesChanged to:self.
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   386
    ].
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   387
    ^ selectedTestCaseClasses
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   388
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   389
    "Created: / 25-04-2010 / 16:23:56 / cg"
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   390
!
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   391
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   392
selectedTesteeClasses
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   393
    selectedTesteeClasses isNil ifTrue:[
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   394
        selectedTesteeClasses := ValueHolder new.
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   395
        selectedTesteeClasses onChangeSend:#selectedTesteeClassesChanged to:self.
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   396
    ].
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   397
    ^ selectedTesteeClasses
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   398
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   399
    "Created: / 25-04-2010 / 14:00:14 / cg"
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   400
!
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   401
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   402
selectedTesteeMethods
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   403
    selectedTesteeMethods isNil ifTrue:[
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   404
        selectedTesteeMethods := ValueHolder new.
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   405
        selectedTesteeMethods onChangeSend:#selectedTesteeMethodsChanged to:self.
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   406
    ].
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   407
    ^ selectedTesteeMethods
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   408
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   409
    "Created: / 25-04-2010 / 15:50:10 / cg"
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   410
!
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   411
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   412
testCaseClassGeneratorHolder
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   413
    testCaseClassGeneratorHolder isNil ifTrue:[
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   414
        testCaseClassGeneratorHolder := ValueHolder new.
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   415
    ].
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   416
    ^ testCaseClassGeneratorHolder
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   417
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   418
    "Created: / 25-04-2010 / 16:01:28 / cg"
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   419
!
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   420
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   421
testCaseSourceHolder
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   422
    testCaseSourceHolder isNil ifTrue:[
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   423
        testCaseSourceHolder := ValueHolder new.
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   424
    ].
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   425
    ^ testCaseSourceHolder
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   426
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   427
    "Created: / 25-04-2010 / 15:53:07 / cg"
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   428
!
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   429
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   430
testeeMethodListHolder
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   431
    testeeMethodListHolder isNil ifTrue:[
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   432
        testeeMethodListHolder := ValueHolder new.
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   433
    ].
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   434
    ^ testeeMethodListHolder
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   435
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   436
    "Created: / 25-04-2010 / 14:05:25 / cg"
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   437
! !
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   438
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   439
!TestTester methodsFor:'initialization'!
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   440
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   441
postBuildDiffTextView:aView
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   442
    diffTextView := aView
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   443
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   444
    "Created: / 26-04-2010 / 10:36:42 / cg"
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   445
!
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   446
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   447
postBuildTestCaseClassList:aSubCanvas
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   448
    |classGenerator|
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   449
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   450
    classGenerator := 
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   451
        Iterator 
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   452
            on:[:whatToDo |
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   453
                TestCase allSubclasses 
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   454
                    select:[:cls | cls isAbstract not]
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   455
                    thenDo:[:cls |
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   456
                        whatToDo
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   457
                            value:cls
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   458
                    ].
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   459
            ].
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   460
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   461
    self testCaseClassGeneratorHolder value:classGenerator
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   462
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   463
    "Modified: / 25-04-2010 / 16:04:44 / cg"
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   464
!
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   465
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   466
postBuildTestCaseMethodList:aSubCanvas
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   467
    testCaseMethodListApp := aSubCanvas
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   468
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   469
    "Created: / 25-04-2010 / 13:51:42 / cg"
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   470
!
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   471
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   472
postBuildTestedClassList:aSubCanvas
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   473
    testeeClassListApp := aSubCanvas
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   474
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   475
    "Modified: / 25-04-2010 / 13:50:41 / cg"
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   476
!
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   477
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   478
postBuildTestedMethodList:aSubCanvas
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   479
    testeeMethodListApp := aSubCanvas
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   480
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   481
    "Created: / 25-04-2010 / 13:50:58 / cg"
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   482
!
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   483
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   484
postBuildWith:aBuilder
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   485
    "/ testCaseClassListApp inGeneratorHolder:[ Smalltalk allClasses ]
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   486
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   487
    "Created: / 25-04-2010 / 13:47:59 / cg"
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   488
! !
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   489
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   490
!TestTester methodsFor:'menu actions'!
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   491
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   492
menuRunCheck
214
1d33c415f378 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   493
    selectedTestCaseClass isNil ifTrue:[
1d33c415f378 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   494
        Dialog information:'No TestCase class selected'.
1d33c415f378 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   495
        ^ self.
1d33c415f378 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   496
    ].
1d33c415f378 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   497
1d33c415f378 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   498
    (AbortOperationRequest , TestSuiteIncompleteError) handle:[:ex |
1d33c415f378 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   499
        ex signal == TestSuiteIncompleteError ifTrue:[
1d33c415f378 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   500
            self mutatedMethodSourceHolder value:ex parameter.
1d33c415f378 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   501
        ].
210
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   502
        self infoLabelHolder value:ex errorString.
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   503
    ] do:[
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   504
        self withWaitCursorDo:[
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   505
            self infoLabelHolder value:'Running Suite...'.
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   506
            self 
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   507
                testMethod:(selectedTesteeMethod)
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   508
                usingTest:selectedTestCaseClass.
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   509
            self infoLabelHolder value:nil.
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   510
        ].
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   511
        self mutatedMethodSourceHolder value:nil.
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   512
    ].
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   513
    self updateDiffTextView.
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   514
214
1d33c415f378 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   515
    "Modified: / 27-04-2010 / 09:46:09 / cg"
210
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   516
!
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   517
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   518
openAboutThisApplication
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   519
    "This method was generated by the Browser/CodeGeneratorTool.
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   520
     It will be invoked when the menu-item 'help-about' is selected."
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   521
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   522
    "/ could open a customized aboutBox here ...
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   523
    super openAboutThisApplication
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   524
!
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   525
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   526
openDocumentation
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   527
    "This method was generated by the Browser/CodeGeneratorTool.
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   528
     It will be invoked when the menu-item 'help-documentation' is selected."
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   529
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   530
    "/ change below as required ...
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   531
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   532
    "/ to open an HTML viewer on some document (under 'doc/online/<language>/' ):
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   533
    self openDocumentationFile:'TOP.html'.
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   534
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   535
    "/ add application-specific help files under the 'doc/online/<language>/help/appName'
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   536
    "/ directory, and open a viewer with:
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   537
    "/ self openDocumentationFile:'help/<MyApplication>/TOP.html'.
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   538
! !
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   539
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   540
!TestTester methodsFor:'misc'!
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   541
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   542
showAllClassesInNameSpaceOrganisation
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   543
    ^ true
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   544
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   545
    "Created: / 25-04-2010 / 13:56:24 / cg"
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   546
! !
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   547
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   548
!TestTester methodsFor:'testing methods'!
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   549
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   550
testMethod:aMethod using:selector fromTest:aTestCaseClass
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   551
    "motivation:
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   552
        assuming that aTestCase is a good test for aMethod,
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   553
        any change in aMethod should be rewarded by a failing testRun."
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   554
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   555
    ^ self
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   556
        testMethod:aMethod 
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   557
        usingTest:aTestCaseClass 
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   558
        selectors:(aTestCaseClass testSelectors)
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   559
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   560
    "Modified: / 24-04-2010 / 14:03:57 / cg"
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   561
!
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   562
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   563
testMethod:aMethod usingSuite:aTestSuite 
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   564
    |tree newSource methodClass methodSelector|
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   565
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   566
    numberOfTriedMutations := 0.
214
1d33c415f378 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   567
    maxTestExecutionTime := nil.
210
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   568
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   569
    methodClass := aMethod mclass.
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   570
    methodSelector := aMethod selector.
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   571
214
1d33c415f378 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   572
    self mutatedMethodSourceHolder value:nil.
1d33c415f378 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   573
210
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   574
    AssertionFailedError handle:[:ex |
214
1d33c415f378 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   575
        TestSuiteIncompleteError
210
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   576
            raiseWith:aMethod source
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   577
            errorString:'Test failed for original'.
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   578
    ] do:[
212
782c58353d60 changed:
Claus Gittinger <cg@exept.de>
parents: 210
diff changeset
   579
        self infoLabelHolder value:'Running Suite on original code...'.
210
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   580
        self runSuiteExpectingSuccess:aTestSuite.
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   581
    ].
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   582
    tree := RBParser parseMethod:(aMethod source) onError:[:str :pos | nil ].
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   583
    tree isNil ifTrue:[
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   584
        self error:'cannot parse method'.
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   585
    ].
214
1d33c415f378 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   586
    tree source:nil.
1d33c415f378 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   587
210
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   588
    "/ just to make sure: check if compiled method behaves the same
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   589
    newSource := tree formattedCode.
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   590
    self withCode:newSource installedAs:methodSelector inClass:methodClass do:[:newMethod |
214
1d33c415f378 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   591
        AssertionFailedError handle:[:ex |
1d33c415f378 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   592
            TestSuiteIncompleteError
1d33c415f378 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   593
                raiseWith:aMethod source
1d33c415f378 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   594
                errorString:'Test failed for original'.
1d33c415f378 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   595
        ] do:[
1d33c415f378 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   596
            self infoLabelHolder value:'Running Suite on original code again...'.
1d33c415f378 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   597
            self runSuiteExpectingSuccess:aTestSuite.
1d33c415f378 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   598
        ]
210
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   599
    ].
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   600
212
782c58353d60 changed:
Claus Gittinger <cg@exept.de>
parents: 210
diff changeset
   601
    self originalMethodSourceHolder value:newSource.
782c58353d60 changed:
Claus Gittinger <cg@exept.de>
parents: 210
diff changeset
   602
    self mutatedMethodSourceHolder value:newSource.
782c58353d60 changed:
Claus Gittinger <cg@exept.de>
parents: 210
diff changeset
   603
    self updateDiffTextView.
782c58353d60 changed:
Claus Gittinger <cg@exept.de>
parents: 210
diff changeset
   604
210
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   605
    "/ start to fiddle with the code; the tests MUST detect each !!
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   606
    self mutationsOf:tree do:[:modifiedTree |
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   607
        newSource := modifiedTree formattedCode.
212
782c58353d60 changed:
Claus Gittinger <cg@exept.de>
parents: 210
diff changeset
   608
        self mutatedMethodSourceHolder value:newSource.
782c58353d60 changed:
Claus Gittinger <cg@exept.de>
parents: 210
diff changeset
   609
        self updateDiffTextView.
782c58353d60 changed:
Claus Gittinger <cg@exept.de>
parents: 210
diff changeset
   610
210
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   611
        self withCode:newSource installedAs:methodSelector inClass:methodClass do:[:newMethod |
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   612
            AssertionFailedError handle:[:ex |
214
1d33c415f378 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   613
                TestSuiteIncompleteError 
210
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   614
                    raiseWith:newSource
212
782c58353d60 changed:
Claus Gittinger <cg@exept.de>
parents: 210
diff changeset
   615
                    errorString:ex errorString.
210
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   616
            ] do:[
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   617
                numberOfTriedMutations := numberOfTriedMutations + 1.
212
782c58353d60 changed:
Claus Gittinger <cg@exept.de>
parents: 210
diff changeset
   618
                self infoLabelHolder value:('Running Suite on mutation %1...' bindWith:numberOfTriedMutations).
210
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   619
                self runSuiteExpectingFailure:aTestSuite.
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   620
            ]
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   621
        ].
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   622
    ].
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   623
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   624
    "
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   625
     self new
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   626
        testMethod:(Integer >> #factorial)
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   627
        usingTest:RegressionTests::IntegerTest
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   628
        selector:#testFactorial
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   629
    "
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   630
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   631
    "Created: / 24-04-2010 / 14:06:07 / cg"
214
1d33c415f378 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   632
    "Modified: / 27-04-2010 / 09:41:14 / cg"
210
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   633
!
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   634
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   635
testMethod:aMethod usingTest:aTestCaseClass
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   636
    "motivation:
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   637
        assuming that aTestCase is a good test for aMethod,
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   638
        any change in aMethod should be rewarded by a failing testRun."
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   639
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   640
    ^ self
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   641
        testMethod:aMethod 
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   642
        usingTest:aTestCaseClass 
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   643
        selectors:(aTestCaseClass testSelectors)
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   644
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   645
    "
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   646
     self new 
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   647
        testMethod:(Integer >> #factorial)
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   648
        usingTest:RegressionTests::IntegerTest
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   649
    "
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   650
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   651
    "Created: / 25-04-2010 / 16:29:22 / cg"
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   652
!
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   653
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   654
testMethod:aMethod usingTest:aTestCaseClass selector:selector
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   655
    "motivation:
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   656
        assuming that aTestCase is a good test for aMethod,
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   657
        any change in aMethod should be rewarded by a failing testRun."
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   658
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   659
    ^ self
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   660
        testMethod:aMethod 
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   661
        usingTest:aTestCaseClass 
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   662
        selectors:(Array with:selector)
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   663
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   664
    "
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   665
     self new 
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   666
        testMethod:(Integer >> #factorial)
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   667
        usingTest:RegressionTests::IntegerTest
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   668
        selector:#testFactorial
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   669
    "
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   670
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   671
    "Created: / 24-04-2010 / 13:59:18 / cg"
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   672
!
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   673
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   674
testMethod:aMethod usingTest:aTestCaseClass selectors:collectionOfSelectors
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   675
    "motivation:
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   676
        assuming that aTestCase is a good test for aMethod,
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   677
        any change in aMethod should be rewarded by a failing testRun."
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   678
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   679
    |suite|
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   680
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   681
    suite := TestSuite new.
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   682
    collectionOfSelectors do:[:selector |
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   683
        suite 
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   684
            addTest: (aTestCaseClass selector: selector).
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   685
    ].
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   686
    ^ self testMethod:aMethod usingSuite:suite
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   687
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   688
    "
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   689
     self new 
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   690
        testMethod:(Integer >> #factorial)
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   691
        usingTest:RegressionTests::IntegerTest
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   692
        selector:#testFactorial
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   693
    "
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   694
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   695
    "Created: / 24-04-2010 / 14:03:09 / cg"
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   696
! !
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   697
214
1d33c415f378 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   698
!TestTester methodsFor:'testing-helpers'!
1d33c415f378 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   699
1d33c415f378 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   700
mutationsOf:aTree do:aBlock
1d33c415f378 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   701
    (Mutator new) mutationsOf:aTree do:aBlock
1d33c415f378 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   702
    "/ aTree acceptVisitor:(Mutator forBlock:aBlock).
1d33c415f378 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   703
1d33c415f378 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   704
    "
1d33c415f378 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   705
     self new
1d33c415f378 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   706
        testMethod:(Integer >> #factorial)
1d33c415f378 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   707
        usingTest:RegressionTests::IntegerTest
1d33c415f378 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   708
        selector:#testFactorial
1d33c415f378 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   709
    "
1d33c415f378 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   710
1d33c415f378 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   711
    "Created: / 24-04-2010 / 16:22:51 / cg"
1d33c415f378 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   712
    "Modified: / 24-04-2010 / 18:12:48 / cg"
1d33c415f378 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   713
!
1d33c415f378 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   714
1d33c415f378 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   715
runSuite:aTestSuite 
1d33c415f378 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   716
    |t timedOut result|
1d33c415f378 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   717
1d33c415f378 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   718
    timedOut := false.
1d33c415f378 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   719
1d33c415f378 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   720
    t := Time millisecondsToRun:[
1d33c415f378 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   721
        maxTestExecutionTime isNil ifTrue:[
1d33c415f378 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   722
            result := aTestSuite run.
1d33c415f378 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   723
        ] ifFalse:[
1d33c415f378 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   724
            [
1d33c415f378 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   725
                result := aTestSuite run.
1d33c415f378 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   726
            ] valueWithWatchDog:[ timedOut := true ] afterMilliseconds:(maxTestExecutionTime * 5).
1d33c415f378 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   727
        ].
1d33c415f378 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   728
    ].
1d33c415f378 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   729
    timedOut ifTrue:[ TimeoutError raiseErrorString:'Timeout - code possibly ran into endless loop ?'].
1d33c415f378 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   730
    maxTestExecutionTime := (maxTestExecutionTime ? t) max:t.
1d33c415f378 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   731
    ^ result
1d33c415f378 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   732
1d33c415f378 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   733
    "Created: / 27-04-2010 / 01:37:42 / cg"
1d33c415f378 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   734
    "Modified: / 27-04-2010 / 09:31:56 / cg"
1d33c415f378 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   735
!
1d33c415f378 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   736
1d33c415f378 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   737
runSuiteExpectingFailure:aTestSuite 
1d33c415f378 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   738
    |result|
1d33c415f378 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   739
1d33c415f378 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   740
    TimeoutError handle:[:ex |
1d33c415f378 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   741
        Transcript showCR:ex description.
1d33c415f378 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   742
        ^ self
1d33c415f378 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   743
    ] do:[
1d33c415f378 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   744
        result := self runSuite:aTestSuite.
1d33c415f378 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   745
    ].
1d33c415f378 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   746
1d33c415f378 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   747
    self
1d33c415f378 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   748
        assert:result runCount > 0;
1d33c415f378 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   749
        "/ assert:(result passedCount = 0) message:'test should not have passed';
1d33c415f378 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   750
        assert:((result failureCount + result errorCount) > 0) 
1d33c415f378 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   751
            message:'Some test should have failed'.
1d33c415f378 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   752
1d33c415f378 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   753
    "Created: / 24-04-2010 / 16:17:47 / cg"
1d33c415f378 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   754
    "Modified: / 27-04-2010 / 09:46:27 / cg"
1d33c415f378 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   755
!
1d33c415f378 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   756
1d33c415f378 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   757
runSuiteExpectingSuccess:aTestSuite 
1d33c415f378 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   758
    |result|
1d33c415f378 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   759
1d33c415f378 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   760
    result := self runSuite:aTestSuite.
1d33c415f378 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   761
    result errorCount > 0 ifTrue:[self halt].
1d33c415f378 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   762
1d33c415f378 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   763
    self
1d33c415f378 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   764
        assert:result runCount > 0;
1d33c415f378 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   765
        assert:(result passedCount > 0) message:'All tests should have passed';
1d33c415f378 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   766
        assert:(result failureCount = 0) message:'No test should have failed';
1d33c415f378 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   767
        assert:(result errorCount = 0) message:'No test should have errors'.
1d33c415f378 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   768
1d33c415f378 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   769
    "Modified: / 27-04-2010 / 09:46:40 / cg"
1d33c415f378 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   770
!
1d33c415f378 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   771
1d33c415f378 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   772
withCode:newSource installedAs:selector inClass:aClass do:aBlock
1d33c415f378 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   773
    |oldMethod newMethod|
1d33c415f378 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   774
1d33c415f378 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   775
    oldMethod := aClass compiledMethodAt:selector.
1d33c415f378 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   776
    newMethod := Compiler compile:newSource forClass:aClass install:false.
1d33c415f378 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   777
1d33c415f378 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   778
    [
1d33c415f378 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   779
        "/ install new method
1d33c415f378 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   780
        aClass basicAddSelector:selector withMethod:newMethod.
1d33c415f378 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   781
        aBlock value:newMethod
1d33c415f378 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   782
    ] ensure:[
1d33c415f378 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   783
        "/ restore original method
1d33c415f378 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   784
        aClass basicAddSelector:selector withMethod:oldMethod.
1d33c415f378 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   785
    ].
1d33c415f378 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   786
1d33c415f378 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   787
    "Created: / 24-04-2010 / 16:26:00 / cg"
1d33c415f378 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   788
! !
1d33c415f378 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   789
210
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   790
!TestTester methodsFor:'user actions'!
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   791
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   792
selectedTestCaseClassesChanged
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   793
    selectedTestCaseClass := selectedTestCaseClasses value firstIfEmpty:nil.
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   794
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   795
    "Created: / 25-04-2010 / 16:25:18 / cg"
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   796
!
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   797
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   798
selectedTesteeClassesChanged
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   799
    |methodGenerator|
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   800
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   801
    methodGenerator := 
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   802
        Iterator 
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   803
            on:[:whatToDo |
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   804
                |methodClass|
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   805
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   806
                methodClass := self selectedTesteeClasses value first.
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   807
                methodClass methodDictionary
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   808
                    keysAndValuesDo:[:methodSelector :method |
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   809
                        whatToDo
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   810
                            value:methodClass
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   811
                            value:method category
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   812
                            value:methodSelector
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   813
                            value:method.
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   814
                    ].
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   815
            ].
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   816
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   817
    self testeeMethodListHolder value:methodGenerator
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   818
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   819
    "Modified: / 25-04-2010 / 15:48:04 / cg"
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   820
!
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   821
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   822
selectedTesteeMethodsChanged
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   823
    |methods method source|
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   824
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   825
    methods := self selectedTesteeMethods value.
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   826
    methods notEmpty ifTrue:[
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   827
        method := methods first.
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   828
        source := method source.
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   829
    ].
214
1d33c415f378 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   830
    selectedTesteeMethod ~~ method ifTrue:[
1d33c415f378 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   831
        (self originalMethodSourceHolder value) ~= source ifTrue:[
1d33c415f378 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   832
            selectedTesteeMethod := method.
1d33c415f378 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   833
"/ self halt.
1d33c415f378 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   834
            self originalMethodSourceHolder value:source.
215
6db48dedef3a changed: #selectedTesteeMethodsChanged
Claus Gittinger <cg@exept.de>
parents: 214
diff changeset
   835
            self mutatedMethodSourceHolder value:nil.
210
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   836
214
1d33c415f378 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   837
            self updateDiffTextView.
1d33c415f378 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   838
        ].
1d33c415f378 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   839
    ].
210
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   840
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   841
    "Created: / 25-04-2010 / 15:51:03 / cg"
215
6db48dedef3a changed: #selectedTesteeMethodsChanged
Claus Gittinger <cg@exept.de>
parents: 214
diff changeset
   842
    "Modified: / 27-04-2010 / 09:54:19 / cg"
210
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   843
!
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   844
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   845
updateDiffTextView
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   846
    diffTextView 
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   847
        text1:(self originalMethodSourceHolder value ? '')
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   848
        text2:(self mutatedMethodSourceHolder value ? '').
212
782c58353d60 changed:
Claus Gittinger <cg@exept.de>
parents: 210
diff changeset
   849
    self windowGroup repairDamage.
210
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   850
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   851
    "Created: / 26-04-2010 / 10:38:39 / cg"
212
782c58353d60 changed:
Claus Gittinger <cg@exept.de>
parents: 210
diff changeset
   852
    "Modified: / 26-04-2010 / 12:19:26 / cg"
210
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   853
! !
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   854
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   855
!TestTester::Mutator class methodsFor:'instance creation'!
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   856
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   857
forBlock:aBlock
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   858
    ^ self new blockToCall:aBlock
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   859
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   860
    "Created: / 24-04-2010 / 16:55:24 / cg"
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   861
! !
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   862
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   863
!TestTester::Mutator methodsFor:'accessing'!
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   864
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   865
blockToCall:something
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   866
    blockToCall := something.
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   867
! !
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   868
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   869
!TestTester::Mutator methodsFor:'mutating'!
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   870
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   871
mutationsOf:aTree do:aBlock
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   872
    blockToCall := aBlock.
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   873
    treeTop := aTree.
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   874
    aTree acceptVisitor:self.
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   875
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   876
    "Created: / 24-04-2010 / 17:12:19 / cg"
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   877
    "Modified: / 24-04-2010 / 19:02:24 / cg"
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   878
! !
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   879
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   880
!TestTester::Mutator methodsFor:'visiting'!
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   881
214
1d33c415f378 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   882
acceptAssignmentNode:anAssignmentNode
1d33c415f378 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   883
    |oldExpr|
1d33c415f378 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   884
1d33c415f378 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   885
    oldExpr := anAssignmentNode value.
1d33c415f378 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   886
    [
1d33c415f378 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   887
        (self class new) mutationsOf:oldExpr do:[:newExpr |
1d33c415f378 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   888
            anAssignmentNode value:newExpr.
1d33c415f378 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   889
            blockToCall value:treeTop.
1d33c415f378 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   890
        ].
1d33c415f378 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   891
    ] ensure:[
1d33c415f378 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   892
        anAssignmentNode value:oldExpr
1d33c415f378 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   893
    ].
1d33c415f378 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   894
1d33c415f378 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   895
    "Created: / 27-04-2010 / 00:32:14 / cg"
1d33c415f378 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   896
!
1d33c415f378 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   897
210
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   898
acceptBlockNode:aBlockNode
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   899
    self acceptMethodOrBlockNode:aBlockNode
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   900
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   901
    "Modified: / 24-04-2010 / 19:06:49 / cg"
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   902
!
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   903
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   904
acceptLiteralNode:aLiteralNode
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   905
    |oldValue|
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   906
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   907
    oldValue := aLiteralNode value.
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   908
    oldValue isInteger ifTrue:[
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   909
        [
214
1d33c415f378 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   910
            Transcript showCR:('Replacing value %1 with: %2' bindWith:oldValue with:oldValue+1).
210
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   911
            aLiteralNode token value:oldValue + 1.
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   912
            blockToCall value:treeTop.
214
1d33c415f378 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   913
            Transcript showCR:('Replacing value %1 with: %2' bindWith:oldValue with:oldValue-1).
210
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   914
            aLiteralNode token value:oldValue - 1.
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   915
            blockToCall value:treeTop.
214
1d33c415f378 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   916
            ((oldValue ~= 1) and:[oldValue ~= -1 and:[oldValue ~= 0]]) ifTrue:[
1d33c415f378 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   917
                Transcript showCR:('Replacing value %1 with: %2' bindWith:oldValue with:0).
210
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   918
                aLiteralNode token value:0.
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   919
                blockToCall value:treeTop.                
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   920
            ].
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   921
        ] ensure:[
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   922
            aLiteralNode token value:oldValue.
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   923
        ].
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   924
        ^ self.
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   925
    ].
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   926
    oldValue isFloat ifTrue:[
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   927
        self halt.
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   928
        ^ self.
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   929
    ].
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   930
    oldValue isSymbol ifTrue:[
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   931
        ^ self.
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   932
    ].
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   933
    oldValue isString ifTrue:[
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   934
        ^ self.
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   935
    ].
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   936
    oldValue isArray ifTrue:[
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   937
        ^ self.
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   938
    ].
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   939
    oldValue isByteArray ifTrue:[
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   940
        self halt.
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   941
        ^ self.
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   942
    ].
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   943
self halt.
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   944
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   945
    "Created: / 25-04-2010 / 21:32:12 / cg"
214
1d33c415f378 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   946
    "Modified: / 27-04-2010 / 09:45:18 / cg"
210
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   947
!
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   948
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   949
acceptMessageNode:aMessageNode
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   950
    |selector arguments|
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   951
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   952
    selector := aMessageNode selector.
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   953
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   954
    ( #( ifTrue: ifFalse: ifTrue:ifFalse: ifFalse:ifTrue:) includes:selector) ifTrue:[
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   955
        self tryWithNegatedCondition:aMessageNode.
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   956
    ].
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   957
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   958
    arguments := aMessageNode arguments.
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   959
    1 to:arguments size do:[:idx |
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   960
        |oldArg|
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   961
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   962
        oldArg := arguments at:idx.
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   963
        [
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   964
            (self class new) mutationsOf:oldArg do:[:newArg |
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   965
                arguments at:idx put:newArg.
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   966
                blockToCall value:treeTop.
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   967
            ].
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   968
        ] ensure:[
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   969
            arguments at:idx put:oldArg
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   970
        ].
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   971
    ].
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   972
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   973
    "Modified: / 24-04-2010 / 19:07:22 / cg"
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   974
!
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   975
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   976
acceptMethodNode:aMethodNode
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   977
    self acceptMethodOrBlockNode:aMethodNode
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   978
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   979
    "Modified: / 24-04-2010 / 19:06:44 / cg"
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   980
!
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   981
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   982
acceptMethodOrBlockNode:aMethodOrBlockNode
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   983
    |oldBody|
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   984
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   985
    oldBody := aMethodOrBlockNode body.
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   986
    oldBody notNil ifTrue:[
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   987
        [
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   988
            (self class new) mutationsOf:oldBody do:[:newBody |
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   989
                aMethodOrBlockNode body:newBody.
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   990
                blockToCall value:treeTop.
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   991
            ].
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   992
        ] ensure:[
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   993
            aMethodOrBlockNode body:oldBody
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   994
        ].
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   995
    ].
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   996
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   997
    "Created: / 24-04-2010 / 19:06:33 / cg"
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   998
!
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   999
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1000
acceptReturnNode:aReturnNode
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1001
    |oldExpr|
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1002
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1003
    oldExpr := aReturnNode value.
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1004
    [
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1005
        (self class new) mutationsOf:oldExpr do:[:newExpr |
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1006
            aReturnNode value:newExpr.
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1007
            blockToCall value:treeTop.
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1008
        ].
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1009
    ] ensure:[
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1010
        aReturnNode value:oldExpr
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1011
    ].
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1012
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1013
    "Modified: / 25-04-2010 / 21:30:13 / cg"
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1014
!
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1015
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1016
acceptSequenceNode:aSequenceNode
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1017
    |statements|
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1018
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1019
    statements := aSequenceNode statements.
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1020
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1021
    1 to:statements size do:[:idx |
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1022
        |oldStat|
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1023
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1024
        oldStat := statements at:idx.
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1025
        [
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1026
            (self class new) mutationsOf:oldStat do:[:newStat |
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1027
                statements at:idx put:newStat.
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1028
                blockToCall value:treeTop.
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1029
            ].
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1030
        ] ensure:[
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1031
            statements at:idx put:oldStat
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1032
        ].
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1033
    ].
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1034
"/    |oldBody|
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1035
"/
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1036
"/    oldBody := aMethodNode body.
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1037
"/    oldBody notNil ifTrue:[
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1038
"/        [
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1039
"/            (self class new) mutationsOf:oldBody do:[:newBody |
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1040
"/self halt.
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1041
"/            ].
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1042
"/        ] ensure:[
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1043
"/            aMethodNode body:oldBody
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1044
"/        ].
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1045
"/    ].
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1046
"/
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1047
"/    "Created: / 24-04-2010 / 16:56:12 / cg"
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1048
"/
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1049
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1050
    "Created: / 24-04-2010 / 18:23:35 / cg"
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1051
!
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1052
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1053
acceptVariableNode:aVariableNode
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1054
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1055
    "Created: / 25-04-2010 / 21:35:26 / cg"
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1056
!
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1057
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1058
tryWithNegatedCondition:aMessageNode
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1059
    |sel repl|
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1060
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1061
    sel := aMessageNode selector.
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1062
    repl := (Dictionary new 
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1063
                at: #ifTrue: put: #ifFalse: ;
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1064
                at: #ifFalse: put: #ifTrue: ;
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1065
                at: #ifTrue:ifFalse: put: #ifFalse:ifTrue: ;
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1066
                at: #ifFalse:ifTrue: put: #ifTrue:ifFalse: ;
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1067
                yourself)
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1068
                    at:sel.
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1069
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1070
    [
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1071
        aMessageNode selector:repl.
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1072
        blockToCall value:treeTop.
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1073
    ] ensure:[
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1074
        aMessageNode selector:sel.
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1075
    ].
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1076
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1077
    "Modified: / 24-04-2010 / 19:03:44 / cg"
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1078
! !
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1079
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1080
!TestTester class methodsFor:'documentation'!
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1081
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1082
version_CVS
215
6db48dedef3a changed: #selectedTesteeMethodsChanged
Claus Gittinger <cg@exept.de>
parents: 214
diff changeset
  1083
    ^ '$Header: /cvs/stx/stx/goodies/sunit/TestTester.st,v 1.4 2010-04-27 08:48:09 cg Exp $'
210
ad9023a2e70e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1084
! !