-
Notifications
You must be signed in to change notification settings - Fork 68
/
SpurImageTestResource.class.st
65 lines (59 loc) · 1.94 KB
/
SpurImageTestResource.class.st
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
Class {
#name : #SpurImageTestResource,
#superclass : #TestResource,
#instVars : [
'emptyVM',
'vmWithLoadedImage'
],
#category : #'VMMaker-Tests'
}
{ #category : #accessing }
SpurImageTestResource class >> baseImageName [
^'core32-preen.image'
]
{ #category : #accessing }
SpurImageTestResource class >> imageNameForTests [
"self imageNameForTests"
| baseImageName |
baseImageName := self baseImageName.
#('.' 'oscogvm/image' '../oscogvm/image') do:
[:dirName|
((FileDirectory default directoryExists: dirName)
and: [(FileDirectory on: dirName) fileExists: baseImageName]) ifTrue:
[^dirName, '/', baseImageName]].
self error: 'cannot find ', baseImageName
]
{ #category : #preening }
SpurImageTestResource class >> preenImage [
"Assume there's a Pharo bootstrap core32.image in ../oscogvm/image/core32.image.
We should find out where the image directory is and write a download script to get it.
But for now assume it's there. See e.g.
https://bintray.com/pharo-project/pharo/Pharo/201701061402-32bit#files"
"[self preenImage] timeToRun"
Spur32BitPreen new
writeDefaultHeader: true;
savedWindowSize: 640@480;
preenImage: self imageNameForTests
]
{ #category : #accessing }
SpurImageTestResource >> emptyVM [
^emptyVM ifNil:
[emptyVM := StackInterpreterSimulator newWithOptions: #(ObjectMemory Spur32BitMemoryManager
compactorClass SpurPlanningCompactor)]
]
{ #category : #accessing }
SpurImageTestResource >> initializedVM [
vmWithLoadedImage ifNil:
[vmWithLoadedImage := StackInterpreterSimulator newWithOptions: #(ObjectMemory Spur32BitMemoryManager).
vmWithLoadedImage
openOn: self class imageNameForTests extraMemory: 0.
vmWithLoadedImage objectMemory
initializeMarkStack; "The Pharo bootstrap has no mark or weakling stacks :-)"
initializeWeaklingStack].
^vmWithLoadedImage
]
{ #category : #accessing }
SpurImageTestResource >> reset [
"self current reset"
emptyVM := vmWithLoadedImage := nil
]