RegressionTests__VMCrashTests.st
author Claus Gittinger <cg@exept.de>
Tue, 09 Jul 2019 18:53:03 +0200
changeset 2327 bf482d49aeaf
parent 1904 a87e221839de
permissions -rw-r--r--
#QUALITY by exept class: RegressionTests::StringTests added: #test82c_expanding
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
cf332dfb2334 Added regression test #test_java_initialize
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1181
diff changeset
    32
test_java_initialize
cf332dfb2334 Added regression test #test_java_initialize
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1181
diff changeset
    33
    "
cf332dfb2334 Added regression test #test_java_initialize
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1181
diff changeset
    34
    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
    35
    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
    36
cf332dfb2334 Added regression test #test_java_initialize
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1181
diff changeset
    37
    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
    38
    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
    39
    "
cf332dfb2334 Added regression test #test_java_initialize
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1181
diff changeset
    40
cf332dfb2334 Added regression test #test_java_initialize
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1181
diff changeset
    41
    <spawn: false>
cf332dfb2334 Added regression test #test_java_initialize
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1181
diff changeset
    42
    <timeout: 660> "11min"
cf332dfb2334 Added regression test #test_java_initialize
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1181
diff changeset
    43
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1248
diff changeset
    44
    | timeout deadline iterStart iterStop |
1190
cf332dfb2334 Added regression test #test_java_initialize
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1181
diff changeset
    45
1904
a87e221839de care for nil JavaRelease
Claus Gittinger <cg@exept.de>
parents: 1447
diff changeset
    46
    JavaRelease isNil ifTrue:[
a87e221839de care for nil JavaRelease
Claus Gittinger <cg@exept.de>
parents: 1447
diff changeset
    47
	Smalltalk loadPackage:'stx:libjava'.
a87e221839de care for nil JavaRelease
Claus Gittinger <cg@exept.de>
parents: 1447
diff changeset
    48
	self assert:(JavaRelease notNil).
a87e221839de care for nil JavaRelease
Claus Gittinger <cg@exept.de>
parents: 1447
diff changeset
    49
    ].
a87e221839de care for nil JavaRelease
Claus Gittinger <cg@exept.de>
parents: 1447
diff changeset
    50
1190
cf332dfb2334 Added regression test #test_java_initialize
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1181
diff changeset
    51
    timeout := self timeout.
cf332dfb2334 Added regression test #test_java_initialize
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1181
diff changeset
    52
    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
    53
    iterStart := iterStop := 0.
cf332dfb2334 Added regression test #test_java_initialize
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1181
diff changeset
    54
    [ OperatingSystem getMillisecondTime < (deadline - (iterStop - iterStart)) ] whileTrue:[
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1248
diff changeset
    55
	iterStart := OperatingSystem getMillisecondTime.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1248
diff changeset
    56
	(self class selector: #iter_java_initialize) runCase.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1248
diff changeset
    57
	iterStop := OperatingSystem getMillisecondTime.
1190
cf332dfb2334 Added regression test #test_java_initialize
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1181
diff changeset
    58
    ].
cf332dfb2334 Added regression test #test_java_initialize
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1181
diff changeset
    59
cf332dfb2334 Added regression test #test_java_initialize
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1181
diff changeset
    60
    "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
    61
!
cf332dfb2334 Added regression test #test_java_initialize
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1181
diff changeset
    62
1181
62d2da1a9c41 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    63
test_newspace_overflow
62d2da1a9c41 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    64
62d2da1a9c41 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    65
    <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
    66
    <spawn: true>
1181
62d2da1a9c41 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    67
62d2da1a9c41 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    68
    | newSize newLimit |
62d2da1a9c41 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    69
62d2da1a9c41 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    70
    newSize := ObjectMemory newSpaceSize.
62d2da1a9c41 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    71
    newLimit := (newSize * 0.9) rounded.
62d2da1a9c41 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    72
    "/ Allocate some garbage to fill in new space...
62d2da1a9c41 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    73
    [ ObjectMemory newSpaceUsed < newLimit ] whileTrue:[
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1248
diff changeset
    74
	| a |
1181
62d2da1a9c41 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    75
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1248
diff changeset
    76
	a := Array new: 100.
1181
62d2da1a9c41 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    77
    ].
1248
ab9af85de41a class: RegressionTests::VMCrashTests
Claus Gittinger <cg@exept.de>
parents: 1193
diff changeset
    78
    "/ Now, allocate some really huge object
1181
62d2da1a9c41 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    79
    String new: 300 * 1024 * 1024"300MB"
62d2da1a9c41 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    80
62d2da1a9c41 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    81
    "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
    82
    "Modified: / 16-09-2014 / 18:50:30 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1181
62d2da1a9c41 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    83
! !
62d2da1a9c41 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    84
62d2da1a9c41 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    85
!VMCrashTests class methodsFor:'documentation'!
62d2da1a9c41 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    86
62d2da1a9c41 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    87
version
62d2da1a9c41 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    88
    ^ '$Header$'
62d2da1a9c41 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    89
!
62d2da1a9c41 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    90
62d2da1a9c41 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    91
version_CVS
62d2da1a9c41 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    92
    ^ '$Header$'
62d2da1a9c41 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    93
! !