RegressionTests__VMCrashTests.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Fri, 20 Oct 2017 22:47:34 +0100
branchjv
changeset 1958 fadec117e77d
parent 1957 91005025501a
child 1959 d05ea54888ee
permissions -rw-r--r--
Issue #182: Added test https://swing.fit.cvut.cz/projects/stx-jv/ticket/182
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1248
diff changeset
     1
"{ Package: 'stx:goodies/regression' }"
1181
62d2da1a9c41 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     2
62d2da1a9c41 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     3
"{ NameSpace: RegressionTests }"
62d2da1a9c41 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     4
62d2da1a9c41 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     5
VMCrashTestCase subclass:#VMCrashTests
62d2da1a9c41 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     6
	instanceVariableNames:''
62d2da1a9c41 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     7
	classVariableNames:''
62d2da1a9c41 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     8
	poolDictionaries:''
62d2da1a9c41 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     9
	category:'tests-Regression-RuntimeSystem'
62d2da1a9c41 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    10
!
62d2da1a9c41 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    11
62d2da1a9c41 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    12
62d2da1a9c41 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    13
!VMCrashTests methodsFor:'tests - GC'!
62d2da1a9c41 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    14
1190
cf332dfb2334 Added regression test #test_java_initialize
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1181
diff changeset
    15
iter_java_initialize
cf332dfb2334 Added regression test #test_java_initialize
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1181
diff changeset
    16
    <spawn: true>
cf332dfb2334 Added regression test #test_java_initialize
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1181
diff changeset
    17
cf332dfb2334 Added regression test #test_java_initialize
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1181
diff changeset
    18
    1 to: 100 do:[:i |
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1248
diff changeset
    19
	Stdout nextPutLine: 'Pass '  , i printString.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1248
diff changeset
    20
	Java release: JavaRelease JDK7.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1248
diff changeset
    21
	Java initialize.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1248
diff changeset
    22
	JavaVM initializeVM.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1248
diff changeset
    23
	Java flushAllJavaResources.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1248
diff changeset
    24
	Stdout nextPutLine: 'Full GC...'.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1248
diff changeset
    25
	Smalltalk garbageCollect.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1248
diff changeset
    26
	Stdout nextPutLine: 'Pass '  , i printString , '...OK'.
1190
cf332dfb2334 Added regression test #test_java_initialize
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1181
diff changeset
    27
    ].
cf332dfb2334 Added regression test #test_java_initialize
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1181
diff changeset
    28
cf332dfb2334 Added regression test #test_java_initialize
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1181
diff changeset
    29
    "Created: / 08-09-2014 / 12:33:55 / Jan Vrany <jan.vrany@fit.cvut.cz>"
cf332dfb2334 Added regression test #test_java_initialize
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1181
diff changeset
    30
!
cf332dfb2334 Added regression test #test_java_initialize
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1181
diff changeset
    31
1953
50499a3d9b19 Issue 171: Added test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1603
diff changeset
    32
test_issue_171_crash_in_Smalltalk_keys
50499a3d9b19 Issue 171: Added test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1603
diff changeset
    33
    <timeout: 120> "2min"
50499a3d9b19 Issue 171: Added test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1603
diff changeset
    34
    <spawn: true>
50499a3d9b19 Issue 171: Added test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1603
diff changeset
    35
50499a3d9b19 Issue 171: Added test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1603
diff changeset
    36
    "
50499a3d9b19 Issue 171: Added test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1603
diff changeset
    37
    Commit a68e1e09f73a/stx:libbasic caused following code to crash the VM.
50499a3d9b19 Issue 171: Added test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1603
diff changeset
    38
    "
50499a3d9b19 Issue 171: Added test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1603
diff changeset
    39
50499a3d9b19 Issue 171: Added test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1603
diff changeset
    40
    Smalltalk keys.
50499a3d9b19 Issue 171: Added test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1603
diff changeset
    41
50499a3d9b19 Issue 171: Added test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1603
diff changeset
    42
    "Created: / 09-08-2017 / 10:00:17 / Jan Vrany <jan.vrany@fit.cvut.cz>"
50499a3d9b19 Issue 171: Added test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1603
diff changeset
    43
!
50499a3d9b19 Issue 171: Added test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1603
diff changeset
    44
1958
fadec117e77d Issue #182: Added test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1957
diff changeset
    45
