RegressionTests__VMCrashTestCase.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Thu, 08 Sep 2016 12:29:45 +0100
branchjv
changeset 1944 a43d7460c471
parent 1535 75fed93d5756
child 1567 e17701a073f9
permissions -rw-r--r--
Block-in-context: Fixed CompilerTests2 to work with block in context
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1276
diff changeset
     1
"{ Package: 'stx:goodies/regression' }"
1172
53eba38eb70a initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     2
53eba38eb70a initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     3
"{ NameSpace: RegressionTests }"
53eba38eb70a initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     4
53eba38eb70a initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     5
TestCase subclass:#VMCrashTestCase
53eba38eb70a initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     6
	instanceVariableNames:''
1530
b21a5e9a6c26 VMCrashTestCase: Added support for test skipping
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1502
diff changeset
     7
	classVariableNames:'EXIT_CODE_SUCCESS EXIT_CODE_FAILURE EXIT_CODE_ERROR
b21a5e9a6c26 VMCrashTestCase: Added support for test skipping
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1502
diff changeset
     8
		EXIT_CODE_SKIPPED'
1172
53eba38eb70a initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     9
	poolDictionaries:''
53eba38eb70a initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    10
	category:'tests-Regression-Abstract'
53eba38eb70a initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    11
!
53eba38eb70a initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    12
53eba38eb70a initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    13
!VMCrashTestCase class methodsFor:'documentation'!
53eba38eb70a initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    14
53eba38eb70a initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    15
documentation
53eba38eb70a initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    16
"
53eba38eb70a initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    17
    A specialized abstract test case class for writing
53eba38eb70a initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    18
    VM crash tests. The test is run in separate process
53eba38eb70a initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    19
    if it eventually crashes the VM, it won't take whole test
53eba38eb70a initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    20
    suite with it.
53eba38eb70a initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    21
1189
6c1c1eefa063 Added regression test #test_java_initialize
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1172
diff changeset
    22
    Each test case *must* be annotated by one <spawn:> annotation,
6c1c1eefa063 Added regression test #test_java_initialize
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1172
diff changeset
    23
    argument must be either `true` of `false`. If `true` then the
6c1c1eefa063 Added regression test #test_java_initialize
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1172
diff changeset
    24
    test is run in a freshly started VM. If `false`, test is run
6c1c1eefa063 Added regression test #test_java_initialize
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1172
diff changeset
    25
    in the same VM.
6c1c1eefa063 Added regression test #test_java_initialize
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1172
diff changeset
    26
6c1c1eefa063 Added regression test #test_java_initialize
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1172
diff changeset
    27
    As this is meant as a base class for regression tests that used to
6c1c1eefa063 Added regression test #test_java_initialize
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1172
diff changeset
    28
    kill the VM, normally you should annotate tests with <spawn: true>
6c1c1eefa063 Added regression test #test_java_initialize
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1172
diff changeset
    29
1172
53eba38eb70a initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    30
    [author:]
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1276
diff changeset
    31
	Jan Vrany <jan.vrany@fit.cvut.cz>
1172
53eba38eb70a initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    32
53eba38eb70a initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    33
    [instance variables:]
53eba38eb70a initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    34
53eba38eb70a initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    35
    [class variables:]
53eba38eb70a initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    36
53eba38eb70a initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    37
    [see also:]
53eba38eb70a initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    38
53eba38eb70a initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    39
"
53eba38eb70a initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    40
! !
53eba38eb70a initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    41
53eba38eb70a initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    42
!VMCrashTestCase class methodsFor:'initialization'!
53eba38eb70a initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    43
53eba38eb70a initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    44
initialize
53eba38eb70a initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    45
    "Invoked at system start or when the class is dynamically loaded."
53eba38eb70a initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    46
53eba38eb70a initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    47
    "/ please change as required (and remove this comment)
53eba38eb70a initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    48
53eba38eb70a initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    49
    EXIT_CODE_SUCCESS := 0.
53eba38eb70a initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    50
    EXIT_CODE_FAILURE := 1.
53eba38eb70a initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    51
    EXIT_CODE_ERROR := 2.
1535
75fed93d5756 VMCrashTestCase: oops, fixed test skip support for Windows
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1530
diff changeset
    52
    "/ Never define EXIT_CODE_SKIPPED as 3. On Windows,
75fed93d5756 VMCrashTestCase: oops, fixed test skip support for Windows
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1530
diff changeset
    53
    "/ 3 is used by abort() so then we'd not be able to
75fed93d5756 VMCrashTestCase: oops, fixed test skip support for Windows
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1530
diff changeset
    54
    "/ tell between skip and crash!! Sigh.
