quickSelfTest/SelfTest.st
author sr
Mon, 27 Mar 2017 15:39:25 +0200
branchexpecco_2_11_0
changeset 331 684e2bfb46f4
parent 327 8e05bbea7b0a
permissions -rw-r--r--
*** empty log message ***
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
90bba565014c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     1
"/
87
432ff6d3a032 Add --debug
Stefan Vogel <sv@exept.de>
parents: 50
diff changeset
     2
"/ runs a number of tests from the exept:regression package (see list below)
0
90bba565014c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     3
"/ execute this script using the following command line:
90bba565014c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     4
"/
8
7a691ced6334 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7
diff changeset
     5
"/ stx --noBanner -I --execute SelfTest.st
309
8061d7da3fc3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 306
diff changeset
     6
"/
310
1fecaf68f3b4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 309
diff changeset
     7
"/   use
1fecaf68f3b4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 309
diff changeset
     8
"/      --debug to debug failed test cases.
1fecaf68f3b4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 309
diff changeset
     9
"/      --skipTests to skip tests
1fecaf68f3b4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 309
diff changeset
    10
"/      --skipMetrics to metric reports tests
0
90bba565014c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    11
"/
309
8061d7da3fc3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 306
diff changeset
    12
"/ To use with jenkins (+ jUnit plugin):
8
7a691ced6334 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7
diff changeset
    13
"/ use the following buildscript (in jenkins):
3
62bd5f071940 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2
diff changeset
    14
"/ (after checkout of stx)
62bd5f071940 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2
diff changeset
    15
"/      cd stx
62bd5f071940 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2
diff changeset
    16
"/      call bmake
62bd5f071940 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2
diff changeset
    17
"/      cd goodies\selftest
62bd5f071940 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2
diff changeset
    18
"/      ..\..\projects\smalltalk\stx.com --noBanner -I --execute SelfTest.st
62bd5f071940 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2
diff changeset
    19
"/
33
834083803fbb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 29
diff changeset
    20
"/ and configure the jenkins junit plugin, to scan for "testresult.xml"
309
8061d7da3fc3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 306
diff changeset
    21
"/ ------------------------------------------------------------------------------------
3
62bd5f071940 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2
diff changeset
    22
34
ad3c00505135 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 33
diff changeset
    23
"/ tell the system, where stx is...
ad3c00505135 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 33
diff changeset
    24
ParserFlags initializeSTCFlagsForTopDirectory:'../../..'.
ad3c00505135 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 33
diff changeset
    25
0
90bba565014c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    26
Object infoPrinting:false.
90bba565014c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    27
ObjectMemory infoPrinting:false.
309
8061d7da3fc3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 306
diff changeset
    28
8061d7da3fc3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 306
diff changeset
    29
"/ install a global handler, which suppresses the updating of the change file
0
90bba565014c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    30
Processor activeProcess exceptionHandlerSet
90bba565014c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    31
    on:(Class updateChangeFileQuerySignal)
90bba565014c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    32
    do:[:ex | ex proceedWith:false ].
90bba565014c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    33
!
90bba565014c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    34
9
99d5004cb28f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8
diff changeset
    35
Stdout showCR:'Selftest Started'.
0
90bba565014c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    36
!
90bba565014c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    37
306
27c40eee1d2b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 301
diff changeset
    38
Smalltalk packagePath addFirst:'../../../..'.
309
8061d7da3fc3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 306
diff changeset
    39
8061d7da3fc3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 306
diff changeset
    40
"/ ensure that some packages are present
9
99d5004cb28f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8
diff changeset
    41
Stdout showCR:'Loading sunit...'.
0
90bba565014c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    42
Smalltalk loadPackage:'stx:goodies/sunit'.
297
a850936897fd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 130
diff changeset
    43
self assert:(TestCase notNil and:[TestCase isLoaded]) message:'[Error]: Missing TestCase class after sunit package load'.
0
90bba565014c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    44
22
1d4731483660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 21
diff changeset
    45
"/ Smalltalk loadPackage:'stx:goodies/xml/vw'.
1d4731483660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 21
diff changeset
    46
"/ Smalltalk loadPackage:'stx:goodies/xml/stx'.
87
432ff6d3a032 Add --debug
Stefan Vogel <sv@exept.de>
parents: 50
diff changeset
    47
Smalltalk loadPackage:'stx:libcompat'.
47
f3f0f1f50918 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 44
diff changeset
    48
Smalltalk loadPackage:'stx:libjavascript'.
10
5b2afc26ab21 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9
diff changeset
    49
!
5b2afc26ab21 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9
diff changeset
    50
301
34fb6cfb5862 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 298
diff changeset
    51
|suite result debugging|
0
90bba565014c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    52
15
cc7adbd216be *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 12
diff changeset
    53
Stdout showCR:'Creating suite...'.
4
4674a8d2574e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3
diff changeset
    54
suite := TestSuite named:'SelfTest'.
23
7dcd34b06222 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 22
diff changeset
    55
7dcd34b06222 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 22
diff changeset
    56
Stdout showCR:'Loading regression tests...'.
130
ae4a40e279d6 List of tests moved to one place so it is always the same for all three test runners (sigh, we have three different!)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 116
diff changeset
    57
327
8e05bbea7b0a *** empty log message ***
sr
parents: 314
diff changeset
    58
"To add a new test please edit stx_goodies_regression>>testCaseNamesWithoutNamespace"
8e05bbea7b0a *** empty log message ***
sr
parents: 314
diff changeset
    59
