RegressionTests__SnapshotRestartTests.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Thu, 05 Jan 2017 23:36:28 +0000
branchjv
changeset 1567 e17701a073f9
parent 1543 6d2bdaf0c9ec
child 1568 4fc22e888376
permissions -rw-r--r--
Added abstract VMSpawningTestCase ...a base superclass for tests that spawns new smalltalk - such as VMCrashTests and SnapshotRestartTests.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1191
diff changeset
     1
"{ Package: 'stx:goodies/regression' }"
980
baea090b0fc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     2
baea090b0fc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     3
"{ NameSpace: RegressionTests }"
baea090b0fc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     4
1567
e17701a073f9 Added abstract VMSpawningTestCase
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1543
diff changeset
     5
VMSpawningTestCase subclass:#SnapshotRestartTests
980
baea090b0fc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     6
	instanceVariableNames:'pkgdir exe tmpdir'
baea090b0fc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     7
	classVariableNames:''
baea090b0fc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     8
	poolDictionaries:''
baea090b0fc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     9
	category:'tests-Regression'
baea090b0fc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    10
!
baea090b0fc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    11
baea090b0fc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    12
TestCase subclass:#ToRunOnFreshAndRestartedSnapshotTests
baea090b0fc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    13
	instanceVariableNames:''
baea090b0fc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    14
	classVariableNames:''
baea090b0fc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    15
	poolDictionaries:''
baea090b0fc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    16
	privateIn:SnapshotRestartTests
baea090b0fc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    17
!
baea090b0fc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    18
baea090b0fc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    19
baea090b0fc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    20
!SnapshotRestartTests methodsFor:'asserting'!
baea090b0fc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    21
999
8626f0850709 class: RegressionTests::SnapshotRestartTests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 998
diff changeset
    22
assertAllTestsPassed: logfile
1491
a86224e74f3a Fix in SnapshotRestartTest: log at most 5MB of VM log
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1489
diff changeset
    23
    | innerSuite expected logfileContents |
980
baea090b0fc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    24
baea090b0fc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    25
    innerSuite := ToRunOnFreshAndRestartedSnapshotTests buildSuite.
baea090b0fc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    26
    expected := '%1 run, %1 passed, 0 skipped, 0 failed, 0 errors ### HERE ### ' bindWith: innerSuite tests size.
999
8626f0850709 class: RegressionTests::SnapshotRestartTests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 998
diff changeset
    27
    logfile readingFileDo:[:s |
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1191
diff changeset
    28
	[ s atEnd ] whileFalse:[
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1191
diff changeset
    29
	    | line |
999
8626f0850709 class: RegressionTests::SnapshotRestartTests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 998
diff changeset
    30
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1191
diff changeset
    31
	    line := s nextLine.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1191
diff changeset
    32
	    "/ Uss starts with because on Windows you get 0xD chars at the end, sigh
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1191
diff changeset
    33
	    (line startsWith: expected) ifTrue:[ ^ self ].
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1191
diff changeset
    34
	]
980
baea090b0fc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    35
    ].
1191
1e331c8a74a6 class: RegressionTests::SnapshotRestartTests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1000
diff changeset
    36
    "
1e331c8a74a6 class: RegressionTests::SnapshotRestartTests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1000
diff changeset
    37
    logfile contents asString
1e331c8a74a6 class: RegressionTests::SnapshotRestartTests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1000
diff changeset
    38
    "
1491
a86224e74f3a Fix in SnapshotRestartTest: log at most 5MB of VM log
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1489
diff changeset
    39
    logfile readingFileDo: [ :f |
a86224e74f3a Fix in SnapshotRestartTest: log at most 5MB of VM log
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1489
diff changeset
    40
        "Read at most 5MB of the log to avoid reading gigabytes 
a86224e74f3a Fix in SnapshotRestartTest: log at most 5MB of VM log
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1489
diff changeset
    41
         of output produced by a 'thundestorm'."
1495
1430b808086b Fix in SnapshotRestartTest: log at most 16K of VM log
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1491
diff changeset
    42
        logfileContents := f next: (logfile fileSize min: (16 * 1024"16Kb")).
1430b808086b Fix in SnapshotRestartTest: log at most 16K of VM log
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1491
diff changeset
    43
	"/ logfileContents := 'Disabled'.
1491
a86224e74f3a Fix in SnapshotRestartTest: log at most 5MB of VM log
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1489
diff changeset
    44
    ].