75fed93d5756 VMCrashTestCase: oops, fixed test skip support for Windows
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1530
diff changeset
    55
    EXIT_CODE_SKIPPED := 97.
1172
53eba38eb70a initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    56
1530
b21a5e9a6c26 VMCrashTestCase: Added support for test skipping
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1502
diff changeset
    57
    "Modified: / 03-09-2016 / 08:23:11 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1535
75fed93d5756 VMCrashTestCase: oops, fixed test skip support for Windows
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1530
diff changeset
    58
    "Modified: / 08-09-2016 / 12:44:05 / jv"
1172
53eba38eb70a initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    59
! !
53eba38eb70a initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    60
53eba38eb70a initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    61
!VMCrashTestCase class methodsFor:'testing'!
53eba38eb70a initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    62
53eba38eb70a initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    63
isAbstract
53eba38eb70a initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    64
    ^ self == RegressionTests::VMCrashTestCase
53eba38eb70a initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    65
! !
53eba38eb70a initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    66
1189
6c1c1eefa063 Added regression test #test_java_initialize
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1172
diff changeset
    67
!VMCrashTestCase methodsFor:'accessing'!
6c1c1eefa063 Added regression test #test_java_initialize
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1172
diff changeset
    68
6c1c1eefa063 Added regression test #test_java_initialize
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1172
diff changeset
    69
timeout
6c1c1eefa063 Added regression test #test_java_initialize
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1172
diff changeset
    70
    "Returns a default timeout (sec) for the test.
6c1c1eefa063 Added regression test #test_java_initialize
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1172
diff changeset
    71
     If nil is returned, no timeout enforced.
6c1c1eefa063 Added regression test #test_java_initialize
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1172
diff changeset
    72
6c1c1eefa063 Added regression test #test_java_initialize
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1172
diff changeset
    73
    Note that the timeout is set only when running under
6c1c1eefa063 Added regression test #test_java_initialize
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1172
diff changeset
    74
    report runner, interactive tools does not use it"
6c1c1eefa063 Added regression test #test_java_initialize
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1172
diff changeset
    75
6c1c1eefa063 Added regression test #test_java_initialize
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1172
diff changeset
    76
    | method |
6c1c1eefa063 Added regression test #test_java_initialize
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1172
diff changeset
    77
    method := self class lookupMethodFor: testSelector.
6c1c1eefa063 Added regression test #test_java_initialize
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1172
diff changeset
    78
    method annotationsAt:#timeout: do:[:annotation|
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1276
diff changeset
    79
	 ^annotation arguments first
1189
6c1c1eefa063 Added regression test #test_java_initialize
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1172
diff changeset
    80
    ].
6c1c1eefa063 Added regression test #test_java_initialize
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1172
diff changeset
    81
    ^60"sec - default timeout"
6c1c1eefa063 Added regression test #test_java_initialize
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1172
diff changeset
    82
6c1c1eefa063 Added regression test #test_java_initialize
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1172
diff changeset
    83
    "Created: / 08-09-2014 / 13:00:45 / Jan Vrany <jan.vrany@fit.cvut.cz>"
6c1c1eefa063 Added regression test #test_java_initialize
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1172
diff changeset
    84
! !
6c1c1eefa063 Added regression test #test_java_initialize
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1172
diff changeset
    85
1172
53eba38eb70a initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    86
!VMCrashTestCase methodsFor:'running'!
53eba38eb70a initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    87
53eba38eb70a initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    88
runCase
1189
6c1c1eefa063 Added regression test #test_java_initialize
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1172
diff changeset
    89
    "Perform the testcase.
1172
53eba38eb70a initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    90
1189
6c1c1eefa063 Added regression test #test_java_initialize
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1172
diff changeset
    91
     If testcase is annotated by <spawn: false> the test is run in the
6c1c1eefa063 Added regression test #test_java_initialize
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1172
diff changeset
    92
     very same VM. If <spawn: true>, a new VM is started and the testcase
6c1c1eefa063 Added regression test #test_java_initialize
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1172
diff changeset
    93
     in run in that new VM"
6c1c1eefa063 Added regression test #test_java_initialize
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1172
diff changeset
    94
1194
01167ea2ad14 More support for debugging - file out also some scripts useful when debugging the test.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1189
diff changeset
    95
    | tempDir testcaseFile exe args script environment outputFile output pid blocker status spawn |
