RegressionTests__VMCrashTests.st
branchjv
changeset 1598 300cd20b8c03
parent 1531 dbd517ea6e1c
child 1603 37db6f9f4ac5
equal deleted inserted replaced
1597:44192c225011 1598:300cd20b8c03
    39     "
    39     "
    40 
    40 
    41     <spawn: true>
    41     <spawn: true>
    42     <timeout: 660> "11min"
    42     <timeout: 660> "11min"
    43 
    43 
    44     | timeout deadline iterStart iterStop directory files i |   
    44     | timeout deadline iterStart iterStop directory files oldSpaceSizeLimit i |   
    45 
    45 
    46     "/ See https://swing.fit.cvut.cz/projects/stx-jv/ticket/64
    46     "/ See https://swing.fit.cvut.cz/projects/stx-jv/ticket/64
    47     self skipIf: OperatingSystem isMSWINDOWSlike description: 'Temporarily skipped because of issue #64'.
    47     self skipIf: OperatingSystem isMSWINDOWSlike description: 'Temporarily skipped because of issue #64'.
    48 
    48 
    49 
    49 
    50     timeout := self timeout.
    50     timeout := self timeout.
    51     deadline := OperatingSystem getMillisecondTime + ((timeout - 60"extra min to cover variance") * 1000).
    51     deadline := OperatingSystem getMillisecondTime + ((timeout - 60"extra min to cover variance") * 1000).
    52     iterStart := iterStop := 0.
    52     iterStart := iterStop := 0.
    53     i := 0.
    53     i := 0.
    54     directory := Smalltalk getPackageDirectoryForPackage: #'stx:goodies'.  
    54     directory := Smalltalk getPackageDirectoryForPackage: #'stx:goodies'.  
       
    55 
       
    56     oldSpaceSizeLimit := ObjectMemory oldSpaceUsed + (128"MB"*1024*1024).
       
    57 
    55     [ OperatingSystem getMillisecondTime < (deadline - (iterStop - iterStart)) ] whileTrue:[
    58     [ OperatingSystem getMillisecondTime < (deadline - (iterStop - iterStart)) ] whileTrue:[
    56         iterStart := OperatingSystem getMillisecondTime.
    59         iterStart := OperatingSystem getMillisecondTime.
    57 
    60 
    58         i := i + 1.
    61         i := i + 1.
    59         Stdout nextPutLine: 'Pass '  , i printString.
    62         Stdout nextPutLine: 'Pass '  , i printString.
    60         files := directory recursiveDirectoryContentsAsFilenames select:[:each | each isRegularFile ].
    63         files := directory recursiveDirectoryContentsAsFilenames select:[:each | each isRegularFile ].
    61         files := files select: [ :e | e suffix = 'st' ].
    64         files := files select: [ :e | e suffix = 'st' ].
    62         files collect:[ :e | (FileStream fileNamed: e) contents asString ].   
    65         files collect:[ :e | (FileStream fileNamed: e) contents asString ].   
    63         Stdout nextPutLine: 'Pass '  , i printString , '...OK'.
    66         Stdout nextPutLine: 'Pass '  , i printString , '...OK'.
    64 
    67         (oldSpaceSizeLimit notNil and:[ ObjectMemory oldSpaceUsed > oldSpaceSizeLimit ]) ifTrue:[ 
       
    68             Stdout nextPutLine: 'GC'.
       
    69             files := nil.
       
    70             ObjectMemory compressingGarbageCollect.
       
    71             oldSpaceSizeLimit := ObjectMemory oldSpaceUsed + (128"MB"*1024*1024).
       
    72             Stdout nextPutLine: 'GC...OK '.
       
    73         ].
    65         iterStop := OperatingSystem getMillisecondTime.
    74         iterStop := OperatingSystem getMillisecondTime.
    66     ].
    75     ].
    67 
    76 
    68     "Created: / 04-09-2016 / 03:16:19 / jv"
    77     "Created: / 04-09-2016 / 03:16:19 / jv"
       
    78     "Modified: / 27-02-2017 / 12:10:21 / Jan Vrany <jan.vrany@fit.cvut.cz>"
    69 !
    79 !
    70 
    80 
    71 test_java_initialize
    81 test_java_initialize
    72     "
    82     "
    73     Running `JavaVM boot` for long enough used to kill the
    83     Running `JavaVM boot` for long enough used to kill the