quickSelfTest/SelfTest.st
author Claus Gittinger <cg@exept.de>
Thu, 03 Mar 2016 18:25:02 +0100
changeset 297 a850936897fd
parent 130 ae4a40e279d6
child 298 a170cf03d2b0
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
87
432ff6d3a032 Add --debug
Stefan Vogel <sv@exept.de>
parents: 50
diff changeset
     6
"/   use --debug to debug failed test cases.
0
90bba565014c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     7
"/
47
f3f0f1f50918 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 44
diff changeset
     8
"/ to use with jenkins (+ jUnit plugin):
8
7a691ced6334 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7
diff changeset
     9
"/ use the following buildscript (in jenkins):
3
62bd5f071940 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2
diff changeset
    10
"/ (after checkout of stx)
62bd5f071940 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2
diff changeset
    11
"/      cd stx
62bd5f071940 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2
diff changeset
    12
"/      call bmake
62bd5f071940 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2
diff changeset
    13
"/      cd goodies\selftest
62bd5f071940 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2
diff changeset
    14
"/      ..\..\projects\smalltalk\stx.com --noBanner -I --execute SelfTest.st
62bd5f071940 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2
diff changeset
    15
"/
33
834083803fbb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 29
diff changeset
    16
"/ and configure the jenkins junit plugin, to scan for "testresult.xml"
3
62bd5f071940 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2
diff changeset
    17
34
ad3c00505135 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 33
diff changeset
    18
"/ tell the system, where stx is...
ad3c00505135 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 33
diff changeset
    19
ParserFlags initializeSTCFlagsForTopDirectory:'../../..'.
ad3c00505135 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 33
diff changeset
    20
0
90bba565014c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    21
Object infoPrinting:false.
90bba565014c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    22
ObjectMemory infoPrinting:false.
90bba565014c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    23
Processor activeProcess exceptionHandlerSet
90bba565014c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    24
    on:(Class updateChangeFileQuerySignal)
90bba565014c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    25
    do:[:ex | ex proceedWith:false ].
90bba565014c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    26
!
90bba565014c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    27
9
99d5004cb28f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8
diff changeset
    28
Stdout showCR:'Selftest Started'.
0
90bba565014c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    29
!
90bba565014c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    30
9
99d5004cb28f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8
diff changeset
    31
Stdout showCR:'Loading sunit...'.
0
90bba565014c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    32
Smalltalk loadPackage:'stx:goodies/sunit'.
297
a850936897fd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 130
diff changeset
    33
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
    34
22
1d4731483660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 21
diff changeset
    35
"/ Smalltalk loadPackage:'stx:goodies/xml/vw'.
1d4731483660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 21
diff changeset
    36
"/ Smalltalk loadPackage:'stx:goodies/xml/stx'.
87
432ff6d3a032 Add --debug
Stefan Vogel <sv@exept.de>
parents: 50
diff changeset
    37
Smalltalk loadPackage:'stx:libcompat'.
47
f3f0f1f50918 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 44
diff changeset
    38
Smalltalk loadPackage:'stx:libjavascript'.
10
5b2afc26ab21 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9
diff changeset
    39
!
5b2afc26ab21 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9
diff changeset
    40
27
09411309837d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 26
diff changeset
    41
|suite result|
0
90bba565014c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    42
15
cc7adbd216be *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 12
diff changeset
    43
Stdout showCR:'Creating suite...'.
4
4674a8d2574e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3
diff changeset
    44
suite := TestSuite named:'SelfTest'.
23
7dcd34b06222 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 22
diff changeset
    45
7dcd34b06222 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 22
diff changeset
    46
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
    47
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
    48
"To add a new test please edit exept_regression>>testCaseNamesWithoutNamespace"
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
    49
Smalltalk fileInClass:#'exept_regression' package:'exept:regression'.
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
    50
(Smalltalk at: #'exept_regression') isNil ifTrue:[
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
    51
    Stdout showCR:('ERROR: Ouch - missing class: "exept_regression"').
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
    52
    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
    53
].
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
    54
(Smalltalk at: #'exept_regression') testCaseNamesWithoutNamespace do:[:className |
23
7dcd34b06222 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 22
diff changeset
    55
    |fullName|
7dcd34b06222 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 22
diff changeset
    56
7dcd34b06222 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 22
diff changeset
    57
    fullName := ('RegressionTests::',className).
7dcd34b06222 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 22
diff changeset
    58
    Stdout showCR:('Loading ',className,'...').
7dcd34b06222 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 22
diff changeset
    59
    Smalltalk fileInClass:fullName package:'exept:regression'.
95
51749adb285f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 94
diff changeset
    60
    (Smalltalk classNamed:fullName) isNil ifTrue:[
51749adb285f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 94
diff changeset
    61
	Stdout showCR:('**** Ouch - missing class: "',fullName,'"').
51749adb285f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 94
diff changeset
    62
    ] ifFalse:[
51749adb285f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 94
diff changeset
    63
	suite addTest:(Smalltalk classNamed:fullName) suite.
51749adb285f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 94
diff changeset
    64
    ]
23
7dcd34b06222 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 22
diff changeset
    65
].
4
4674a8d2574e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3
diff changeset
    66