test_issue_182_crash_when_java_is_flushed
fadec117e77d Issue #182: Added test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1957
diff changeset
    46
    <timeout: 300> "300min" 
fadec117e77d Issue #182: Added test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1957
diff changeset
    47
    <spawn: true>
fadec117e77d Issue #182: Added test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1957
diff changeset
    48
fadec117e77d Issue #182: Added test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1957
diff changeset
    49
    "
fadec117e77d Issue #182: Added test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1957
diff changeset
    50
    If some code is still running when Java is flushed the
fadec117e77d Issue #182: Added test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1957
diff changeset
    51
    VM crashed.
fadec117e77d Issue #182: Added test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1957
diff changeset
    52
    "
fadec117e77d Issue #182: Added test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1957
diff changeset
    53
fadec117e77d Issue #182: Added test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1957
diff changeset
    54
    | blocker iters |
fadec117e77d Issue #182: Added test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1957
diff changeset
    55
fadec117e77d Issue #182: Added test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1957
diff changeset
    56
    Smalltalk loadPackage:'stx:libjava/tests'.  
fadec117e77d Issue #182: Added test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1957
diff changeset
    57
fadec117e77d Issue #182: Added test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1957
diff changeset
    58
    blocker := Semaphore new.
fadec117e77d Issue #182: Added test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1957
diff changeset
    59
    JavaVM reboot.
fadec117e77d Issue #182: Added test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1957
diff changeset
    60
    
fadec117e77d Issue #182: Added test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1957
diff changeset
    61
    [ 
fadec117e77d Issue #182: Added test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1957
diff changeset
    62
        [
fadec117e77d Issue #182: Added test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1957
diff changeset
    63
            | issue182 |
fadec117e77d Issue #182: Added test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1957
diff changeset
    64
fadec117e77d Issue #182: Added test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1957
diff changeset
    65
            issue182 := JAVA stx libjava tests mocks Issue182 new.
fadec117e77d Issue #182: Added test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1957
diff changeset
    66
            issue182 loopFor: 15.
fadec117e77d Issue #182: Added test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1957
diff changeset
    67
        ] on: JavaClassFormatError do:[
fadec117e77d Issue #182: Added test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1957
diff changeset
    68
            "/ This is expected
fadec117e77d Issue #182: Added test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1957
diff changeset
    69
        ] on: Error do:[:ex | 
fadec117e77d Issue #182: Added test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1957
diff changeset
    70
            ex suspendedContext fullPrintAllOn: Stdout.
fadec117e77d Issue #182: Added test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1957
diff changeset
    71
        ].
fadec117e77d Issue #182: Added test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1957
diff changeset
    72
        blocker signal.
fadec117e77d Issue #182: Added test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1957
diff changeset
    73
    ] fork.
fadec117e77d Issue #182: Added test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1957
diff changeset
    74
    Delay waitForSeconds: 5.
fadec117e77d Issue #182: Added test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1957
diff changeset
    75
    JAVA stx libjava tests mocks Issue182 constantPool atAllPut: nil.
fadec117e77d Issue #182: Added test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1957
diff changeset
    76
    blocker wait.
fadec117e77d Issue #182: Added test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1957
diff changeset
    77
fadec117e77d Issue #182: Added test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1957
diff changeset
    78
    "Created: / 19-10-2017 / 19:55:12 / Jan Vrany <jan.vrany@fit.cvut.cz>"
fadec117e77d Issue #182: Added test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1957
diff changeset
    79
    "Modified: / 26-10-2017 / 11:51:35 / Jan Vrany <jan.vrany@fit.cvut.cz>"
fadec117e77d Issue #182: Added test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1957
diff changeset
    80
!
fadec117e77d Issue #182: Added test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1957
diff changeset
    81
1493
8da0d9b56e92 Issue #64: added test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1248
diff changeset
    82
test_issue_64_vm_crashes_in_fclose
8da0d9b56e92 Issue #64: added test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1248
diff changeset
    83
    "
8da0d9b56e92 Issue #64: added test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1248
diff changeset
    84
    Quickly opening and closing files for long enough used to kill the
8da0d9b56e92 Issue #64: added test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1248
diff changeset
    85
    VM.
8da0d9b56e92 Issue #64: added test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1248
diff changeset
    86
8da0d9b56e92 Issue #64: added test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1248
diff changeset
    87
    This testcase keeps opening and closing files for 10 minutes. Just a
8da0d9b56e92 Issue #64: added test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1248
diff changeset
    88
    stress-test.
