quickSelfTest/SelfTest.st
author Claus Gittinger <cg@exept.de>
Wed, 23 Mar 2016 22:09:39 +0100
changeset 307 d3e214527be4
parent 306 27c40eee1d2b
child 309 8061d7da3fc3
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
306
27c40eee1d2b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 301
diff changeset
    31
Smalltalk packagePath addFirst:'../../../..'.
9
99d5004cb28f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8
diff changeset
    32
Stdout showCR:'Loading sunit...'.
0
90bba565014c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    33
Smalltalk loadPackage:'stx:goodies/sunit'.
297
a850936897fd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 130
diff changeset
    34
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
    35
22
1d4731483660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 21
diff changeset
    36
"/ Smalltalk loadPackage:'stx:goodies/xml/vw'.
1d4731483660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 21
diff changeset
    37
"/ Smalltalk loadPackage:'stx:goodies/xml/stx'.
87
432ff6d3a032 Add --debug
Stefan Vogel <sv@exept.de>
parents: 50
diff changeset
    38
Smalltalk loadPackage:'stx:libcompat'.
47
f3f0f1f50918 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 44
diff changeset
    39
Smalltalk loadPackage:'stx:libjavascript'.
10
5b2afc26ab21 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9
diff changeset
    40
!
5b2afc26ab21 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9
diff changeset
    41
301
34fb6cfb5862 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 298
diff changeset
    42
|suite result debugging|
0
90bba565014c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    43
15
cc7adbd216be *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 12
diff changeset
    44
Stdout showCR:'Creating suite...'.
4
4674a8d2574e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3
diff changeset
    45
suite := TestSuite named:'SelfTest'.
23
7dcd34b06222 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 22
diff changeset
    46
7dcd34b06222 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 22
diff changeset
    47
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
    48
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
"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
    50
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
    51
(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
    52
    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
    53
    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
    54
].
306
27c40eee1d2b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 301
diff changeset
    55
exept_regression ensureFullyLoaded.
27c40eee1d2b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 301
diff changeset
    56
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
(Smalltalk at: #'exept_regression') testCaseNamesWithoutNamespace do:[:className |
23
7dcd34b06222 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 22
diff changeset
    58
    |fullName|
7dcd34b06222 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 22
diff changeset
    59
7dcd34b06222 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 22
diff changeset
    60
    fullName := ('RegressionTests::',className).
306
27c40eee1d2b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 301
diff changeset
    61
    Stdout showCR:('  loading ',className,'...').
27c40eee1d2b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 301
diff changeset
    62
    Error handle:[:ex |
27c40eee1d2b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 301
diff changeset
    63
	Stdout showCR:('**** Ouch - error while loading class: "',className,'"').
27c40eee1d2b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 301
diff changeset
    64
    ] do:[
27c40eee1d2b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 301
diff changeset
    65
	Smalltalk fileInClass:fullName package:'exept:regression'.
27c40eee1d2b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 301
diff changeset
    66
    ].
95
51749adb285f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 94
diff changeset
    67
    (Smalltalk classNamed:fullName) isNil ifTrue:[
51749adb285f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 94
diff changeset
    68
	Stdout showCR:('**** Ouch - missing class: "',fullName,'"').
51749adb285f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 94
diff changeset
    69
    ] ifFalse:[
51749adb285f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 94
diff changeset
    70
	suite addTest:(Smalltalk classNamed:fullName) suite.
51749adb285f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 94
diff changeset
    71
    ]
23
7dcd34b06222 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 22
diff changeset
    72
].
4
4674a8d2574e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3
diff changeset
    73
15
cc7adbd216be *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 12
diff changeset
    74
Stdout showCR:'Running suite...'.
301
34fb6cfb5862 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 298
diff changeset
    75
debugging := (Smalltalk commandLineArgumentNamed:'--debug') notNil.
8
7a691ced6334 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7
diff changeset
    76