15
cc7adbd216be *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 12
diff changeset
    67
Stdout showCR:'Running suite...'.
8
7a691ced6334 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7
diff changeset
    68
result := suite
94
72ef7e71eda0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 93
diff changeset
    69
	    run:TestResultStX new beforeEachDo:[:test |
15
cc7adbd216be *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 12
diff changeset
    70
		Stdout showCR:('- running ',test printString).
87
432ff6d3a032 Add --debug
Stefan Vogel <sv@exept.de>
parents: 50
diff changeset
    71
	    ]
432ff6d3a032 Add --debug
Stefan Vogel <sv@exept.de>
parents: 50
diff changeset
    72
	    afterEachDo:[:test| ]
432ff6d3a032 Add --debug
Stefan Vogel <sv@exept.de>
parents: 50
diff changeset
    73
	    debug:(Smalltalk commandLineArgumentNamed:'--debug') notNil.
23
7dcd34b06222 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 22
diff changeset
    74
38
2ce19e2a6095 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 34
diff changeset
    75
Stdout showCR:'Generating report...'.
8
7a691ced6334 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7
diff changeset
    76
TestResultReporter
7a691ced6334 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7
diff changeset
    77
    report:result
29
fea749c05791 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 27
diff changeset
    78
    format:#xml_jUnit
8
7a691ced6334 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7
diff changeset
    79
    as:'testresult.xml'.
38
2ce19e2a6095 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 34
diff changeset
    80
2ce19e2a6095 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 34
diff changeset
    81
Stdout showCR:'Summary:'.
2ce19e2a6095 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 34
diff changeset
    82
Stdout showCR:('  %1 tests;' bindWith:result runCount).
2ce19e2a6095 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 34
diff changeset
    83
Stdout show:('  %1 passed,' bindWith:result passedCount).
2ce19e2a6095 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 34
diff changeset
    84
Stdout show:(' %1 failed,' bindWith:result failureCount).
2ce19e2a6095 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 34
diff changeset
    85
Stdout showCR:(' %1 errors.' bindWith:result errorCount).
98
b703917814f9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 96
diff changeset
    86
b703917814f9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 96
diff changeset
    87
'metrics.xml' asFilename writingFileDo:[:stream |
99
53618cf38136 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 98
diff changeset
    88
    MetricsReporter new
53618cf38136 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 98
diff changeset
    89
	stream: stream;
53618cf38136 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 98
diff changeset
    90
	packages:{
53618cf38136 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 98
diff changeset
    91
	    'stx:libbasic'       .
53618cf38136 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 98
diff changeset
    92
	    'stx:libbasic2'      .
53618cf38136 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 98
diff changeset
    93
	    'stx:libbasic3'      .
53618cf38136 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 98
diff changeset
    94
	    'stx:libcomp'        .
53618cf38136 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 98
diff changeset
    95
	    'stx:libview'        .
53618cf38136 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 98
diff changeset
    96
	    'stx:libview2'       .
53618cf38136 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 98
diff changeset
    97
	    'stx:libwidg'        .
53618cf38136 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 98
diff changeset
    98
	    'stx:libwidg2'       .
53618cf38136 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 98
diff changeset
    99
	    'stx:libtool'        .
53618cf38136 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 98
diff changeset
   100
	    'stx:libtool2'       .
53618cf38136 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 98
diff changeset
   101
	    'stx:libui'          .
53618cf38136 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 98
diff changeset
   102
	    'stx:libhtml'        .
115
2752de1c0477 *** empty log message ***
Stefan Vogel <sv@exept.de>
parents: 114
diff changeset
   103
	    'stx:goodies/xml/vw' .
99
53618cf38136 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 98
diff changeset
   104
	    'stx:goodies/soap'   .
53618cf38136 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 98
diff changeset
   105
	    'stx:libjavascript'  .
100
441430e5203a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 99
diff changeset
   106
	};
99
53618cf38136 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 98
diff changeset
   107
	classMetricNames: #();
53618cf38136 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 98
diff changeset
   108
	methodMetricNames: #();
53618cf38136 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 98
diff changeset
   109
	packageMetricNames: #( 'LOC' 'NOM' 'NOC');
53618cf38136 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 98
diff changeset
   110
	reportXml_metrics.
98
b703917814f9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 96
diff changeset
   111
].
b703917814f9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 96
diff changeset
   112
0
90bba565014c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   113
!