8da0d9b56e92 Issue #64: added test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1248
diff changeset
    89
    "
8da0d9b56e92 Issue #64: added test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1248
diff changeset
    90
8da0d9b56e92 Issue #64: added test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1248
diff changeset
    91
    <spawn: true>
8da0d9b56e92 Issue #64: added test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1248
diff changeset
    92
    <timeout: 660> "11min"
8da0d9b56e92 Issue #64: added test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1248
diff changeset
    93
1957
91005025501a Fixed `VMCrashTests >> test_newspace_resize`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1955
diff changeset
    94
    | timeout deadline iterStart iterStop directory files oldSpaceSizeLimit i |
1531
dbd517ea6e1c Issue #64: Temporarily disabled "fclose" test on Windows
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1500
diff changeset
    95
dbd517ea6e1c Issue #64: Temporarily disabled "fclose" test on Windows
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1500
diff changeset
    96
    "/ See https://swing.fit.cvut.cz/projects/stx-jv/ticket/64
dbd517ea6e1c Issue #64: Temporarily disabled "fclose" test on Windows
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1500
diff changeset
    97
    self skipIf: OperatingSystem isMSWINDOWSlike description: 'Temporarily skipped because of issue #64'.
dbd517ea6e1c Issue #64: Temporarily disabled "fclose" test on Windows
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1500
diff changeset
    98
1493
8da0d9b56e92 Issue #64: added test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1248
diff changeset
    99
8da0d9b56e92 Issue #64: added test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1248
diff changeset
   100
    timeout := self timeout.
8da0d9b56e92 Issue #64: added test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1248
diff changeset
   101
    deadline := OperatingSystem getMillisecondTime + ((timeout - 60"extra min to cover variance") * 1000).
8da0d9b56e92 Issue #64: added test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1248
diff changeset
   102
    iterStart := iterStop := 0.
8da0d9b56e92 Issue #64: added test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1248
diff changeset
   103
    i := 0.
1957
91005025501a Fixed `VMCrashTests >> test_newspace_resize`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1955
diff changeset
   104
    directory := Smalltalk getPackageDirectoryForPackage: #'stx:goodies'.
1598
300cd20b8c03 SnapshotRestartTests: do a compressing GC after some iterations
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1531
diff changeset
   105
300cd20b8c03 SnapshotRestartTests: do a compressing GC after some iterations
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1531
diff changeset
   106
    oldSpaceSizeLimit := ObjectMemory oldSpaceUsed + (128"MB"*1024*1024).
300cd20b8c03 SnapshotRestartTests: do a compressing GC after some iterations
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1531
diff changeset
   107
1493
8da0d9b56e92 Issue #64: added test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1248
diff changeset
   108
    [ OperatingSystem getMillisecondTime < (deadline - (iterStop - iterStart)) ] whileTrue:[
1957
91005025501a Fixed `VMCrashTests >> test_newspace_resize`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1955
diff changeset
   109
	iterStart := OperatingSystem getMillisecondTime.
1493
8da0d9b56e92 Issue #64: added test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1248
diff changeset
   110
1957
91005025501a Fixed `VMCrashTests >> test_newspace_resize`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1955
diff changeset
   111
	i := i + 1.
91005025501a Fixed `VMCrashTests >> test_newspace_resize`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1955
diff changeset
   112
	Stdout nextPutLine: 'Pass '  , i printString.
91005025501a Fixed `VMCrashTests >> test_newspace_resize`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1955
diff changeset
   113
	files := directory recursiveDirectoryContentsAsFilenames select:[:each | each isRegularFile ].
91005025501a Fixed `VMCrashTests >> test_newspace_resize`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1955
diff changeset
   114
	files := files select: [ :e | e suffix = 'st' ].
91005025501a Fixed `VMCrashTests >> test_newspace_resize`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1955
diff changeset
   115
	files collect:[ :e | (FileStream fileNamed: e) contents asString ].
91005025501a Fixed `VMCrashTests >> test_newspace_resize`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1955
diff changeset
   116
	Stdout nextPutLine: 'Pass '  , i printString , '...OK'.
91005025501a Fixed `VMCrashTests >> test_newspace_resize`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1955
diff changeset
   117
	(oldSpaceSizeLimit notNil and:[ ObjectMemory oldSpaceUsed > oldSpaceSizeLimit ]) ifTrue:[
91005025501a Fixed `VMCrashTests >> test_newspace_resize`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1955
diff changeset
   118
	    Stdout nextPutLine: 'GC'.
91005025501a Fixed `VMCrashTests >> test_newspace_resize`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1955
diff changeset
   119
	    files := nil.
91005025501a Fixed `VMCrashTests >> test_newspace_resize`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1955
diff changeset
   120
	    ObjectMemory compressingGarbageCollect.
91005025501a Fixed `VMCrashTests >> test_newspace_resize`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1955
diff changeset
   121
	    oldSpaceSizeLimit := ObjectMemory oldSpaceUsed + (128"MB"*1024*1024).
91005025501a Fixed `VMCrashTests >> test_newspace_resize`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1955
diff changeset
   122
	    Stdout nextPutLine: 'GC...OK '.
91005025501a Fixed `VMCrashTests >> test_newspace_resize`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1955
diff changeset
   123
	].
91005025501a Fixed `VMCrashTests >> test_newspace_resize`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1955
diff changeset
   124
	iterStop := OperatingSystem getMillisecondTime.
1493
8da0d9b56e92 Issue #64: added test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1248
diff changeset
   125
    ].