1172
53eba38eb70a initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    96
1189
6c1c1eefa063 Added regression test #test_java_initialize
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1172
diff changeset
    97
    spawn := (self class lookupMethodFor: testSelector) annotationAt: #spawn:.
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1276
diff changeset
    98
    spawn isNil ifTrue:[
1502
b52f4f0d4a0b Fixed exit code checking logic in VMCrashTestTest
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1500
diff changeset
    99
        self error: 'No <spawn:> annotation'.
1189
6c1c1eefa063 Added regression test #test_java_initialize
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1172
diff changeset
   100
    ].
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1276
diff changeset
   101
    (spawn argumentAt: 1) == false ifTrue:[
1502
b52f4f0d4a0b Fixed exit code checking logic in VMCrashTestTest
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1500
diff changeset
   102
        ^ super runCase.
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1276
diff changeset
   103
    ] ifFalse:[
1502
b52f4f0d4a0b Fixed exit code checking logic in VMCrashTestTest
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1500
diff changeset
   104
        (spawn argumentAt: 1) ~~ true ifTrue:[
b52f4f0d4a0b Fixed exit code checking logic in VMCrashTestTest
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1500
diff changeset
   105
            self error: 'Argument to <spawn:> must be either `true` or `false`'.
b52f4f0d4a0b Fixed exit code checking logic in VMCrashTestTest
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1500
diff changeset
   106
        ]
1172
53eba38eb70a initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   107
    ].
