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