Skip to content

Commit

Permalink
Fix some image format related tests
Browse files Browse the repository at this point in the history
  • Loading branch information
PalumboN committed Feb 23, 2022
1 parent 73f96b8 commit d838029
Show file tree
Hide file tree
Showing 13 changed files with 112 additions and 65 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ SpurImageTestResource >> emptyVM [
{ #category : #accessing }
SpurImageTestResource >> initializedVM [
vmWithLoadedImage ifNil:
[vmWithLoadedImage := StackInterpreterSimulator newWithOptions: #(ObjectMemory Spur32BitMemoryManager).
[vmWithLoadedImage := StackInterpreterSimulator newWithOptions: #(ObjectMemory Spur32BitMemoryManager ImageReader SpurImageReader ImageWriter SpurImageWriter).
vmWithLoadedImage
openOn: self class imageNameForTests extraMemory: 0.
vmWithLoadedImage objectMemory
Expand Down
10 changes: 10 additions & 0 deletions smalltalksrc/VMMaker/AbstractImageAccess.class.st
Original file line number Diff line number Diff line change
Expand Up @@ -266,3 +266,13 @@ AbstractImageAccess >> sqImageFileClose: file [
<doNotGenerate>
file close
]

{ #category : #testing }
AbstractImageAccess >> validateImage: imageName [

<doNotGenerate>
| file |
file := imageName asFileReference.
self assert: file exists.
self validateContent: file
]
10 changes: 10 additions & 0 deletions smalltalksrc/VMMaker/ComposedImageReader.class.st
Original file line number Diff line number Diff line change
Expand Up @@ -210,3 +210,13 @@ ComposedImageReader >> readSegmentsFromImageFile: imageFileName header: aHeader

^ totalBytesRead
]

{ #category : #testing }
ComposedImageReader >> validateContent: imageFile [

"Contains header metadata and AT LEAST one segment (data & metadata)"

<doNotGenerate>
{ 'header.ston'. 'seg0.ston'. 'seg0.data' } do: [ :fileName |
self assert: (imageFile hasChildrenMatching: fileName) ]
]
7 changes: 7 additions & 0 deletions smalltalksrc/VMMaker/SpurImageReader.class.st
Original file line number Diff line number Diff line change
Expand Up @@ -235,3 +235,10 @@ SpurImageReader >> readSegmentsFromImageFile: f header: aHeader [

^ totalBytesRead
]

{ #category : #testing }
SpurImageReader >> validateContent: imageFile [

<doNotGenerate>
self assert: imageFile size > 0
]
2 changes: 1 addition & 1 deletion smalltalksrc/VMMakerTests/VMARMStackAlignmentTest.class.st
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ Class {
}

{ #category : #'building suites' }
VMARMStackAlignmentTest class >> testParameters [
VMARMStackAlignmentTest class >> wordSizeParameters [

^ ParametrizedTestMatrix new
addCase: { #ISA -> #'aarch64'. #wordSize -> 8};
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ Class {
}

{ #category : #'building suites' }
VMARMV8SpecificEncodingTest class >> testParameters [
VMARMV8SpecificEncodingTest class >> wordSizeParameters [

^ ParametrizedTestMatrix new
addCase: { #ISA -> #'aarch64'. #wordSize -> 8};
Expand Down
43 changes: 1 addition & 42 deletions smalltalksrc/VMMakerTests/VMAbstractImageFormatTest.class.st
Original file line number Diff line number Diff line change
Expand Up @@ -2,58 +2,17 @@ Class {
#name : #VMAbstractImageFormatTest,
#superclass : #VMSpurInitializedOldSpaceTest,
#instVars : [
'imageReader',
'imageReaderClass',
'imageWriterClass'
'imageReader'
],
#category : #'VMMakerTests-MemoryTests'
}

{ #category : #tests }
VMAbstractImageFormatTest class >> testParameters [

^ super testParameters * {
{ #imageReaderClass -> ComposedImageReader. #imageWriterClass -> ComposedImageWriter }.
{ #imageReaderClass -> SpurImageReader. #imageWriterClass -> SpurImageWriter }.
}
]

{ #category : #tests }
VMAbstractImageFormatTest >> imageFileName [

^ 'lala.image'
]

{ #category : #accessing }
VMAbstractImageFormatTest >> imageReaderClass [

^ imageReaderClass
]

{ #category : #accessing }
VMAbstractImageFormatTest >> imageReaderClass: anObject [

imageReaderClass := anObject
]

{ #category : #accessing }
VMAbstractImageFormatTest >> imageWriterClass [

^ imageWriterClass
]

{ #category : #accessing }
VMAbstractImageFormatTest >> imageWriterClass: anObject [

imageWriterClass := anObject
]

{ #category : #accessing }
VMAbstractImageFormatTest >> initializationOptions [

^ super initializationOptions, { #ImageReader. imageReaderClass name. #ImageWriter. imageWriterClass name }
]

{ #category : #tests }
VMAbstractImageFormatTest >> readHeader [

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,12 +9,9 @@ Class {
}

{ #category : #'building suites' }
VMJittedByteArrayAccessPrimitiveTest class >> testParameters [
VMJittedByteArrayAccessPrimitiveTest class >> wordSizeParameters [

^ ParametrizedTestMatrix new
addCase: { #ISA -> #'aarch64'. #wordSize -> 8};
addCase: { #ISA -> #'X64'. #wordSize -> 8};
yourself
^ self wordSize64Parameters
]

{ #category : #'tests - store integers' }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,14 +8,11 @@ Class {
}

{ #category : #'building suites' }
VMJittedSmallFloatPrimitiveTest class >> testParameters [
VMJittedSmallFloatPrimitiveTest class >> wordSizeParameters [

"SmallFloats only exist in 64bits systems"

^ ParametrizedTestMatrix new
addCase: { #ISA -> #'aarch64'. #wordSize -> 8};
addCase: { #ISA -> #'X64'. #wordSize -> 8};
yourself
^ self wordSize64Parameters
]

{ #category : #'tests - primitiveAdd' }
Expand Down
7 changes: 2 additions & 5 deletions smalltalksrc/VMMakerTests/VMPrimitiveTest.class.st
Original file line number Diff line number Diff line change
Expand Up @@ -120,7 +120,7 @@ VMPrimitiveTest >> setUpForwardedObjects [
{ #category : #running }
VMPrimitiveTest >> tearDown [

imageName ifNotNil: [ imageName asFileReference ensureDelete ].
imageName ifNotNil: [ imageName asFileReference ensureDeleteAll ].
super tearDown
]

Expand Down Expand Up @@ -4422,10 +4422,7 @@ VMPrimitiveTest >> testPrimitiveSnapshotCreateImage [
interpreter setImageHeaderFlagsFrom: 0.
interpreter primitiveSnapshot.

file := imageName asFileReference.

self assert: file exists.
self assert: file size > 0
interpreter imageReader validateImage: imageName
]

{ #category : #'tests - snapshot' }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,16 +34,37 @@ Class {
}

{ #category : #'building suites' }
VMSimpleStackBasedCogitAbstractTest class >> testParameters [
VMSimpleStackBasedCogitAbstractTest class >> imageFormatParameters [

^ {
{ #imageReaderClass -> ComposedImageReader. #imageWriterClass -> ComposedImageWriter }.
}
]

{ #category : #'building suites' }
VMSimpleStackBasedCogitAbstractTest class >> wordSize32Parameters [

^ ParametrizedTestMatrix new
addCase: { #ISA -> #'aarch64'. #wordSize -> 8};
addCase: { #ISA -> #'IA32'. #wordSize -> 4};
addCase: { #ISA -> #'X64'. #wordSize -> 8};
addCase: { #ISA -> #'ARMv5'. #wordSize -> 4};
yourself
]

{ #category : #'building suites' }
VMSimpleStackBasedCogitAbstractTest class >> wordSize64Parameters [

^ ParametrizedTestMatrix new
addCase: { #ISA -> #'aarch64'. #wordSize -> 8};
addCase: { #ISA -> #'X64'. #wordSize -> 8};
yourself
]

{ #category : #'building suites' }
VMSimpleStackBasedCogitAbstractTest class >> wordSizeParameters [

^ self wordSize32Parameters + self wordSize64Parameters
]

{ #category : #running }
VMSimpleStackBasedCogitAbstractTest >> ISA: anISA [

Expand Down
4 changes: 4 additions & 0 deletions smalltalksrc/VMMakerTests/VMSimulationTest.class.st
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,8 @@ VMSimulationTest >> testSetUpJITSimulationReadsImage [
#ISA -> #aarch64.
#BytesPerWord -> 8.
#bytecodeTableInitializer -> #initializeBytecodeTableForSistaV1.
#ImageWriter -> #SpurImageWriter.
#ImageReader -> #SpurImageReader.
} asDictionary.

c := CogVMSimulator newWithOptions: options.
Expand All @@ -37,6 +39,8 @@ VMSimulationTest >> testSetUpNonJITSimulationReadsImage [
#ObjectMemory -> #Spur64BitMemoryManager.
#BytesPerWord -> 8.
#bytecodeTableInitializer -> #initializeBytecodeTableForSistaV1.
#ImageWriter -> #SpurImageWriter.
#ImageReader -> #SpurImageReader.
} asDictionary.

c := StackInterpreterSimulator newWithOptions: options.
Expand Down
49 changes: 47 additions & 2 deletions smalltalksrc/VMMakerTests/VMSpurMemoryManagerTest.class.st
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,9 @@ Class {
'rumpCStackSize',
'wordSize',
'methodBuilder',
'edenSize'
'edenSize',
'imageReaderClass',
'imageWriterClass'
],
#pools : [
'VMBasicConstants',
Expand All @@ -28,9 +30,24 @@ Class {
#category : #'VMMakerTests-MemoryTests'
}

{ #category : #'building suites' }
VMSpurMemoryManagerTest class >> imageFormatParameters [

^ {
{ #imageReaderClass -> ComposedImageReader. #imageWriterClass -> ComposedImageWriter }.
{ #imageReaderClass -> SpurImageReader. #imageWriterClass -> SpurImageWriter }.
}
]

{ #category : #'building suites' }
VMSpurMemoryManagerTest class >> testParameters [

^ self wordSizeParameters * self imageFormatParameters
]

{ #category : #'building suites' }
VMSpurMemoryManagerTest class >> wordSizeParameters [

^ ParametrizedTestMatrix new
forSelector: #wordSize addOptions: { 8 . 4 };
yourself
Expand Down Expand Up @@ -74,6 +91,30 @@ VMSpurMemoryManagerTest >> edenSize [
^ 2 * 1024 + interpreter interpreterAllocationReserveBytes
]

{ #category : #accessing }
VMSpurMemoryManagerTest >> imageReaderClass [

^ imageReaderClass
]

{ #category : #accessing }
VMSpurMemoryManagerTest >> imageReaderClass: anObject [

imageReaderClass := anObject
]

{ #category : #accessing }
VMSpurMemoryManagerTest >> imageWriterClass [

^ imageWriterClass
]

{ #category : #accessing }
VMSpurMemoryManagerTest >> imageWriterClass: anObject [

imageWriterClass := anObject
]

{ #category : #accessing }
VMSpurMemoryManagerTest >> initialCodeSize [
^ 0
Expand All @@ -86,7 +127,11 @@ VMSpurMemoryManagerTest >> initializationOptions [
#BytesPerWord.
self wordSize.
#ObjectMemory.
memory class name}
memory class name.
#ImageReader.
imageReaderClass name.
#ImageWriter.
imageWriterClass name }
]

{ #category : #helpers }
Expand Down

0 comments on commit d838029

Please sign in to comment.