result := suite
94
72ef7e71eda0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 93
diff changeset
    77
	    run:TestResultStX new beforeEachDo:[:test |
15
cc7adbd216be *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 12
diff changeset
    78
		Stdout showCR:('- running ',test printString).
87
432ff6d3a032 Add --debug
Stefan Vogel <sv@exept.de>
parents: 50
diff changeset
    79
	    ]
301
34fb6cfb5862 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 298
diff changeset
    80
	    afterEachDo:[:test|
34fb6cfb5862 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 298
diff changeset
    81
		Stdout showCR:('- done ',test printString).
34fb6cfb5862 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 298
diff changeset
    82
	    ]
34fb6cfb5862 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 298
diff changeset
    83
	    debug:debugging.
23
7dcd34b06222 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 22
diff changeset
    84
38
2ce19e2a6095 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 34
diff changeset
    85
Stdout showCR:'Generating report...'.
8
7a691ced6334 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7
diff changeset
    86
TestResultReporter
7a691ced6334 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7
diff changeset
    87
    report:result
29
fea749c05791 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 27
diff changeset
    88
    format:#xml_jUnit
8
7a691ced6334 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7
diff changeset
    89
    as:'testresult.xml'.
38
2ce19e2a6095 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 34
diff changeset
    90
2ce19e2a6095 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 34
diff changeset
    91
Stdout showCR:'Summary:'.
2ce19e2a6095 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 34
diff changeset
    92
Stdout showCR:('  %1 tests;' bindWith:result runCount).
2ce19e2a6095 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 34
diff changeset
    93
Stdout show:('  %1 passed,' bindWith:result passedCount).
2ce19e2a6095 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 34
diff changeset
    94
Stdout show:(' %1 failed,' bindWith:result failureCount).
2ce19e2a6095 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 34
diff changeset
    95
Stdout showCR:(' %1 errors.' bindWith:result errorCount).
98
b703917814f9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 96
diff changeset
    96
b703917814f9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 96
diff changeset
    97
'metrics.xml' asFilename writingFileDo:[:stream |
99
53618cf38136 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 98
diff changeset
    98
    MetricsReporter new
53618cf38136 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 98
diff changeset
    99
	stream: stream;
53618cf38136 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 98
diff changeset
   100
	packages:{
53618cf38136 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 98
diff changeset
   101
	    'stx:libbasic'       .
53618cf38136 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 98
diff changeset
   102
	    'stx:libbasic2'      .
53618cf38136 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 98
diff changeset
   103
	    'stx:libbasic3'      .
53618cf38136 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 98
diff changeset
   104
	    'stx:libcomp'        .
53618cf38136 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 98
diff changeset
   105
	    'stx:libview'        .
53618cf38136 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 98
diff changeset
   106
	    'stx:libview2'       .
53618cf38136 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 98
diff changeset
   107
	    'stx:libwidg'        .
53618cf38136 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 98
diff changeset
   108
	    'stx:libwidg2'       .
53618cf38136 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 98
diff changeset
   109
	    'stx:libtool'        .
53618cf38136 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 98
diff changeset
   110
	    'stx:libtool2'       .
53618cf38136 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 98
diff changeset
   111
	    'stx:libui'          .
53618cf38136 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 98
diff changeset
   112
	    'stx:libhtml'        .
115
2752de1c0477 *** empty log message ***
Stefan Vogel <sv@exept.de>
parents: 114
diff changeset
   113
	    'stx:goodies/xml/vw' .
99
53618cf38136 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 98
diff changeset
   114
	    'stx:goodies/soap'   .
53618cf38136 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 98
diff changeset
   115
	    'stx:libjavascript'  .
100
441430e5203a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 99
diff changeset
   116
	};
99
53618cf38136 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 98
diff changeset
   117
	classMetricNames: #();
53618cf38136 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 98
diff changeset
   118
	methodMetricNames: #();
53618cf38136 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 98
diff changeset
   119
	packageMetricNames: #( 'LOC' 'NOM' 'NOC');
53618cf38136 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 98
diff changeset
   120
	reportXml_metrics.
98
b703917814f9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 96
diff changeset
   121
].
b703917814f9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 96
diff changeset
   122
0
90bba565014c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   123
!