a86224e74f3a Fix in SnapshotRestartTest: log at most 5MB of VM log
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1489
diff changeset
    45
    self assert: false description: ('Not all inner tests passed: ' , logfileContents).
980
baea090b0fc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    46
baea090b0fc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    47
    "Created: / 14-08-2013 / 20:06:30 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1491
a86224e74f3a Fix in SnapshotRestartTest: log at most 5MB of VM log
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1489
diff changeset
    48
    "Modified (format): / 31-05-2016 / 17:00:27 / Jan Vrany <jan.vrany@fit.cvut.cz>"
980
baea090b0fc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    49
! !
baea090b0fc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    50
baea090b0fc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    51
!SnapshotRestartTests methodsFor:'compilation'!
baea090b0fc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    52
baea090b0fc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    53
make
baea090b0fc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    54
    ^ self make:''.
baea090b0fc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    55
baea090b0fc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    56
    "Created: / 14-08-2013 / 18:27:11 / Jan Vrany <jan.vrany@fit.cvut.cz>"
baea090b0fc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    57
!
baea090b0fc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    58
baea090b0fc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    59
make: target
baea090b0fc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    60
    | cmd |
baea090b0fc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    61
1489
2f9591a475f2 Fix in SnapshotRestartTests to use proper toolchain when building on Windows
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1191
diff changeset
    62
    OperatingSystem isMSWINDOWSlike ifTrue:[ 
1541
5c6a32e00528 Fixed `MakefileTests` and `SnapshotRestartTests` to not call obsolete method OperatingSystem>>getCCDefine
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1500
diff changeset
    63
        STCCompilerInterface getCCDefine = '__BORLANDC__' ifTrue:[ 
1489
2f9591a475f2 Fix in SnapshotRestartTests to use proper toolchain when building on Windows
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1191
diff changeset
    64
            cmd := 'bmake.bat ' , target.
2f9591a475f2 Fix in SnapshotRestartTests to use proper toolchain when building on Windows
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1191
diff changeset
    65
        ].
1541
5c6a32e00528 Fixed `MakefileTests` and `SnapshotRestartTests` to not call obsolete method OperatingSystem>>getCCDefine
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1500
diff changeset
    66
        STCCompilerInterface getCCDefine = '__MINGW32__' ifTrue:[ 
1543
6d2bdaf0c9ec Fixed `MakefileTests` and `SnapshotRestartTests` to work on MSYS2-only systems
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1541
diff changeset
    67
            (OperatingSystem getEnvironment: 'MINGW_DIR') isNil ifTrue:[
6d2bdaf0c9ec Fixed `MakefileTests` and `SnapshotRestartTests` to work on MSYS2-only systems
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1541
diff changeset
    68
                | mingwDir |
6d2bdaf0c9ec Fixed `MakefileTests` and `SnapshotRestartTests` to work on MSYS2-only systems
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1541
diff changeset
    69
6d2bdaf0c9ec Fixed `MakefileTests` and `SnapshotRestartTests` to work on MSYS2-only systems
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1541
diff changeset
    70
                mingwDir := #('C:\MSYS64\MINGW32' 'C:\MINGW') detect:[:path | path asFilename isDirectory ] ifNone: [ nil ].
6d2bdaf0c9ec Fixed `MakefileTests` and `SnapshotRestartTests` to work on MSYS2-only systems
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1541
diff changeset
    71
                self assert: mingwDir notNil description: 'MINGW_DIR environment variable not set and MINGW32 not found at standard places'.
6d2bdaf0c9ec Fixed `MakefileTests` and `SnapshotRestartTests` to work on MSYS2-only systems
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1541
diff changeset
    72
                OperatingSystem setEnvironment: 'MINGW_DIR'     to: mingwDir.
1489
2f9591a475f2 Fix in SnapshotRestartTests to use proper toolchain when building on Windows
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1191
diff changeset
    73
            ].
2f9591a475f2 Fix in SnapshotRestartTests to use proper toolchain when building on Windows
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1191
diff changeset
    74
            OperatingSystem setEnvironment: 'MINGW'         to: '__MINGW32__'.
2f9591a475f2 Fix in SnapshotRestartTests to use proper toolchain when building on Windows
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1191
diff changeset
    75
            OperatingSystem setEnvironment: 'USEMINGW_ARG'  to: '-DUSEMINGW32'.
1543
6d2bdaf0c9ec Fixed `MakefileTests` and `SnapshotRestartTests` to work on MSYS2-only systems
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1541
diff changeset
    76
            OperatingSystem setEnvironment: 'PATH'          to: (OperatingSystem getEnvironment: 'PATH') , ';' , (OperatingSystem getEnvironment: 'MINGW_DIR') , '\bin'.
1489
2f9591a475f2 Fix in SnapshotRestartTests to use proper toolchain when building on Windows
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1191
diff changeset
    77
            cmd := 'mingwmake.bat ' , target.
2f9591a475f2 Fix in SnapshotRestartTests to use proper toolchain when building on Windows
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1191
diff changeset
    78
        ].
1541
5c6a32e00528 Fixed `MakefileTests` and `SnapshotRestartTests` to not call obsolete method OperatingSystem>>getCCDefine
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1500
diff changeset
    79
        STCCompilerInterface getCCDefine = '__MINGW64__' ifTrue:[ 
1489
2f9591a475f2 Fix in SnapshotRestartTests to use proper toolchain when building on Windows
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1191
diff changeset
    80
            (OperatingSystem getEnvironment: 'MINGW_DIR') isNil ifTrue:[ 
1543
6d2bdaf0c9ec Fixed `MakefileTests` and `SnapshotRestartTests` to work on MSYS2-only systems
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1541
diff changeset
    81
                | mingwDir |
6d2bdaf0c9ec Fixed `MakefileTests` and `SnapshotRestartTests` to work on MSYS2-only systems
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1541
diff changeset
    82
6d2bdaf0c9ec Fixed `MakefileTests` and `SnapshotRestartTests` to work on MSYS2-only systems
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1541
diff changeset
    83
                mingwDir := #('C:\MSYS64\MINGW64' 'C:\MINGW64') detect:[:path | path asFilename isDirectory ] ifNone: [ nil ].
6d2bdaf0c9ec Fixed `MakefileTests` and `SnapshotRestartTests` to work on MSYS2-only systems
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1541
diff changeset
    84
                self assert: mingwDir notNil description: 'MINGW_DIR environment variable not set and MINGW64 not found at standard places'.
6d2bdaf0c9ec Fixed `MakefileTests` and `SnapshotRestartTests` to work on MSYS2-only systems
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1541
diff changeset
    85
                OperatingSystem setEnvironment: 'MINGW_DIR'     to: mingwDir.   
1489
2f9591a475f2 Fix in SnapshotRestartTests to use proper toolchain when building on Windows
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1191
diff changeset
    86
            ].
2f9591a475f2 Fix in SnapshotRestartTests to use proper toolchain when building on Windows
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1191
diff changeset
    87
            OperatingSystem setEnvironment: 'MINGW'         to: '__MINGW64__'.
2f9591a475f2 Fix in SnapshotRestartTests to use proper toolchain when building on Windows
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1191
diff changeset
    88
            OperatingSystem setEnvironment: 'USEMINGW_ARG'  to: '-DUSEMINGW64'.
1543
6d2bdaf0c9ec Fixed `MakefileTests` and `SnapshotRestartTests` to work on MSYS2-only systems
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1541
diff changeset
    89
            OperatingSystem setEnvironment: 'PATH'          to: (OperatingSystem getEnvironment: 'PATH') , ';' , (OperatingSystem getEnvironment: 'MINGW_DIR') , '\bin'.
1489
2f9591a475f2 Fix in SnapshotRestartTests to use proper toolchain when building on Windows
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1191
diff changeset
    90
            cmd := 'mingwmake.bat ' , target.
1543
6d2bdaf0c9ec Fixed `MakefileTests` and `SnapshotRestartTests` to work on MSYS2-only systems
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1541
diff changeset
    91
        ].    
1489
2f9591a475f2 Fix in SnapshotRestartTests to use proper toolchain when building on Windows
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1191
diff changeset
    92
    ] ifFalse:[
2f9591a475f2 Fix in SnapshotRestartTests to use proper toolchain when building on Windows
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1191
diff changeset
    93
        cmd := 'make -f Makefile.init ', target
2f9591a475f2 Fix in SnapshotRestartTests to use proper toolchain when building on Windows
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1191
diff changeset
    94
    ].
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1191
diff changeset
    95
    self