53eba38eb70a initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   108
53eba38eb70a initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   109
    [
1502
b52f4f0d4a0b Fixed exit code checking logic in VMCrashTestTest
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1500
diff changeset
   110
        tempDir := Filename newTemporary.
b52f4f0d4a0b Fixed exit code checking logic in VMCrashTestTest
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1500
diff changeset
   111
        tempDir makeDirectory.
b52f4f0d4a0b Fixed exit code checking logic in VMCrashTestTest
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1500
diff changeset
   112
        testcaseFile := tempDir / ((Smalltalk fileNameForClass: self class) , '.st').
b52f4f0d4a0b Fixed exit code checking logic in VMCrashTestTest
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1500
diff changeset
   113
        self class fileOutAs: testcaseFile.
1172
53eba38eb70a initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   114
1502
b52f4f0d4a0b Fixed exit code checking logic in VMCrashTestTest
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1500
diff changeset
   115
        script := 'Smalltalk packagePath: %1.
b52f4f0d4a0b Fixed exit code checking logic in VMCrashTestTest
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1500
diff changeset
   116
                   Smalltalk loadPackage:%2.
b52f4f0d4a0b Fixed exit code checking logic in VMCrashTestTest
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1500
diff changeset
   117
                   Smalltalk fileIn: %3.
b52f4f0d4a0b Fixed exit code checking logic in VMCrashTestTest
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1500
diff changeset
   118
                   (%4 selector: %5) runCaseInternal.'
b52f4f0d4a0b Fixed exit code checking logic in VMCrashTestTest
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1500
diff changeset
   119
                    bindWith: Smalltalk packagePath asArray storeString
b52f4f0d4a0b Fixed exit code checking logic in VMCrashTestTest
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1500
diff changeset
   120
                        with: self class package storeString
b52f4f0d4a0b Fixed exit code checking logic in VMCrashTestTest
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1500
diff changeset
   121
                        with: testcaseFile pathName storeString
b52f4f0d4a0b Fixed exit code checking logic in VMCrashTestTest
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1500
diff changeset
   122
                        with: self class name
b52f4f0d4a0b Fixed exit code checking logic in VMCrashTestTest
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1500
diff changeset
   123
                        with: testSelector storeString.
1172
53eba38eb70a initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   124
1502
b52f4f0d4a0b Fixed exit code checking logic in VMCrashTestTest
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1500
diff changeset
   125
        exe := OperatingSystem pathOfSTXExecutable.
b52f4f0d4a0b Fixed exit code checking logic in VMCrashTestTest
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1500
diff changeset
   126
        args := { exe . '--abortOnSEGV' . '--execute' . ( tempDir / 'run.st' ) pathName }.
1172
53eba38eb70a initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   127
1502
b52f4f0d4a0b Fixed exit code checking logic in VMCrashTestTest
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1500
diff changeset
   128
        OperatingSystem isMSWINDOWSlike ifTrue:[
b52f4f0d4a0b Fixed exit code checking logic in VMCrashTestTest
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1500
diff changeset
   129
            args := String streamContents:[:s|
b52f4f0d4a0b Fixed exit code checking logic in VMCrashTestTest
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1500
diff changeset
   130
                args
b52f4f0d4a0b Fixed exit code checking logic in VMCrashTestTest
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1500
diff changeset
   131
                    do:[:each | s nextPut:$"; nextPutAll: each; nextPut: $"]
b52f4f0d4a0b Fixed exit code checking logic in VMCrashTestTest
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1500
diff changeset
   132
                    separatedBy: [ s space ]
b52f4f0d4a0b Fixed exit code checking logic in VMCrashTestTest
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1500
diff changeset
   133
            ]
b52f4f0d4a0b Fixed exit code checking logic in VMCrashTestTest
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1500
diff changeset
   134
        ].
1172
53eba38eb70a initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   135
1502
b52f4f0d4a0b Fixed exit code checking logic in VMCrashTestTest
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1500
diff changeset
   136
        outputFile := tempDir / 'output.txt'.
b52f4f0d4a0b Fixed exit code checking logic in VMCrashTestTest
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1500
diff changeset
   137
        output := outputFile writeStream.
1172
53eba38eb70a initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   138
1502
b52f4f0d4a0b Fixed exit code checking logic in VMCrashTestTest
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1500
diff changeset
   139
        "/ Now, spit out some helper files that for debugging.
b52f4f0d4a0b Fixed exit code checking logic in VMCrashTestTest
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1500
diff changeset
   140
        ( tempDir / 'run.st' ) writingFileDo:[ :f |
b52f4f0d4a0b Fixed exit code checking logic in VMCrashTestTest
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1500
diff changeset
   141
            f nextPutAll: script.
b52f4f0d4a0b Fixed exit code checking logic in VMCrashTestTest
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1500
diff changeset
   142
        ].
b52f4f0d4a0b Fixed exit code checking logic in VMCrashTestTest
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1500
diff changeset
   143
        environment := OperatingSystem isUNIXlike
b52f4f0d4a0b Fixed exit code checking logic in VMCrashTestTest
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1500
diff changeset
   144
                        ifTrue:[OperatingSystem getEnvironment copy]
b52f4f0d4a0b Fixed exit code checking logic in VMCrashTestTest
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1500
diff changeset
   145
                        ifFalse:[environment := Dictionary new].
b52f4f0d4a0b Fixed exit code checking logic in VMCrashTestTest
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1500
diff changeset
   146
        blocker := Semaphore new.
1172
53eba38eb70a initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   147
1502
b52f4f0d4a0b Fixed exit code checking logic in VMCrashTestTest
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1500
diff changeset
   148
        Processor monitor:[
b52f4f0d4a0b Fixed exit code checking logic in VMCrashTestTest
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1500
diff changeset
   149
             pid := OperatingSystem exec: exe withArguments:args
b52f4f0d4a0b Fixed exit code checking logic in VMCrashTestTest
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1500
diff changeset
   150
                environment:environment
b52f4f0d4a0b Fixed exit code checking logic in VMCrashTestTest
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1500
diff changeset
   151
                fileDescriptors:{0 . output fileDescriptor  . output fileDescriptor  }
b52f4f0d4a0b Fixed exit code checking logic in VMCrashTestTest
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1500
diff changeset
   152
                fork:true
b52f4f0d4a0b Fixed exit code checking logic in VMCrashTestTest
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1500
diff changeset
   153
                newPgrp:false
b52f4f0d4a0b Fixed exit code checking logic in VMCrashTestTest
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1500
diff changeset
   154
                inDirectory: Filename currentDirectory pathName
b52f4f0d4a0b Fixed exit code checking logic in VMCrashTestTest
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1500
diff changeset
   155
        ] action: [ :s |
b52f4f0d4a0b Fixed exit code checking logic in VMCrashTestTest
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1500
diff changeset
   156
            status := s.
b52f4f0d4a0b Fixed exit code checking logic in VMCrashTestTest
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1500
diff changeset
   157
            blocker signal.
b52f4f0d4a0b Fixed exit code checking logic in VMCrashTestTest
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1500
diff changeset
   158
        ].
1172
53eba38eb70a initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   159
1502
b52f4f0d4a0b Fixed exit code checking logic in VMCrashTestTest
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1500
diff changeset
   160
        output close.
1172
53eba38eb70a initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   161
1502
b52f4f0d4a0b Fixed exit code checking logic in VMCrashTestTest
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1500
diff changeset
   162
        pid isNil ifTrue:[
b52f4f0d4a0b Fixed exit code checking logic in VMCrashTestTest
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1500
diff changeset
   163
            self error: 'Failed to spawn test'.
b52f4f0d4a0b Fixed exit code checking logic in VMCrashTestTest
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1500
diff changeset
   164
            ^ self.
b52f4f0d4a0b Fixed exit code checking logic in VMCrashTestTest
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1500
diff changeset
   165
        ].
1172
53eba38eb70a initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   166
1502
b52f4f0d4a0b Fixed exit code checking logic in VMCrashTestTest
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1500
diff changeset
   167
        blocker wait.
b52f4f0d4a0b Fixed exit code checking logic in VMCrashTestTest
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1500
diff changeset
   168
        status code == EXIT_CODE_SUCCESS ifFalse:[ 
1530
b21a5e9a6c26 VMCrashTestCase: Added support for test skipping
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1502
diff changeset
   169
            status code == EXIT_CODE_SKIPPED ifTrue:[ 
b21a5e9a6c26 VMCrashTestCase: Added support for test skipping
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1502
diff changeset
   170
                self skipIf: true description: 'Skipped'.
b21a5e9a6c26 VMCrashTestCase: Added support for test skipping
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1502
diff changeset
   171
            ] ifFalse:[ 
b21a5e9a6c26 VMCrashTestCase: Added support for test skipping
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1502
diff changeset
   172
                status code == EXIT_CODE_FAILURE ifTrue:[
b21a5e9a6c26 VMCrashTestCase: Added support for test skipping
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1502
diff changeset
   173
                    (outputFile notNil and:[ outputFile exists ]) ifTrue:[
b21a5e9a6c26 VMCrashTestCase: Added support for test skipping
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1502
diff changeset
   174
                        Stdout nextPutAll: '== TEST FAILED: '; nextPutAll: testSelector; nextPutLine:' =='.
b21a5e9a6c26 VMCrashTestCase: Added support for test skipping
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1502
diff changeset
   175
                        outputFile readingFileDo:[:s|
b21a5e9a6c26 VMCrashTestCase: Added support for test skipping
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1502
diff changeset
   176
                            [ s atEnd ] whileFalse:[
b21a5e9a6c26 VMCrashTestCase: Added support for test skipping
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1502
diff changeset
   177
                                Stdout nextPutLine: s nextLine.
b21a5e9a6c26 VMCrashTestCase: Added support for test skipping
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1502
diff changeset
   178
                            ].
1502
b52f4f0d4a0b Fixed exit code checking logic in VMCrashTestTest
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1500
diff changeset
   179
                        ].
b52f4f0d4a0b Fixed exit code checking logic in VMCrashTestTest
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1500
diff changeset
   180
                    ].
1530
b21a5e9a6c26 VMCrashTestCase: Added support for test skipping
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1502
diff changeset
   181
                    self assert: false description: 'Assertion failed, see log'.
b21a5e9a6c26 VMCrashTestCase: Added support for test skipping
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1502
diff changeset
   182
                ] ifFalse:[
b21a5e9a6c26 VMCrashTestCase: Added support for test skipping
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1502
diff changeset
   183
                    (outputFile notNil and:[ outputFile exists ]) ifTrue:[
b21a5e9a6c26 VMCrashTestCase: Added support for test skipping
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1502
diff changeset
   184
                        Stdout nextPutAll: '== TEST ERROR: '; nextPutAll: testSelector; nextPutLine:' =='.
b21a5e9a6c26 VMCrashTestCase: Added support for test skipping
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1502
diff changeset
   185
                        outputFile readingFileDo:[:s|
b21a5e9a6c26 VMCrashTestCase: Added support for test skipping
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1502
diff changeset
   186
                            [ s atEnd ] whileFalse:[
b21a5e9a6c26 VMCrashTestCase: Added support for test skipping
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1502
diff changeset
   187
                                Stdout nextPutLine: s nextLine.
b21a5e9a6c26 VMCrashTestCase: Added support for test skipping
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1502
diff changeset
   188
                            ].
1502
b52f4f0d4a0b Fixed exit code checking logic in VMCrashTestTest
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1500
diff changeset
   189
                        ].
b52f4f0d4a0b Fixed exit code checking logic in VMCrashTestTest
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1500
diff changeset
   190
                    ].
1530
b21a5e9a6c26 VMCrashTestCase: Added support for test skipping
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1502
diff changeset
   191
                    self error: 'Error occured'.
1502
b52f4f0d4a0b Fixed exit code checking logic in VMCrashTestTest
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1500
diff changeset
   192
                ].
b52f4f0d4a0b Fixed exit code checking logic in VMCrashTestTest
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1500
diff changeset
   193
            ].
b52f4f0d4a0b Fixed exit code checking logic in VMCrashTestTest
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1500
diff changeset
   194
        ].
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1276
diff changeset
   195
    ] ensure:[
1502
b52f4f0d4a0b Fixed exit code checking logic in VMCrashTestTest
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1500
diff changeset
   196
        (tempDir notNil and:[tempDir exists]) ifTrue:[
b52f4f0d4a0b Fixed exit code checking logic in VMCrashTestTest
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1500
diff changeset
   197
            [
b52f4f0d4a0b Fixed exit code checking logic in VMCrashTestTest
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1500
diff changeset
   198
                tempDir recursiveRemove.
b52f4f0d4a0b Fixed exit code checking logic in VMCrashTestTest
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1500
diff changeset
   199
            ] on: Error do:[:ex |
b52f4f0d4a0b Fixed exit code checking logic in VMCrashTestTest
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1500
diff changeset
   200
                OperatingSystem isMSWINDOWSlike ifFalse:[
b52f4f0d4a0b Fixed exit code checking logic in VMCrashTestTest
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1500
diff changeset
   201
                    ex reject.
b52f4f0d4a0b Fixed exit code checking logic in VMCrashTestTest
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1500
diff changeset
   202
                ].
b52f4f0d4a0b Fixed exit code checking logic in VMCrashTestTest
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1500
diff changeset
   203
            ]
b52f4f0d4a0b Fixed exit code checking logic in VMCrashTestTest
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1500
diff changeset
   204
        ].
1172
53eba38eb70a initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   205
    ].
