[squeak-dev] FFI: FFI-Tests-mt.37.mcz
commits at source.squeak.org
commits at source.squeak.org
Sun May 16 05:30:11 UTC 2021
Marcel Taeumel uploaded a new version of FFI-Tests to project FFI:
http://source.squeak.org/FFI/FFI-Tests-mt.37.mcz
==================== Summary ====================
Name: FFI-Tests-mt.37
Author: mt
Time: 16 May 2021, 7:30:08.986024 am
UUID: 461435c5-e0ab-904d-9e43-b1b02fbe51a8
Ancestors: FFI-Tests-mt.36
Complements FFI-Kernel-mt.150
=============== Diff against FFI-Tests-mt.36 ===============
Item was changed:
----- Method: FFIAllocateExternalTests>>checkAllocate: (in category 'running') -----
checkAllocate: externalObject
| type handle |
self assert: externalObject notNil.
(externalObject isExternalObject)
ifFalse: [
externalObjects remove: externalObject. "skip free"
^ self "atomics are fine"].
type := externalObject externalType.
handle := externalObject getHandle.
+ (type isAtomic and: [type isVoid not]) ifTrue: [
- type isAtomic ifTrue: [
self deny: handle isExternalAddress.
self deny: handle isInternalMemory.
self deny: handle isNil.
^ self].
self deny: externalObject isNull.
self deny: handle isNull.
self deny: handle isNil.
self assert: type isPointerType.
self assert: handle isExternalAddress.
self deny: handle isInternalMemory.!
Item was changed:
----- Method: FFIAllocateTests>>checkAllocate: (in category 'running') -----
checkAllocate: externalObject
| type handle |
self assert: externalObject notNil.
(externalObject isExternalObject)
ifFalse: [
externalObjects remove: externalObject. "skip free"
^ self "pure atomics are fine"].
type := externalObject externalType.
handle := externalObject getHandle.
+ (type isAtomic and: [type isVoid not]) ifTrue: [
- type isAtomic ifTrue: [
self deny: handle isExternalAddress.
self deny: handle isInternalMemory.
self deny: handle isNil.
^ self].
self deny: externalObject isNull.
self deny: handle isNull.
self deny: handle isNil.
self deny: type isPointerType.
self deny: handle isExternalAddress.
self assert: handle isInternalMemory.!
Item was added:
+ ----- Method: FFIAllocateTests>>test11ArrayAsVoidPointer (in category 'tests - array') -----
+ test11ArrayAsVoidPointer
+ "Check whether the undefined content type -- void -- works. Type casting via #setContentType: is necessary in such cases."
+
+ | type void array |
+ type := ExternalType int32_t.
+ void := ExternalType void.
+ array := self allocate: type size: 5.
+ self assert: type equals: array contentType.
+ array setContentType: void.
+ self checkAllocate: array. "Checks container type."
+ self assert: void equals: array contentType.
+ self assert: array size isNil.
+ self should: [array at: 1] raise: Error.
+ self should: [array at: 1 put: 42] raise: Error.
+ array setContentType: type.
+ self checkAllocate: array.
+ self assert: type equals: array contentType.
+ self assert: array size isNil.
+ self shouldnt: [array at: 1] raise: Error.
+ self shouldnt: [array at: 1 put: 42] raise: Error. !
More information about the Squeak-dev
mailing list
|