TestSuitesScripter.st
author convert-repo
Fri, 10 Nov 2017 04:34:57 +0000
changeset 693 7766f760b307
parent 436 1039a85f325b
child 724 4dae63fce9f9
permissions -rw-r--r--
update tags
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
9365d5753f11 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     1
"{ Package: 'stx:goodies/sunit' }"
9365d5753f11 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     2
9365d5753f11 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     3
Object subclass:#TestSuitesScripter
9365d5753f11 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     4
	instanceVariableNames:'script stream'
9365d5753f11 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     5
	classVariableNames:''
9365d5753f11 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     6
	poolDictionaries:''
6
78bb1397e43d added rerun-defect tests; fixed button enable bug
Claus Gittinger <cg@exept.de>
parents: 0
diff changeset
     7
	category:'SUnit-Base'
0
9365d5753f11 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     8
!
9365d5753f11 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     9
14
a4a5478621e3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6
diff changeset
    10
68
9fd111438d60 category renames (lower case)
Claus Gittinger <cg@exept.de>
parents: 54
diff changeset
    11
!TestSuitesScripter class methodsFor:'example'!
0
9365d5753f11 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    12
9365d5753f11 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    13
exampleScripting
9365d5753f11 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    14
	^(TestSuitesScripter script: ' "scratch suite 3" ExampleSetTest SUnitTest* ') value
9365d5753f11 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    15
9365d5753f11 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    16
    "Modified: / 21.6.2000 / 10:18:08 / Sames"
9365d5753f11 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    17
! !
9365d5753f11 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    18
184
7646dfcb90df category change
Claus Gittinger <cg@exept.de>
parents: 123
diff changeset
    19
!TestSuitesScripter class methodsFor:'initialization & release'!
0
9365d5753f11 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    20
37
6da5b7e8e3ab better update (name)
Claus Gittinger <cg@exept.de>
parents: 32
diff changeset
    21
run: testClassNameString
6da5b7e8e3ab better update (name)
Claus Gittinger <cg@exept.de>
parents: 32
diff changeset
    22
        ^self new run: testClassNameString
6
78bb1397e43d added rerun-defect tests; fixed button enable bug
Claus Gittinger <cg@exept.de>
parents: 0
diff changeset
    23
!
0
9365d5753f11 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    24
9365d5753f11 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    25
script: aString
6
78bb1397e43d added rerun-defect tests; fixed button enable bug
Claus Gittinger <cg@exept.de>
parents: 0
diff changeset
    26
	^self new setScript: aString
78bb1397e43d added rerun-defect tests; fixed button enable bug
Claus Gittinger <cg@exept.de>
parents: 0
diff changeset
    27
! !
0
9365d5753f11 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    28
68
9fd111438d60 category renames (lower case)
Claus Gittinger <cg@exept.de>
parents: 54
diff changeset
    29
!TestSuitesScripter methodsFor:'printing'!
0
9365d5753f11 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    30
9365d5753f11 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    31
printOn: aStream
9365d5753f11 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    32
	aStream nextPutAll: (script isNil 
9365d5753f11 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    33
		ifFalse: [script] 
9365d5753f11 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    34
		ifTrue: ['N/A'])
9365d5753f11 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    35
9365d5753f11 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    36
    "Created: / 21.6.2000 / 10:15:29 / Sames"
9365d5753f11 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    37
! !
9365d5753f11 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    38
68
9fd111438d60 category renames (lower case)
Claus Gittinger <cg@exept.de>
parents: 54
diff changeset
    39
!TestSuitesScripter methodsFor:'private'!
0
9365d5753f11 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    40
9365d5753f11 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    41
executeSingleSuiteScript: aString 
32
77f76ea3a7ef *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 14
diff changeset
    42
        | useHierachy realName testCase |
77f76ea3a7ef *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 14
diff changeset
    43
        aString last = $*
77f76ea3a7ef *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 14
diff changeset
    44
                ifTrue: 
77f76ea3a7ef *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 14
diff changeset
    45
                        [realName := aString copyFrom: 1 to: aString size - 1.
77f76ea3a7ef *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 14
diff changeset
    46
                        useHierachy := true]
77f76ea3a7ef *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 14
diff changeset
    47
                ifFalse: 
77f76ea3a7ef *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 14
diff changeset
    48
                        [realName := aString.
77f76ea3a7ef *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 14
diff changeset
    49
                        useHierachy := false].
77f76ea3a7ef *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 14
diff changeset
    50
        realName isEmpty ifTrue: [^nil].
54
0885c334af10 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 37
diff changeset
    51
        testCase := Smalltalk classNamed: realName asSymbol.
32
77f76ea3a7ef *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 14
diff changeset
    52
        testCase isNil ifTrue: [^nil].
77f76ea3a7ef *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 14
diff changeset
    53
        ^useHierachy
77f76ea3a7ef *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 14
diff changeset
    54
                ifTrue: [self hierachyOfTestSuitesFrom: testCase]
77f76ea3a7ef *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 14
diff changeset
    55
                ifFalse: [testCase suite]
0
9365d5753f11 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    56
9365d5753f11 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    57
    "Modified: / 21.6.2000 / 10:16:02 / Sames"