53eba38eb70a initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   206
1189
6c1c1eefa063 Added regression test #test_java_initialize
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1172
diff changeset
   207
    "
6c1c1eefa063 Added regression test #test_java_initialize
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1172
diff changeset
   208
    VMCrashTestCase run:#test_infrastructure
6c1c1eefa063 Added regression test #test_java_initialize
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1172
diff changeset
   209
    "
6c1c1eefa063 Added regression test #test_java_initialize
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1172
diff changeset
   210
1172
53eba38eb70a initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   211
    "Created: / 04-09-2014 / 18:13:11 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1530
b21a5e9a6c26 VMCrashTestCase: Added support for test skipping
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1502
diff changeset
   212
    "Modified: / 03-09-2016 / 07:56:21 / jv"
b21a5e9a6c26 VMCrashTestCase: Added support for test skipping
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1502
diff changeset
   213
    "Modified (format): / 03-09-2016 / 08:22:03 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1172
53eba38eb70a initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   214
!
53eba38eb70a initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   215
53eba38eb70a initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   216
runCaseInternal
53eba38eb70a initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   217
    [
1530
b21a5e9a6c26 VMCrashTestCase: Added support for test skipping
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1502
diff changeset
   218
        [     
b21a5e9a6c26 VMCrashTestCase: Added support for test skipping
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1502
diff changeset
   219
        super runCase.
b21a5e9a6c26 VMCrashTestCase: Added support for test skipping
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1502
diff changeset
   220
        Stdout cr;
b21a5e9a6c26 VMCrashTestCase: Added support for test skipping
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1502
diff changeset
   221
            nextPutAll: 'PASSED'; cr.
b21a5e9a6c26 VMCrashTestCase: Added support for test skipping
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1502
diff changeset
   222
        ] on: TestResult skipped do:[:skip| 
b21a5e9a6c26 VMCrashTestCase: Added support for test skipping
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1502
diff changeset
   223
             Stdout cr;
b21a5e9a6c26 VMCrashTestCase: Added support for test skipping
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1502
diff changeset
   224
                nextPutAll: 'SKIPPED'; cr.
b21a5e9a6c26 VMCrashTestCase: Added support for test skipping
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1502
diff changeset
   225
            Smalltalk exit: EXIT_CODE_SKIPPED.
b21a5e9a6c26 VMCrashTestCase: Added support for test skipping
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1502
diff changeset
   226
        ]
1172
53eba38eb70a initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   227
    ] on: TestResult failure do:[:failure |
1530
b21a5e9a6c26 VMCrashTestCase: Added support for test skipping
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1502
diff changeset
   228
        Stdout cr;
b21a5e9a6c26 VMCrashTestCase: Added support for test skipping
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1502
diff changeset
   229
            nextPutAll: 'FAILURE: '; nextPutAll: failure description; cr.
b21a5e9a6c26 VMCrashTestCase: Added support for test skipping
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1502
diff changeset
   230
        Smalltalk exit: EXIT_CODE_FAILURE.
1172
53eba38eb70a initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   231
    ] on: TestResult exError do:[:error |
1530
b21a5e9a6c26 VMCrashTestCase: Added support for test skipping
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1502
diff changeset
   232
        Stdout cr;
b21a5e9a6c26 VMCrashTestCase: Added support for test skipping
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1502
diff changeset
   233
            nextPutAll: 'ERROR: '; nextPutAll: error description; cr.
b21a5e9a6c26 VMCrashTestCase: Added support for test skipping
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1502
diff changeset
   234
        Smalltalk exit: EXIT_CODE_ERROR.
1172
53eba38eb70a initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   235
    ].