8da0d9b56e92 Issue #64: added test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1248
diff changeset
   126
1531
dbd517ea6e1c Issue #64: Temporarily disabled "fclose" test on Windows
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1500
diff changeset
   127
    "Created: / 04-09-2016 / 03:16:19 / jv"
1598
300cd20b8c03 SnapshotRestartTests: do a compressing GC after some iterations
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1531
diff changeset
   128
    "Modified: / 27-02-2017 / 12:10:21 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1493
8da0d9b56e92 Issue #64: added test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1248
diff changeset
   129
!
8da0d9b56e92 Issue #64: added test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1248
diff changeset
   130
1190
cf332dfb2334 Added regression test #test_java_initialize
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1181
diff changeset
   131
test_java_initialize
cf332dfb2334 Added regression test #test_java_initialize
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1181
diff changeset
   132
    "
cf332dfb2334 Added regression test #test_java_initialize
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1181
diff changeset
   133
    Running `JavaVM boot` for long enough used to kill the
cf332dfb2334 Added regression test #test_java_initialize
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1181
diff changeset
   134
    VM due to problems in memory managements.
cf332dfb2334 Added regression test #test_java_initialize
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1181
diff changeset
   135
cf332dfb2334 Added regression test #test_java_initialize
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1181
diff changeset
   136
    This testcase runs for 10 minutes a test in separate VM
cf332dfb2334 Added regression test #test_java_initialize
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1181
diff changeset
   137
    that 100 times boots and flushes the VM.
cf332dfb2334 Added regression test #test_java_initialize
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1181
diff changeset
   138
    "
cf332dfb2334 Added regression test #test_java_initialize
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1181
diff changeset
   139
cf332dfb2334 Added regression test #test_java_initialize
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1181
diff changeset
   140
    <spawn: false>
cf332dfb2334 Added regression test #test_java_initialize
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1181
diff changeset
   141
    <timeout: 660> "11min"
cf332dfb2334 Added regression test #test_java_initialize
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1181
diff changeset
   142
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1248
diff changeset
   143
    | timeout deadline iterStart iterStop |
1190
cf332dfb2334 Added regression test #test_java_initialize
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1181
diff changeset
   144
cf332dfb2334 Added regression test #test_java_initialize
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1181
diff changeset
   145
    timeout := self timeout.
cf332dfb2334 Added regression test #test_java_initialize
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1181
diff changeset
   146
    deadline := OperatingSystem getMillisecondTime + ((timeout - 60"extra min to cover variance") * 1000).
cf332dfb2334 Added regression test #test_java_initialize
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1181
diff changeset
   147
    iterStart := iterStop := 0.