1541
5c6a32e00528 Fixed `MakefileTests` and `SnapshotRestartTests` to not call obsolete method OperatingSystem>>getCCDefine
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1500
diff changeset
    96
        assert: (OperatingSystem executeCommand: cmd inDirectory: pkgdir)
5c6a32e00528 Fixed `MakefileTests` and `SnapshotRestartTests` to not call obsolete method OperatingSystem>>getCCDefine
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1500
diff changeset
    97
        description: 'Failed to make target ''', target, ''' in test package'.
980
baea090b0fc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    98
baea090b0fc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    99
    "Created: / 14-08-2013 / 18:26:39 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1541
5c6a32e00528 Fixed `MakefileTests` and `SnapshotRestartTests` to not call obsolete method OperatingSystem>>getCCDefine
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1500
diff changeset
   100
    "Modified: / 05-11-2016 / 22:48:25 / jv"
1543
6d2bdaf0c9ec Fixed `MakefileTests` and `SnapshotRestartTests` to work on MSYS2-only systems
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1541
diff changeset
   101
    "Modified: / 10-11-2016 / 00:23:35 / Jan Vrany <jan.vrany@fit.cvut.cz>"
980
baea090b0fc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   102
! !
baea090b0fc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   103
baea090b0fc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   104
!SnapshotRestartTests methodsFor:'running'!
baea090b0fc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   105
baea090b0fc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   106
runTestsOnFreshImage
999
8626f0850709 class: RegressionTests::SnapshotRestartTests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 998
diff changeset
   107
    | script log logfile |
980
baea090b0fc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   108
baea090b0fc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   109
    script := pkgdir / 'run-ToRunOnFreshAndRestartedSnapshotTests-tests.st'.
baea090b0fc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   110
    self assert: script exists.
1000
0856cdcc7674 class: RegressionTests::SnapshotRestartTests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 999
diff changeset
   111
    log := FileStream newTemporaryIn: Filename currentDirectory nameTemplate: ('RegressionTests__SnapshotRestartTests-' , testSelector , '%1-%2.log').
999
8626f0850709 class: RegressionTests::SnapshotRestartTests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 998
diff changeset
   112
    logfile := log fileName.
8626f0850709 class: RegressionTests::SnapshotRestartTests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 998
diff changeset
   113
    [
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1191
diff changeset
   114
	OperatingSystem executeCommand: ('%1 --execute %2' bindWith: exe with: script asAbsoluteFilename pathName) outputTo: log errorTo: log inDirectory: tmpdir pathName.
999
8626f0850709 class: RegressionTests::SnapshotRestartTests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 998
diff changeset
   115
    ] ensure:[
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1191
diff changeset
   116
	log close.
980
baea090b0fc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   117
    ].
999
8626f0850709 class: RegressionTests::SnapshotRestartTests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 998
diff changeset
   118
8626f0850709 class: RegressionTests::SnapshotRestartTests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 998
diff changeset
   119
    self assertAllTestsPassed: logfile.
980
baea090b0fc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   120
baea090b0fc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   121
    "Created: / 14-08-2013 / 20:06:30 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1000
0856cdcc7674 class: RegressionTests::SnapshotRestartTests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 999
diff changeset
   122
    "Modified: / 13-09-2013 / 12:54:53 / Jan Vrany <jan.vrany@fit.cvut.cz>"
980
baea090b0fc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   123
!
baea090b0fc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   124
baea090b0fc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   125
runTestsOnRestartedImage
999
8626f0850709 class: RegressionTests::SnapshotRestartTests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 998
diff changeset
   126
    |  log logfile |
980
baea090b0fc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   127
1000
0856cdcc7674 class: RegressionTests::SnapshotRestartTests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 999
diff changeset
   128
    log := FileStream newTemporaryIn: Filename currentDirectory nameTemplate: ('RegressionTests__SnapshotRestartTests-' , testSelector , '%1-%2.log').
999
8626f0850709 class: RegressionTests::SnapshotRestartTests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 998
diff changeset
   129
    logfile := log fileName.
8626f0850709 class: RegressionTests::SnapshotRestartTests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 998
diff changeset
   130
    [
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1191
diff changeset
   131
	OperatingSystem executeCommand: ('%1 -i %2' bindWith: exe with: (tmpdir / 'restart.img') pathName ) outputTo: log errorTo: log inDirectory: tmpdir pathName
999
8626f0850709 class: RegressionTests::SnapshotRestartTests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 998
diff changeset
   132
    ] ensure:[
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1191
diff changeset
   133
	log close.
980
baea090b0fc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   134
    ].
999
8626f0850709 class: RegressionTests::SnapshotRestartTests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 998
diff changeset
   135
    self assertAllTestsPassed: logfile.
980
baea090b0fc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   136
baea090b0fc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   137
    "Created: / 14-08-2013 / 20:10:06 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1000
0856cdcc7674 class: RegressionTests::SnapshotRestartTests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 999
diff changeset
   138
    "Modified: / 13-09-2013 / 12:54:48 / Jan Vrany <jan.vrany@fit.cvut.cz>"
980
baea090b0fc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   139
!
baea090b0fc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   140
baea090b0fc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   141
setUp
baea090b0fc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   142
    tmpdir := Filename newTemporaryDirectory.
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1191
diff changeset
   143
    pkgdir := Smalltalk getPackageDirectoryForPackage: #'stx:goodies/regression/testData/packages/snapshot_restart'.
980
baea090b0fc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   144
    self assert: pkgdir notNil.
baea090b0fc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   145
    self assert: pkgdir isDirectory.
baea090b0fc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   146
baea090b0fc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   147
    exe := OperatingSystem pathOfSTXExecutable.
baea090b0fc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   148
baea090b0fc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   149
    self make:'clobber'.
baea090b0fc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   150
baea090b0fc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   151
    "Created: / 14-08-2013 / 18:21:21 / Jan Vrany <jan.vrany@fit.cvut.cz>"
baea090b0fc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   152
    "Modified: / 14-08-2013 / 20:17:01 / Jan Vrany <jan.vrany@fit.cvut.cz>"
baea090b0fc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   153
!
baea090b0fc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   154
baea090b0fc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   155
tearDown
baea090b0fc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   156
    tmpdir recursiveRemove.
baea090b0fc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   157
baea090b0fc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   158
    "Created: / 14-08-2013 / 20:17:17 / Jan Vrany <jan.vrany@fit.cvut.cz>"
baea090b0fc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   159
! !
baea090b0fc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   160
baea090b0fc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   161
!SnapshotRestartTests methodsFor:'tests'!
baea090b0fc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   162
baea090b0fc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   163
test_bc
baea090b0fc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   164
baea090b0fc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   165
    "Test restsrt with bytecode-compiled package"
baea090b0fc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   166
baea090b0fc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   167
    self runTestsOnFreshImage.
baea090b0fc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   168
    self runTestsOnRestartedImage.
baea090b0fc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   169
baea090b0fc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   170
    "Created: / 14-08-2013 / 19:58:16 / Jan Vrany <jan.vrany@fit.cvut.cz>"
baea090b0fc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   171
!
baea090b0fc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   172
baea090b0fc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   173
test_stc
baea090b0fc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   174
baea090b0fc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   175
    "Test restsrt with bytecode-compiled package"
baea090b0fc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   176
baea090b0fc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   177
    self make.
baea090b0fc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   178
    self runTestsOnFreshImage.
baea090b0fc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   179
    self runTestsOnRestartedImage.
baea090b0fc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   180
baea090b0fc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   181
    "Created: / 14-08-2013 / 20:26:06 / Jan Vrany <jan.vrany@fit.cvut.cz>"
baea090b0fc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   182
! !
baea090b0fc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   183
baea090b0fc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   184
!SnapshotRestartTests::ToRunOnFreshAndRestartedSnapshotTests methodsFor:'running'!
baea090b0fc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   185
baea090b0fc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   186
setUp
baea090b0fc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   187
    (Smalltalk at: #'RegressionTests::SnapshotRestartTestsObject') isNil ifTrue:[
1499
26a16a04219b Package renamed from exept:regression to stx:goodies/regression. Hooray!
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1495
diff changeset
   188
        Smalltalk loadPackage: #'stx:goodies/regression/testData/packages/snapshot_restart'.
980
baea090b0fc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   189
    ].
baea090b0fc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   190
baea090b0fc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   191
    "Created: / 14-08-2013 / 19:47:58 / Jan Vrany <jan.vrany@fit.cvut.cz>"
baea090b0fc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   192
! !
baea090b0fc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   193
baea090b0fc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   194
!SnapshotRestartTests::ToRunOnFreshAndRestartedSnapshotTests methodsFor:'tests'!
baea090b0fc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   195
baea090b0fc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   196
test_01
baea090b0fc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   197
baea090b0fc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   198
    "/ Use Smalltalk at: to workaround compiler bug...
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1191
diff changeset
   199
    self assert: (Smalltalk at: #'RegressionTests::SnapshotRestartTestsObject') notNil.
980
baea090b0fc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   200
    self assert: ((Smalltalk at: #'RegressionTests::SnapshotRestartTestsObject') new addSimple: 12 to: 12) == 24
baea090b0fc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   201
baea090b0fc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   202
    "Created: / 14-08-2013 / 19:46:39 / Jan Vrany <jan.vrany@fit.cvut.cz>"
baea090b0fc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   203
    "Modified: / 15-08-2013 / 08:20:09 / Jan Vrany <jan.vrany@fit.cvut.cz>"
baea090b0fc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   204
!
baea090b0fc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   205
baea090b0fc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   206
test_02
baea090b0fc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   207
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1191
diff changeset
   208
    "/ Use Smalltalk at: to workaround compiler bug...
980
baea090b0fc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   209
    self assert: (Smalltalk at: #'RegressionTests::SnapshotRestartTestsObject') notNil.
baea090b0fc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   210
    self assert: ((Smalltalk at: #'RegressionTests::SnapshotRestartTestsObject') new addUsingBlock: 10 to: 10) == 20
baea090b0fc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   211
baea090b0fc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   212
    "Created: / 14-08-2013 / 19:46:51 / Jan Vrany <jan.vrany@fit.cvut.cz>"
baea090b0fc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   213
    "Modified: / 15-08-2013 / 08:20:24 / Jan Vrany <jan.vrany@fit.cvut.cz>"
baea090b0fc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   214
! !
baea090b0fc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   215
baea090b0fc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   216
!SnapshotRestartTests::ToRunOnFreshAndRestartedSnapshotTests methodsFor:'tests - disabled'!
baea090b0fc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   217
baea090b0fc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   218
disabled_test_03
baea090b0fc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   219
    "/ Not yet supported, but JV has an idea how to fix it :-)
baea090b0fc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   220
baea090b0fc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   221
    self assert: (Smalltalk at: #'RegressionTests::SnapshotRestartTestsObject') notNil.
baea090b0fc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   222
    self assert: ((Smalltalk at: #'RegressionTests::SnapshotRestartTestsObject') new addThirteenUsingRememberedBlockTo: 2) == 15
baea090b0fc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   223
baea090b0fc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   224
    "Created: / 14-08-2013 / 19:53:42 / Jan Vrany <jan.vrany@fit.cvut.cz>"
baea090b0fc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   225
    "Modified: / 15-08-2013 / 08:20:29 / Jan Vrany <jan.vrany@fit.cvut.cz>"
baea090b0fc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   226
! !
baea090b0fc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   227
baea090b0fc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   228
!SnapshotRestartTests class methodsFor:'documentation'!
baea090b0fc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   229
baea090b0fc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   230
version
baea090b0fc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   231
    ^ '$Header$'
baea090b0fc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   232
!
baea090b0fc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   233
baea090b0fc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   234
version_CVS
baea090b0fc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   235
    ^ '$Header$'
baea090b0fc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   236
!
baea090b0fc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   237
1489
2f9591a475f2 Fix in SnapshotRestartTests to use proper toolchain when building on Windows
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1191
diff changeset
   238
version_HG
2f9591a475f2 Fix in SnapshotRestartTests to use proper toolchain when building on Windows
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1191
diff changeset
   239
2f9591a475f2 Fix in SnapshotRestartTests to use proper toolchain when building on Windows
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1191
diff changeset
   240
    ^ '$Changeset: <not expanded> $'
2f9591a475f2 Fix in SnapshotRestartTests to use proper toolchain when building on Windows
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1191
diff changeset
   241
!
2f9591a475f2 Fix in SnapshotRestartTests to use proper toolchain when building on Windows
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1191
diff changeset
   242
980
baea090b0fc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   243
version_SVN
baea090b0fc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   244
    ^ '$Id$'
baea090b0fc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   245
! !
baea090b0fc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   246