53eba38eb70a initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   236
53eba38eb70a initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   237
    "Created: / 04-09-2014 / 17:41:38 / Jan Vrany <jan.vrany@fit.cvut.cz>"
53eba38eb70a initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   238
    "Modified: / 05-09-2014 / 18:37:35 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1530
b21a5e9a6c26 VMCrashTestCase: Added support for test skipping
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1502
diff changeset
   239
    "Modified: / 03-09-2016 / 07:53:15 / jv"
1172
53eba38eb70a initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   240
! !
53eba38eb70a initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   241
53eba38eb70a initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   242
!VMCrashTestCase methodsFor:'tests - infrastructure'!
53eba38eb70a initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   243
53eba38eb70a initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   244
test_infrastructure
53eba38eb70a initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   245
    "
53eba38eb70a initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   246
    VMCrashTestCase run:#test_infrastructure
53eba38eb70a initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   247
    "
1189
6c1c1eefa063 Added regression test #test_java_initialize
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1172
diff changeset
   248
    <spawn: false>
1172
53eba38eb70a initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   249
53eba38eb70a initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   250
    | result |
53eba38eb70a initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   251
53eba38eb70a initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   252
    result := self class run: #tst_pass.
53eba38eb70a initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   253
    self assert: result passedCount = 1.