9365d5753f11 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    58
!
9365d5753f11 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    59
9365d5753f11 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    60
getNextToken
9365d5753f11 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    61
	[stream atEnd not and: [stream peek first = $"]] whileTrue: [self skipComment].
9365d5753f11 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    62
	^stream atEnd not
9365d5753f11 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    63
		ifTrue: [stream next]
9365d5753f11 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    64
		ifFalse: [nil]
9365d5753f11 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    65
9365d5753f11 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    66
    "Modified: / 21.6.2000 / 10:16:16 / Sames"
9365d5753f11 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    67
!
9365d5753f11 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    68
9365d5753f11 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    69
hierachyOfTestSuitesFrom: aTestCase 
32
77f76ea3a7ef *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 14
diff changeset
    70
        | subSuite |
77f76ea3a7ef *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 14
diff changeset
    71
        subSuite := TestSuite new.
37
6da5b7e8e3ab better update (name)
Claus Gittinger <cg@exept.de>
parents: 32
diff changeset
    72
        subSuite name:aTestCase name.
32
77f76ea3a7ef *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 14
diff changeset
    73
        subSuite addTest: aTestCase suite.
123
5fb90858d4e6 Undefined: Behavior>>sunitAsClass
Stefan Vogel <sv@exept.de>
parents: 68
diff changeset
    74
        aTestCase allSubclasses do: [:each | subSuite addTest:(Smalltalk classNamed:each name asSymbol) suite].
32
77f76ea3a7ef *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 14
diff changeset
    75
        ^subSuite
0
9365d5753f11 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    76
9365d5753f11 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    77
    "Modified: / 21.6.2000 / 10:16:29 / Sames"
9365d5753f11 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    78
!
9365d5753f11 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    79
9365d5753f11 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    80
setScript: aString
6
78bb1397e43d added rerun-defect tests; fixed button enable bug
Claus Gittinger <cg@exept.de>
parents: 0
diff changeset
    81
	script := aString
78bb1397e43d added rerun-defect tests; fixed button enable bug
Claus Gittinger <cg@exept.de>
parents: 0
diff changeset
    82
!
0
9365d5753f11 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    83
9365d5753f11 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    84
skipComment
9365d5753f11 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    85
	| token inComment |
9365d5753f11 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    86
	token := stream next.
9365d5753f11 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    87
	token size > 1 & (token last = $") ifTrue: [^nil].
9365d5753f11 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    88
	inComment := true.
9365d5753f11 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    89
	[inComment & stream atEnd not]
9365d5753f11 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    90
		whileTrue: 
9365d5753f11 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    91
			[token := stream next.
9365d5753f11 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    92
			token last = $" ifTrue: [inComment := false]]
9365d5753f11 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    93
9365d5753f11 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    94
    "Modified: / 21.6.2000 / 10:16:47 / Sames"
9365d5753f11 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    95
! !
9365d5753f11 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    96
68
9fd111438d60 category renames (lower case)
Claus Gittinger <cg@exept.de>
parents: 54
diff changeset
    97
!TestSuitesScripter methodsFor:'scripting'!
0
9365d5753f11 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    98
37
6da5b7e8e3ab better update (name)
Claus Gittinger <cg@exept.de>
parents: 32
diff changeset
    99
run: testClassNameString
32
77f76ea3a7ef *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 14
diff changeset
   100
        | suite subSuite token |
77f76ea3a7ef *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 14
diff changeset
   101
        suite := TestSuite new.
37
6da5b7e8e3ab better update (name)
Claus Gittinger <cg@exept.de>
parents: 32
diff changeset
   102
        suite name:testClassNameString.
6da5b7e8e3ab better update (name)
Claus Gittinger <cg@exept.de>
parents: 32
diff changeset
   103
6da5b7e8e3ab better update (name)
Claus Gittinger <cg@exept.de>
parents: 32
diff changeset
   104
        stream := ReadStream on: testClassNameString asArrayOfSubstrings. 
32
77f76ea3a7ef *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 14
diff changeset
   105
        [stream atEnd] whileFalse: 
77f76ea3a7ef *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 14
diff changeset
   106
                [token := self getNextToken.
77f76ea3a7ef *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 14
diff changeset
   107
                token notNil ifTrue: [
77f76ea3a7ef *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 14
diff changeset
   108
                        subSuite := self executeSingleSuiteScript: token.
77f76ea3a7ef *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 14
diff changeset
   109
                        subSuite notNil ifTrue:[suite addTest: subSuite]]].
77f76ea3a7ef *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 14
diff changeset
   110
        ^suite
0
9365d5753f11 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   111
9365d5753f11 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   112
    "Modified: / 21.6.2000 / 10:17:11 / Sames"
9365d5753f11 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   113
!
9365d5753f11 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   114
9365d5753f11 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   115
value
6
78bb1397e43d added rerun-defect tests; fixed button enable bug
Claus Gittinger <cg@exept.de>
parents: 0
diff changeset
   116
	^self run: script
78bb1397e43d added rerun-defect tests; fixed button enable bug
Claus Gittinger <cg@exept.de>
parents: 0
diff changeset
   117
! !
0
9365d5753f11 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   118
14
a4a5478621e3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6
diff changeset
   119
!TestSuitesScripter class methodsFor:'documentation'!
a4a5478621e3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6
diff changeset
   120
a4a5478621e3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6
diff changeset
   121
version
436
1039a85f325b fixed: #version_SVN ($ to §)
Claus Gittinger <cg@exept.de>
parents: 222
diff changeset
   122
    ^ '$Header: /cvs/stx/stx/goodies/sunit/TestSuitesScripter.st,v 1.11 2011-11-24 11:51:24 cg Exp $'
222
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents: 184
diff changeset
   123
!
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents: 184
diff changeset
   124
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents: 184
diff changeset
   125
version_SVN
436
1039a85f325b fixed: #version_SVN ($ to §)
Claus Gittinger <cg@exept.de>
parents: 222
diff changeset
   126
    ^ '§Id: TestSuitesScripter.st,v 1.10 2011/06/29 19:15:49 cg Exp §'
14
a4a5478621e3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6
diff changeset
   127
! !