Smalltalk fileInClass:#'stx_goodies_regression' package:'stx:goodies/regression'.
8e05bbea7b0a *** empty log message ***
sr
parents: 314
diff changeset
    60
(Smalltalk at: #'stx_goodies_regression') isNil ifTrue:[
8e05bbea7b0a *** empty log message ***
sr
parents: 314
diff changeset
    61
    Stdout showCR:('ERROR: Ouch - missing class: "stx_goodies_regression"').
130
ae4a40e279d6 List of tests moved to one place so it is always the same for all three test runners (sigh, we have three different!)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 116
diff changeset
    62
    Smalltalk exit: 1.
ae4a40e279d6 List of tests moved to one place so it is always the same for all three test runners (sigh, we have three different!)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 116
diff changeset
    63
].
306
27c40eee1d2b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 301
diff changeset
    64
327
8e05bbea7b0a *** empty log message ***
sr
parents: 314
diff changeset
    65
(Smalltalk at: #'stx_goodies_regression') testCaseNamesWithoutNamespace do:[:className |
23
7dcd34b06222 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 22
diff changeset
    66
    |fullName|
7dcd34b06222 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 22
diff changeset
    67
7dcd34b06222 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 22
diff changeset
    68
    fullName := ('RegressionTests::',className).
306
27c40eee1d2b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 301
diff changeset
    69
    Stdout showCR:('  loading ',className,'...').
27c40eee1d2b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 301
diff changeset
    70
    Error handle:[:ex |
27c40eee1d2b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 301
diff changeset
    71
	Stdout showCR:('**** Ouch - error while loading class: "',className,'"').
27c40eee1d2b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 301
diff changeset
    72
    ] do:[
327
8e05bbea7b0a *** empty log message ***
sr
parents: 314
diff changeset
    73
	Smalltalk fileInClass:fullName package:'stx:goodies/regression'.
306
27c40eee1d2b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 301
diff changeset
    74
    ].
95
51749adb285f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 94
diff changeset
    75
    (Smalltalk classNamed:fullName) isNil ifTrue:[
51749adb285f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 94
diff changeset
    76
	Stdout showCR:('**** Ouch - missing class: "',fullName,'"').
51749adb285f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 94
diff changeset
    77
    ] ifFalse:[
51749adb285f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 94
diff changeset
    78
	suite addTest:(Smalltalk classNamed:fullName) suite.
51749adb285f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 94
diff changeset
    79
    ]
23
7dcd34b06222 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 22
diff changeset
    80
].
4
4674a8d2574e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3
diff changeset
    81
310
1fecaf68f3b4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 309
diff changeset
    82
"/
1fecaf68f3b4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 309
diff changeset
    83
"/ run the suite
1fecaf68f3b4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 309
diff changeset
    84
"/
311
83f952e15a2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 310
diff changeset
    85
(Smalltalk commandLineArguments includes:'--skipTests') ifTrue:[
310
1fecaf68f3b4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 309
diff changeset
    86
    Stdout showCR:'Skipping suite.'.
1fecaf68f3b4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 309
diff changeset
    87
] ifFalse:[
1fecaf68f3b4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 309
diff changeset
    88
    Stdout showCR:'Running suite...'.
311
83f952e15a2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 310
diff changeset
    89
    debugging := (Smalltalk commandLineArguments includes:'--debug').
310
1fecaf68f3b4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 309
diff changeset
    90
    result := suite
1fecaf68f3b4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 309
diff changeset
    91
		run:TestResultStX new
1fecaf68f3b4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 309
diff changeset
    92
		beforeEachDo:[:test |
1fecaf68f3b4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 309
diff changeset
    93
		    Stdout showCR:('- running ',test printString).
1fecaf68f3b4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 309
diff changeset
    94
		]
1fecaf68f3b4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 309
diff changeset
    95
		afterEachDo:[:test|
1fecaf68f3b4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 309
diff changeset
    96
		    Stdout showCR:('- done ',test printString).
1fecaf68f3b4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 309
diff changeset
    97
		]
1fecaf68f3b4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 309
diff changeset
    98
		debug:debugging.
23
7dcd34b06222 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 22
diff changeset
    99
310
1fecaf68f3b4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 309
diff changeset
   100
    Stdout showCR:'Generating report...'.
1fecaf68f3b4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 309
diff changeset
   101
    TestResultReporter
1fecaf68f3b4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 309
diff changeset
   102
	report:result
1fecaf68f3b4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 309
diff changeset
   103
	format:#xml_jUnit
1fecaf68f3b4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 309
diff changeset
   104
	as:'testresult.xml'.
38
2ce19e2a6095 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 34
diff changeset
   105
310
1fecaf68f3b4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 309
diff changeset
   106
    Stdout showCR:'Summary:'.
1fecaf68f3b4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 309
diff changeset
   107
    Stdout showCR:('  %1 tests;' bindWith:result runCount).
1fecaf68f3b4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 309
diff changeset
   108
    Stdout show:('  %1 passed,' bindWith:result passedCount).
1fecaf68f3b4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 309
diff changeset
   109
    Stdout show:(' %1 failed,' bindWith:result failureCount).
1fecaf68f3b4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 309
diff changeset
   110
    Stdout showCR:(' %1 errors.' bindWith:result errorCount).
1fecaf68f3b4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 309
diff changeset
   111
].
98
b703917814f9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 96
diff changeset
   112
331
684e2bfb46f4 *** empty log message ***
sr
parents: 327
diff changeset
   113
!