53eba38eb70a initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   254
    self assert: result failureCount = 0.
53eba38eb70a initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   255
    self assert: result errorCount = 0.
1530
b21a5e9a6c26 VMCrashTestCase: Added support for test skipping
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1502
diff changeset
   256
    self assert: result skippedCount = 0.
1172
53eba38eb70a initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   257
53eba38eb70a initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   258
    result := self class run: #tst_fail.
53eba38eb70a initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   259
    self assert: result passedCount = 0.
53eba38eb70a initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   260
    self assert: result failureCount = 1.
53eba38eb70a initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   261
    self assert: result errorCount = 0.
1530
b21a5e9a6c26 VMCrashTestCase: Added support for test skipping
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1502
diff changeset
   262
    self assert: result skippedCount = 0.
1172
53eba38eb70a initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   263
53eba38eb70a initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   264
    result := self class run: #tst_error.
53eba38eb70a initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   265
    self assert: result passedCount = 0.
53eba38eb70a initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   266
    self assert: result failureCount = 0.
53eba38eb70a initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   267
    self assert: result errorCount = 1.
1530
b21a5e9a6c26 VMCrashTestCase: Added support for test skipping
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1502
diff changeset
   268
    self assert: result skippedCount = 0.
b21a5e9a6c26 VMCrashTestCase: Added support for test skipping
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1502
diff changeset
   269
b21a5e9a6c26 VMCrashTestCase: Added support for test skipping
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1502
diff changeset
   270
    result := self class run: #tst_skip.
b21a5e9a6c26 VMCrashTestCase: Added support for test skipping
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1502
diff changeset
   271
    self assert: result passedCount = 0.
b21a5e9a6c26 VMCrashTestCase: Added support for test skipping
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1502
diff changeset
   272
    self assert: result failureCount = 0.
b21a5e9a6c26 VMCrashTestCase: Added support for test skipping
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1502
diff changeset
   273
    self assert: result errorCount = 0.
b21a5e9a6c26 VMCrashTestCase: Added support for test skipping
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1502
diff changeset
   274
    self assert: result skippedCount = 1.     
1172
53eba38eb70a initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   275
53eba38eb70a initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   276
    "
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1276
diff changeset
   277
    VMCrashTestCase run: #tst_crash.
1172
53eba38eb70a initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   278
    "
53eba38eb70a initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   279
    result := self class run: #tst_crash.
53eba38eb70a initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   280
    self assert: result passedCount = 0.
53eba38eb70a initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   281
    self assert: result failureCount = 0.
53eba38eb70a initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   282
    self assert: result errorCount = 1.
1530
b21a5e9a6c26 VMCrashTestCase: Added support for test skipping
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1502
diff changeset
   283
    self assert: result skippedCount = 0.
1172
53eba38eb70a initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   284
53eba38eb70a initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   285
    "Created: / 05-09-2014 / 18:22:26 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1189
6c1c1eefa063 Added regression test #test_java_initialize
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1172
diff changeset
   286
    "Modified: / 08-09-2014 / 12:26:35 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1530
b21a5e9a6c26 VMCrashTestCase: Added support for test skipping
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1502
diff changeset
   287
    "Modified: / 03-09-2016 / 07:44:57 / jv"
1172
53eba38eb70a initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   288
!
53eba38eb70a initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   289
53eba38eb70a initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   290
tst_crash
1189
6c1c1eefa063 Added regression test #test_java_initialize
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1172
diff changeset
   291
6c1c1eefa063 Added regression test #test_java_initialize
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1172
diff changeset
   292
    <spawn: true>
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1276
diff changeset
   293
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1276
diff changeset
   294
    | bytes |