cf332dfb2334 Added regression test #test_java_initialize
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1181
diff changeset
   148
    [ OperatingSystem getMillisecondTime < (deadline - (iterStop - iterStart)) ] whileTrue:[
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1248
diff changeset
   149
	iterStart := OperatingSystem getMillisecondTime.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1248
diff changeset
   150
	(self class selector: #iter_java_initialize) runCase.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1248
diff changeset
   151
	iterStop := OperatingSystem getMillisecondTime.
1190
cf332dfb2334 Added regression test #test_java_initialize
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1181
diff changeset
   152
    ].
cf332dfb2334 Added regression test #test_java_initialize
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1181
diff changeset
   153
cf332dfb2334 Added regression test #test_java_initialize
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1181
diff changeset
   154
    "Created: / 08-09-2014 / 12:14:46 / Jan Vrany <jan.vrany@fit.cvut.cz>"
cf332dfb2334 Added regression test #test_java_initialize
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1181
diff changeset
   155
!
cf332dfb2334 Added regression test #test_java_initialize
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1181
diff changeset
   156
1181
62d2da1a9c41 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   157
test_newspace_overflow
62d2da1a9c41 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   158
62d2da1a9c41 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   159
    <timeout: 120> "2min"
1193
4fd89b765c87 Added forgotten annotation <spawn:true> to newspace overflow test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1190
diff changeset
   160
    <spawn: true>
1181
62d2da1a9c41 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   161
62d2da1a9c41 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   162
    | newSize newLimit |
62d2da1a9c41 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   163
62d2da1a9c41 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   164
    newSize := ObjectMemory newSpaceSize.
62d2da1a9c41 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   165
    newLimit := (newSize * 0.9) rounded.
62d2da1a9c41 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   166
    "/ Allocate some garbage to fill in new space...
62d2da1a9c41 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   167
    [ ObjectMemory newSpaceUsed < newLimit ] whileTrue:[
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1248
diff changeset
   168
	| a |
1181
62d2da1a9c41 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   169
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1248
diff changeset
   170
	a := Array new: 100.
1181
62d2da1a9c41 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   171
    ].
1248
ab9af85de41a class: RegressionTests::VMCrashTests
Claus Gittinger <cg@exept.de>
parents: 1193
diff changeset
   172
    "/ Now, allocate some really huge object
1498
398050ba2384 Fixed VMCrashTests>>test_newspace_overflow
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1493
diff changeset
   173
    [
1957
91005025501a Fixed `VMCrashTests >> test_newspace_resize`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1955
diff changeset
   174
	String new: 300 * 1024 * 1024"300MB"
1498
398050ba2384 Fixed VMCrashTests>>test_newspace_overflow
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1493
diff changeset
   175
    ] on: AllocationFailure do:[:ex |
1957
91005025501a Fixed `VMCrashTests >> test_newspace_resize`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1955
diff changeset
   176
	"/ Do nothing, allocation failure is valid error
1498
398050ba2384 Fixed VMCrashTests>>test_newspace_overflow
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1493
diff changeset
   177
    ].
1181
62d2da1a9c41 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   178
62d2da1a9c41 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   179
    "Created: / 05-09-2014 / 19:44:09 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1193
4fd89b765c87 Added forgotten annotation <spawn:true> to newspace overflow test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1190
diff changeset
   180
    "Modified: / 16-09-2014 / 18:50:30 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1498
398050ba2384 Fixed VMCrashTests>>test_newspace_overflow
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1493
diff changeset
   181
    "Modified: / 24-06-2016 / 00:41:29 / jv"
1603
37db6f9f4ac5 Added test for regression in STX:LIBJAVA when compiled with `-O` or `-O2`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1598
diff changeset
   182
!
37db6f9f4ac5 Added test for regression in STX:LIBJAVA when compiled with `-O` or `-O2`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1598
diff changeset
   183
1955
509eae4c5c94 Added tests for newspace resizing (`ObjectMemory >> #newSpaceSize:`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1953
diff changeset
   184
test_newspace_resize
509eae4c5c94 Added tests for newspace resizing (`ObjectMemory >> #newSpaceSize:`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1953
diff changeset
   185
509eae4c5c94 Added tests for newspace resizing (`ObjectMemory >> #newSpaceSize:`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1953
diff changeset
   186
    <timeout: 120> "2min"
509eae4c5c94 Added tests for newspace resizing (`ObjectMemory >> #newSpaceSize:`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1953
diff changeset
   187
    <spawn: true>
509eae4c5c94 Added tests for newspace resizing (`ObjectMemory >> #newSpaceSize:`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1953
diff changeset
   188
509eae4c5c94 Added tests for newspace resizing (`ObjectMemory >> #newSpaceSize:`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1953
diff changeset
   189
    | newSize newLimit holder |
509eae4c5c94 Added tests for newspace resizing (`ObjectMemory >> #newSpaceSize:`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1953
diff changeset
   190
509eae4c5c94 Added tests for newspace resizing (`ObjectMemory >> #newSpaceSize:`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1953
diff changeset
   191
    newSize := ObjectMemory newSpaceSize.
509eae4c5c94 Added tests for newspace resizing (`ObjectMemory >> #newSpaceSize:`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1953
diff changeset
   192
    [
509eae4c5c94 Added tests for newspace resizing (`ObjectMemory >> #newSpaceSize:`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1953
diff changeset
   193
    ObjectMemory scavenge.
509eae4c5c94 Added tests for newspace resizing (`ObjectMemory >> #newSpaceSize:`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1953
diff changeset
   194
    newLimit := (ObjectMemory newSpaceSize * 0.9) rounded.
509eae4c5c94 Added tests for newspace resizing (`ObjectMemory >> #newSpaceSize:`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1953
diff changeset
   195
509eae4c5c94 Added tests for newspace resizing (`ObjectMemory >> #newSpaceSize:`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1953
diff changeset
   196
    "/ Fill in new space so it's 90% full, no garbage.
1957
91005025501a Fixed `VMCrashTests >> test_newspace_resize`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1955
diff changeset
   197
    holder := OrderedCollection new.
1955
509eae4c5c94 Added tests for newspace resizing (`ObjectMemory >> #newSpaceSize:`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1953
diff changeset
   198
    [ ObjectMemory newSpaceUsed < newLimit ] whileTrue:[
1957
91005025501a Fixed `VMCrashTests >> test_newspace_resize`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1955
diff changeset
   199
	holder add: (Array new: 100).
1955
509eae4c5c94 Added tests for newspace resizing (`ObjectMemory >> #newSpaceSize:`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1953
diff changeset
   200
    ].
509eae4c5c94 Added tests for newspace resizing (`ObjectMemory >> #newSpaceSize:`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1953
diff changeset
   201
    "/ Grow the new space to two times the current size.
509eae4c5c94 Added tests for newspace resizing (`ObjectMemory >> #newSpaceSize:`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1953
diff changeset
   202
    ObjectMemory newSpaceSize: 2 * newSize.
509eae4c5c94 Added tests for newspace resizing (`ObjectMemory >> #newSpaceSize:`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1953
diff changeset
   203
    self assert: (ObjectMemory newSpaceSize >= (2 * newSize)).
509eae4c5c94 Added tests for newspace resizing (`ObjectMemory >> #newSpaceSize:`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1953
diff changeset
   204
    self assert: (ObjectMemory newSpaceUsed / ObjectMemory newSpaceSize) < 0.5.
509eae4c5c94 Added tests for newspace resizing (`ObjectMemory >> #newSpaceSize:`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1953
diff changeset
   205
509eae4c5c94 Added tests for newspace resizing (`ObjectMemory >> #newSpaceSize:`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1953
diff changeset
   206
    "/ Fill in new space so it's 90% full, no garbage.
509eae4c5c94 Added tests for newspace resizing (`ObjectMemory >> #newSpaceSize:`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1953
diff changeset
   207
    newLimit := (ObjectMemory newSpaceSize * 0.9) rounded.
509eae4c5c94 Added tests for newspace resizing (`ObjectMemory >> #newSpaceSize:`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1953
diff changeset
   208
    [ ObjectMemory newSpaceUsed < newLimit ] whileTrue:[
1957
91005025501a Fixed `VMCrashTests >> test_newspace_resize`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1955
diff changeset
   209
	holder add: (Array new: 100).
1955
509eae4c5c94 Added tests for newspace resizing (`ObjectMemory >> #newSpaceSize:`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1953
diff changeset
   210
    ].
1957
91005025501a Fixed `VMCrashTests >> test_newspace_resize`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1955
diff changeset
   211
    "/ Increase old space to make sure there's enough
91005025501a Fixed `VMCrashTests >> test_newspace_resize`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1955
diff changeset
   212
    "/ old space to tenure objects to. See
91005025501a Fixed `VMCrashTests >> test_newspace_resize`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1955
diff changeset
   213
    "/
91005025501a Fixed `VMCrashTests >> test_newspace_resize`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1955
diff changeset
   214
    "/ ObjectMemory >> newSpaceSize:
91005025501a Fixed `VMCrashTests >> test_newspace_resize`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1955
diff changeset
   215
    "/
91005025501a Fixed `VMCrashTests >> test_newspace_resize`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1955
diff changeset
   216
    ObjectMemory moreOldSpace: newSize * 2.
1955
509eae4c5c94 Added tests for newspace resizing (`ObjectMemory >> #newSpaceSize:`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1953
diff changeset
   217
    ObjectMemory newSpaceSize: newSize.
509eae4c5c94 Added tests for newspace resizing (`ObjectMemory >> #newSpaceSize:`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1953
diff changeset
   218
    self assert: (ObjectMemory newSpaceSize < (newSize + 4096"page size as tolerance for page aligning")).
509eae4c5c94 Added tests for newspace resizing (`ObjectMemory >> #newSpaceSize:`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1953
diff changeset
   219
1957
91005025501a Fixed `VMCrashTests >> test_newspace_resize`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1955
diff changeset
   220
    ] ensure:[
91005025501a Fixed `VMCrashTests >> test_newspace_resize`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1955
diff changeset
   221
	ObjectMemory newSpaceSize: newSize.
1955
509eae4c5c94 Added tests for newspace resizing (`ObjectMemory >> #newSpaceSize:`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1953
diff changeset
   222
    ].
509eae4c5c94 Added tests for newspace resizing (`ObjectMemory >> #newSpaceSize:`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1953
diff changeset
   223
509eae4c5c94 Added tests for newspace resizing (`ObjectMemory >> #newSpaceSize:`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1953
diff changeset
   224
    "Created: / 21-09-2017 / 23:16:32 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1957
91005025501a Fixed `VMCrashTests >> test_newspace_resize`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1955
diff changeset
   225
    "Modified: / 05-10-2017 / 22:28:25 / Jan Vrany <jan.vrany@fit.cvut.cz>"
91005025501a Fixed `VMCrashTests >> test_newspace_resize`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1955
diff changeset
   226
    "Modified (comment): / 08-10-2017 / 23:51:30 / jv"
1955
509eae4c5c94 Added tests for newspace resizing (`ObjectMemory >> #newSpaceSize:`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1953
diff changeset
   227
!
509eae4c5c94 Added tests for newspace resizing (`ObjectMemory >> #newSpaceSize:`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1953
diff changeset
   228
1603
37db6f9f4ac5 Added test for regression in STX:LIBJAVA when compiled with `-O` or `-O2`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1598
diff changeset
   229
test_stx_libjava_testSuite_inspect
37db6f9f4ac5 Added test for regression in STX:LIBJAVA when compiled with `-O` or `-O2`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1598
diff changeset
   230
    <timeout: 120> "2min"
37db6f9f4ac5 Added test for regression in STX:LIBJAVA when compiled with `-O` or `-O2`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1598
diff changeset
   231
    <spawn: true>
37db6f9f4ac5 Added test for regression in STX:LIBJAVA when compiled with `-O` or `-O2`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1598
diff changeset
   232
37db6f9f4ac5 Added test for regression in STX:LIBJAVA when compiled with `-O` or `-O2`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1598
diff changeset
   233
    stx_libjava testSuite inspect.
37db6f9f4ac5 Added test for regression in STX:LIBJAVA when compiled with `-O` or `-O2`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1598
diff changeset
   234
37db6f9f4ac5 Added test for regression in STX:LIBJAVA when compiled with `-O` or `-O2`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1598
diff changeset
   235
    "Created: / 01-05-2017 / 21:34:46 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1181
62d2da1a9c41 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   236
! !
62d2da1a9c41 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   237
62d2da1a9c41 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   238
!VMCrashTests class methodsFor:'documentation'!
62d2da1a9c41 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   239
62d2da1a9c41 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   240
version
62d2da1a9c41 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   241
    ^ '$Header$'
62d2da1a9c41 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   242
!
62d2da1a9c41 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   243
62d2da1a9c41 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   244
version_CVS
62d2da1a9c41 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   245
    ^ '$Header$'
1493
8da0d9b56e92 Issue #64: added test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1248
diff changeset
   246
!
8da0d9b56e92 Issue #64: added test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1248
diff changeset
   247
8da0d9b56e92 Issue #64: added test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1248
diff changeset
   248
version_HG
8da0d9b56e92 Issue #64: added test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1248
diff changeset
   249
8da0d9b56e92 Issue #64: added test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1248
diff changeset
   250
    ^ '$Changeset: <not expanded> $'
1181
62d2da1a9c41 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   251
! !
1958
fadec117e77d Issue #182: Added test
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1957
diff changeset
   252