1172
53eba38eb70a initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   295
1194
01167ea2ad14 More support for debugging - file out also some scripts useful when debugging the test.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1189
diff changeset
   296
    Stdout nextPutLine: 'Going to crash now!!'.
01167ea2ad14 More support for debugging - file out also some scripts useful when debugging the test.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1189
diff changeset
   297
1172
53eba38eb70a initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   298
    bytes := ExternalBytes address: 16r10 size: 100.
53eba38eb70a initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   299
    bytes byteAt: 1 put: 10.
53eba38eb70a initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   300
53eba38eb70a initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   301
    "Created: / 05-09-2014 / 18:24:49 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1194
01167ea2ad14 More support for debugging - file out also some scripts useful when debugging the test.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1189
diff changeset
   302
    "Modified: / 16-09-2014 / 20:30:20 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1172
53eba38eb70a initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   303
!
53eba38eb70a initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   304
53eba38eb70a initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   305
tst_error
1189
6c1c1eefa063 Added regression test #test_java_initialize
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1172
diff changeset
   306
    <spawn: true>
1172
53eba38eb70a initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   307
    self error:'Error'
53eba38eb70a initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   308
53eba38eb70a initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   309
    "Created: / 05-09-2014 / 18:20:46 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1189
6c1c1eefa063 Added regression test #test_java_initialize
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1172
diff changeset
   310
    "Modified: / 08-09-2014 / 12:26:20 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1172
53eba38eb70a initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   311
!
53eba38eb70a initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   312
53eba38eb70a initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   313
tst_fail
1189
6c1c1eefa063 Added regression test #test_java_initialize
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1172
diff changeset
   314
    <spawn: true>
1172
53eba38eb70a initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   315
    self assert: false.
53eba38eb70a initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   316
53eba38eb70a initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   317
    "Created: / 05-09-2014 / 18:20:24 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1189
6c1c1eefa063 Added regression test #test_java_initialize
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1172
diff changeset
   318
    "Modified: / 08-09-2014 / 12:26:23 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1172
53eba38eb70a initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   319
!
53eba38eb70a initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   320
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1276
diff changeset
   321
tst_pass
1189
6c1c1eefa063 Added regression test #test_java_initialize
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1172
diff changeset
   322
    <spawn: true>
1172
53eba38eb70a initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   323
53eba38eb70a initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   324
    "Created: / 05-09-2014 / 18:20:51 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1189
6c1c1eefa063 Added regression test #test_java_initialize
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1172
diff changeset
   325
    "Modified: / 08-09-2014 / 12:26:28 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1530
b21a5e9a6c26 VMCrashTestCase: Added support for test skipping
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1502
diff changeset
   326
!
b21a5e9a6c26 VMCrashTestCase: Added support for test skipping
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1502
diff changeset
   327
b21a5e9a6c26 VMCrashTestCase: Added support for test skipping
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1502
diff changeset
   328
tst_skip
b21a5e9a6c26 VMCrashTestCase: Added support for test skipping
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1502
diff changeset
   329
    <spawn: true>
b21a5e9a6c26 VMCrashTestCase: Added support for test skipping
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1502
diff changeset
   330
    self skipIf: true description: 'Skip the test to test skipping'
b21a5e9a6c26 VMCrashTestCase: Added support for test skipping
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1502
diff changeset
   331
b21a5e9a6c26 VMCrashTestCase: Added support for test skipping
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1502
diff changeset
   332
    "Created: / 03-09-2016 / 07:42:55 / jv"
1172
53eba38eb70a initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   333
! !
53eba38eb70a initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   334
53eba38eb70a initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   335
!VMCrashTestCase class methodsFor:'documentation'!
53eba38eb70a initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   336
53eba38eb70a initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   337
version
53eba38eb70a initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   338
    ^ '$Header$'
53eba38eb70a initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   339
!
53eba38eb70a initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   340
53eba38eb70a initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   341
version_CVS
53eba38eb70a initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   342
    ^ '$Header$'
1502
b52f4f0d4a0b Fixed exit code checking logic in VMCrashTestTest
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1500
diff changeset
   343
!
b52f4f0d4a0b Fixed exit code checking logic in VMCrashTestTest
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1500
diff changeset
   344
b52f4f0d4a0b Fixed exit code checking logic in VMCrashTestTest
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1500
diff changeset
   345
version_HG
b52f4f0d4a0b Fixed exit code checking logic in VMCrashTestTest
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1500
diff changeset
   346
b52f4f0d4a0b Fixed exit code checking logic in VMCrashTestTest
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1500
diff changeset
   347
    ^ '$Changeset: <not expanded> $'
1172
53eba38eb70a initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   348
! !
53eba38eb70a initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   349
53eba38eb70a initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   350
53eba38eb70a initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   351
VMCrashTestCase initialize!