FFI: FFI-PoolsTests-mt.9.mcz

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

FFI: FFI-PoolsTests-mt.9.mcz

commits-2
Marcel Taeumel uploaded a new version of FFI-PoolsTests to project FFI:
http://source.squeak.org/FFI/FFI-PoolsTests-mt.9.mcz

==================== Summary ====================

Name: FFI-PoolsTests-mt.9
Author: mt
Time: 2 June 2020, 8:12:50.968821 pm
UUID: e395981b-0a1c-3f44-b5ee-fe733d5e47cd
Ancestors: FFI-PoolsTests-mt.8

Complements FFI-Pools-mt.18

=============== Diff against FFI-PoolsTests-mt.8 ===============

Item was added:
+ ExternalPool subclass: #FFIExampleExternalPool
+ instanceVariableNames: ''
+ classVariableNames: 'EAGAIN EIO EWOULDBLOCK INT_MAX M_E M_PI ULONG_MAX'
+ poolDictionaries: ''
+ category: 'FFI-PoolsTests'!
+
+ !FFIExampleExternalPool commentStamp: 'monty 4/17/2018 13:15' prior: 0!
+ A buildable example FFIExternalSharedPool that uses standard POSIX headers and symbols.
+
+ self generateProgram.
+ self initializeFromGeneratedProgramOutput.!

Item was added:
+ ----- Method: FFIExampleExternalPool class>>errors (in category 'definitions') -----
+ errors
+ "
+ self errors writePoolData.
+ self errors readPoolData.
+ "
+ <ffiExternalPool>
+ <ffiPoolDataStorage: #methodSource>
+
+ <ffiCHeaders: #('<errno.h>')>
+
+ <ffiVariable: #EAGAIN type: 'long' convertTo: #Integer>
+ <ffiVariable: #EWOULDBLOCK type: 'long' convertTo: #Integer>
+ <ffiVariable: #EIO type: nil>
+ <ffiVariable: #M_PI type: nil>
+ <ffiVariable: #M_E type: nil>
+ <ffiVariable: #ULONG_MAX type: nil>
+ <ffiVariable: #INT_MAX type: nil>
+
+ ^ self poolDefinition!

Item was added:
+ ----- Method: FFIExampleExternalPool class>>errorsData (in category 'definitions - data') -----
+ errorsData
+ "Automatically generated."
+ <ffiPoolReadWriter: #ExternalPoolST1ReadWriter>
+ <ffiPoolDataStorage: #methodSource>
+ "
+ FFIExampleExternalPool errors readPoolDataFrom: #methodSource.
+ FFIExampleExternalPool errors writePoolDataTo: #methodSource.
+ "
+ ^ {
+ (FFIPlatformDescription name: 'Win32' osVersion: '10.0' subtype: 'IX86' wordSize: 4).
+ Dictionary new
+ at: #EWOULDBLOCK put: 16r0000000B;
+ at: #EAGAIN put: 16r0000000B;
+ yourself.
+ }
+ !

Item was added:
+ ----- Method: FFIExampleExternalPool class>>limits (in category 'definitions') -----
+ limits
+ "
+ self limits writePoolData.
+ self limits readPoolData.
+ "
+ <ffiExternalPool>
+ <ffiPoolDataStorage: #methodSource>
+
+ <ffiInheritsFrom: #math>
+
+ <ffiCHeaders: #('<math.h>' '<errno.h>' '<limits.h>')>
+ <ffiVariable: #ULONG_MAX type: 'ulong' convertTo: #LargePositiveInteger>
+ <ffiVariable: #INT_MAX type: 'long' convertTo: #Integer>
+
+ ^ self poolDefinition!

Item was added:
+ ----- Method: FFIExampleExternalPool class>>limitsData (in category 'definitions - data') -----
+ limitsData
+ "Automatically generated."
+ <ffiPoolReadWriter: #ExternalPoolST1ReadWriter>
+ <ffiPoolDataStorage: #methodSource>
+ "
+ FFIExampleExternalPool limits readPoolDataFrom: #methodSource.
+ FFIExampleExternalPool limits writePoolDataTo: #methodSource.
+ "
+ ^ {
+ (FFIPlatformDescription name: 'Win32' osVersion: '10.0' subtype: 'IX86' wordSize: 4).
+ Dictionary new
+ at: #M_E put: (ExternalPoolST1ReadWriter readFloatFrom: '2.718281745910644531250e+00');
+ at: #M_PI put: (ExternalPoolST1ReadWriter readFloatFrom: '3.141592741012573242188e+00');
+ at: #EWOULDBLOCK put: 16r0000000B;
+ at: #EAGAIN put: 16r0000000B;
+ at: #INT_MAX put: 16r7FFFFFFF;
+ at: #ULONG_MAX put: 4294967295;
+ yourself.
+ }
+ !

Item was added:
+ ----- Method: FFIExampleExternalPool class>>math (in category 'definitions') -----
+ math
+ "
+ self math writePoolData.
+ self math readPoolData.
+ "
+ <ffiExternalPool>
+ <ffiPoolDataStorage: #methodSource>
+
+ <ffiInheritsFrom: #errors>
+
+ <ffiCHeaders: #('<errno.h>' '<math.h>')>
+ <ffiVariable: #M_PI type: 'float' convertTo: #Float>
+ <ffiVariable: #M_E type: 'float' convertTo: #Float>
+
+ ^ self poolDefinition!

Item was added:
+ ----- Method: FFIExampleExternalPool class>>mathData (in category 'definitions - data') -----
+ mathData
+ "Automatically generated."
+ <ffiPoolReadWriter: #ExternalPoolST1ReadWriter>
+ <ffiPoolDataStorage: #methodSource>
+ "
+ FFIExampleExternalPool math readPoolDataFrom: #methodSource.
+ FFIExampleExternalPool math writePoolDataTo: #methodSource.
+ "
+ ^ {
+ (FFIPlatformDescription name: 'Win32' osVersion: '10.0' subtype: 'IX86' wordSize: 4).
+ Dictionary new
+ at: #M_PI put: (ExternalPoolST1ReadWriter readFloatFrom: '3.141592741012573242188e+00');
+ at: #EWOULDBLOCK put: 16r0000000B;
+ at: #EAGAIN put: 16r0000000B;
+ at: #M_E put: (ExternalPoolST1ReadWriter readFloatFrom: '2.718281745910644531250e+00');
+ yourself.
+ }
+ !

Item was removed:
- FFIExternalSharedPool subclass: #FFIExampleStandardExternalSharedPool
- instanceVariableNames: ''
- classVariableNames: 'EAGAIN EIO EWOULDBLOCK INT_MAX M_E M_PI ULONG_MAX'
- poolDictionaries: ''
- category: 'FFI-PoolsTests'!
-
- !FFIExampleStandardExternalSharedPool commentStamp: 'monty 4/17/2018 13:15' prior: 0!
- A buildable example FFIExternalSharedPool that uses standard POSIX headers and symbols.
-
- self generateProgram.
- self initializeFromGeneratedProgramOutput.!

Item was removed:
- ----- Method: FFIExampleStandardExternalSharedPool class>>errors (in category 'definitions') -----
- errors
- <ffiExternalSharedPool>
- <ffiCHeaders: #('<errno.h>')>
- <ffiVariable: #EAGAIN type: #Integer>
- <ffiVariable: #EWOULDBLOCK type: #Integer>
- <ffiVariable: #EIO type: nil>
- <ffiVariable: #M_PI type: nil>
- <ffiVariable: #M_E type: nil>
- <ffiVariable: #ULONG_MAX type: nil>
- <ffiVariable: #INT_MAX type: nil>!

Item was removed:
- ----- Method: FFIExampleStandardExternalSharedPool class>>limits (in category 'definitions') -----
- limits
- <ffiExternalSharedPool>
- <ffiInheritsFrom: #math>
- <ffiPlatformName: 'unix' wordSize: 4>
- <ffiCFlags: '-Wall -o'>
- <ffiCHeaders: #('<math.h>' '<errno.h>' '<limits.h>')>
- <ffiVariable: #ULONG_MAX type: #LargePositiveInteger>
- <ffiVariable: #INT_MAX type: #Integer>!

Item was removed:
- ----- Method: FFIExampleStandardExternalSharedPool class>>math (in category 'definitions') -----
- math
- <ffiExternalSharedPool>
- <ffiInheritsFrom: #errors>
- <ffiPlatformName: 'unix'>
- <ffiCHeaders: #('<errno.h>' '<math.h>')>
- <ffiVariable: #M_PI type: #Float>
- <ffiVariable: #M_E type: #Float>!

Item was changed:
  ----- Method: FFIExternalSharedPoolProgramGeneratorTest>>newProgramGenerator (in category 'instance creation') -----
  newProgramGenerator
+
  ^ self programGeneratorClass
  on: String new writeStream
+ lineEnding: String lf
+ cHeaders: #()!
- definition: FFITestExternalSharedPool defaultDefinition!

Item was changed:
  ----- Method: FFIExternalSharedPoolProgramGeneratorTest>>programGeneratorClass (in category 'accessing') -----
  programGeneratorClass
+ ^ ExternalPoolProgramGenerator!
- ^ FFIExternalSharedPoolProgramGenerator!

Item was changed:
  ----- Method: FFIExternalSharedPoolProgramGeneratorTest>>testEmitAllFormat (in category 'tests') -----
  testEmitAllFormat
  | programGenerator |
 
  programGenerator := self newProgramGenerator.
  self assert:
  (programGenerator
  emitAll: '${1}two${2}$two$${1}'
  format: {'one'. 'three'}) == programGenerator.
+ self assert: programGenerator stream contents = 'onetwothree$two$one'.
- self assert: programGenerator contents = 'onetwothree$two$one'.
 
  programGenerator := self newProgramGenerator.
  self assert:
  (programGenerator
  emitAll: '${one}two${three}$two$${one}'
  format: (Dictionary withAll: {'one' -> 1. 'three' -> 3})) == programGenerator.
+ self assert: programGenerator stream contents = '1two3$two$1'.
- self assert: programGenerator contents = '1two3$two$1'.
 
  self
  should:
  [self newProgramGenerator
  emitAll: '${1}${2}'
  format: {1}]
  raise: Error.
  self
  should:
  [self newProgramGenerator
  emitAll: '${one}${two}'
  format: {'one' -> 1} asDictionary]
  raise: Error.!

Item was changed:
  ----- Method: FFIExternalSharedPoolProgramGeneratorTest>>testLineEnding (in category 'tests') -----
  testLineEnding
  {Character cr. Character lf. String crlf. 'NL'. $N}
  do: [:each | | programGenerator leString |
  programGenerator := self newProgramGenerator.
+ self assert: (programGenerator setLineEnding: each) == programGenerator.
- self assert: (programGenerator lineEnding: each) == programGenerator.
 
  leString := each asString.
  self
  assert: programGenerator lineEnding
  equals: leString.
 
  programGenerator
  emitAll: 'one';
  emitLineEnding;
  emitAll: 'two', String lf, 'three';
+ emit: Character cr; "Rely on automatic conversion here."
- emit: Character cr;
  emitAll: 'four'.
  self
+ assert: programGenerator stream contents
- assert: programGenerator contents
  equals:
  'one', leString, 'two', leString, 'three', leString, 'four']!

Item was changed:
  ----- Method: FFIExternalSharedPoolTest>>assertIsDefaultDefinition:for: (in category 'asserting') -----
  assertIsDefaultDefinition: aDefinition for: aSharedPool
  | classPool |
 
  self
  assert: aDefinition isDefault;
  assert: aDefinition name isNil;
  assert: aDefinition inheritsFrom isNil;
  assert: aDefinition cCompiler equals: self definitionClass defaultCCompiler;
  assert: aDefinition cFlags equals: self definitionClass defaultCFlags;
  assert: aDefinition cHeaders equals: self definitionClass defaultCHeaders;
  assert: aDefinition platform equals: self platformClass empty.
  self
+ assert: aDefinition poolReadWriterClass
+ equals: self definitionClass defaultPoolReadWriterClass.
- assert: aDefinition programGeneratorClass
- equals: self definitionClass defaultProgramGeneratorClass.
 
  classPool := aSharedPool classPool.
  classPool keysDo: [:each |
  self
+ assert: (aDefinition variablesAndTypesAt: each) value
- assert: (aDefinition variablesAndTypesAt: each)
  equals: Integer].
  self
  assert: classPool size
  equals: aDefinition variablesAndTypes size.!

Item was added:
+ ----- Method: FFIExternalSharedPoolTest>>resolvedDefinitionsFor: (in category 'support') -----
+ resolvedDefinitionsFor: sharedPool
+
+ ^(sharedPool definitionResolverClass
+ on: sharedPool) resolvedDefinitions!

Item was added:
+ ----- Method: FFIExternalSharedPoolTest>>resolvedToplevelDefinitionsFor: (in category 'support') -----
+ resolvedToplevelDefinitionsFor: sharedPool
+
+ ^ (sharedPool definitionResolverClass
+ class: sharedPool
+ definitions: (sharedPool definitions collect: [:each | each inheritsFrom: nil]))
+ resolvedDefinitions!

Item was changed:
  ----- Method: FFIExternalSharedPoolTest>>testDefaultDefinition (in category 'tests') -----
  testDefaultDefinition
  | sharedPool |
 
  sharedPool := FFITestDefaultDefinitionSharedPool.
 
+ self assert: (self resolvedDefinitionsFor: sharedPool) size equals: 1.
- self assert: (sharedPool resolvedDefinitions) size equals: 1.
 
  self
  assertIsDefaultDefinition:
  (sharedPool preferredResolvedDefinitionForPlatform:
  self newTestPlatform)
  for: sharedPool.!

Item was changed:
  ----- Method: FFIExternalSharedPoolTest>>testDefinitionLoops (in category 'tests') -----
  testDefinitionLoops
  {FFITestLoopOneExternalSharedPool.
  FFITestLoopTwoExternalSharedPool.
  FFITestLoopThreeExternalSharedPool}
  do: [:sharedPool |
  self
  shouldnt: [sharedPool definitions]
+ raise: ExternalPoolError.
- raise: FFIExternalSharedPoolException.
  self
+ should: [self resolvedDefinitionsFor: sharedPool]
+ raise: ExternalPoolError.
- should: [sharedPool resolvedDefinitions]
- raise: FFIExternalSharedPoolException.
  self
+ shouldnt: [self resolvedToplevelDefinitionsFor: sharedPool]
+ raise: ExternalPoolError].!
- shouldnt: [
- sharedPool resolvedDefinitions:
- (sharedPool definitions collect: [:each |
- each inheritsFrom: nil])]
- raise: FFIExternalSharedPoolException].!

Item was changed:
  ----- Method: FFIExternalSharedPoolTest>>testDefinitionUnkownReferences (in category 'tests') -----
  testDefinitionUnkownReferences
  | sharedPool |
 
  sharedPool := FFITestUnknownReferenceExternalSharedPool.
  self
  shouldnt: [sharedPool definitions]
+ raise: ExternalPoolError.
- raise: FFIExternalSharedPoolException.
  self
+ should: [self resolvedDefinitionsFor: sharedPool]
+ raise: ExternalPoolError.
- should: [sharedPool resolvedDefinitions]
- raise: FFIExternalSharedPoolException.
  self
+ shouldnt: [self resolvedToplevelDefinitionsFor: sharedPool]
+ raise: ExternalPoolError.!
- shouldnt: [
- sharedPool resolvedDefinitions:
- (sharedPool definitions collect: [:each |
- each inheritsFrom: nil])]
- raise: FFIExternalSharedPoolException.!

Item was changed:
  ----- Method: FFIExternalSharedPoolTest>>testInheritance (in category 'tests') -----
  testInheritance
  | sharedPool definitions defaultDefinition emptyDefinition overrideDefinition |
 
  sharedPool := FFITestInheritanceExternalSharedPool.
+ definitions := self resolvedDefinitionsFor: sharedPool.
- definitions := sharedPool resolvedDefinitions.
  self assert: definitions size equals: 3.
 
  defaultDefinition := definitions detect: [:each | each isDefault].
  emptyDefinition := definitions detect: [:each | each name = #empty].
  overrideDefinition := definitions detect: [:each | each name = #override].
  self
  assertIsDefaultDefinition: defaultDefinition
  for: sharedPool.
 
  self
  deny: emptyDefinition isDefault;
  assert: emptyDefinition inheritsFrom isNil;
  assert: emptyDefinition cCompiler equals: defaultDefinition cCompiler;
  assert: emptyDefinition cFlags equals: defaultDefinition cFlags;
  assert: emptyDefinition cHeaders equals: defaultDefinition cHeaders;
  assert: emptyDefinition platform equals: defaultDefinition platform;
+ assert: emptyDefinition poolReadWriterClass equals: defaultDefinition poolReadWriterClass;
- assert: emptyDefinition programGeneratorClass equals: defaultDefinition programGeneratorClass;
  assert: emptyDefinition variablesAndTypes equals: defaultDefinition variablesAndTypes.
 
  self
  deny: overrideDefinition isDefault;
  assert: overrideDefinition inheritsFrom equals: #empty;
  assert: overrideDefinition cCompiler equals: 'testCompiler';
  assert: overrideDefinition cFlags equals: 'testFlags';
  assert: overrideDefinition cHeaders
  equals: #('<testHeader.h>' '"testLocalHeader.h"' '<testImplicitGlobalHeader.h>');
  assert: overrideDefinition platform equals: self newTestPlatform;
- assert: overrideDefinition programGeneratorClass
- equals: FFITestExternalSharedPoolProgramGenerator;
  assert: overrideDefinition variablesAndTypes
+ equals: (Dictionary withAll: {#One -> ((ExternalType atomicTypeNamed: 'float') -> Float). #Two -> ((ExternalType atomicTypeNamed: 'long') -> Integer)}).!
- equals: (Dictionary withAll: {#One -> Float. #Two -> Integer}).!

Item was changed:
  ----- Method: FFIExternalSharedPoolTest>>testPlatformAliasing (in category 'tests') -----
  testPlatformAliasing
  | sharedPool definition |
 
  sharedPool := FFITestPlatformAliasingExternalSharedPool.
  self
  should: [
  sharedPool preferredResolvedDefinitionForPlatform:
  self platformClass empty]
+ raise: ExternalPoolError.
- raise: FFIExternalSharedPoolException.
  self
  should: [
  sharedPool preferredResolvedDefinitionForPlatform:
  self newTestPlatform]
+ raise: ExternalPoolError.
- raise: FFIExternalSharedPoolException.
  self
  shouldnt: [
  definition :=
  sharedPool preferredResolvedDefinitionForPlatform:
  (self newTestPlatform wordSize: 32)]
+ raise: ExternalPoolError.
- raise: FFIExternalSharedPoolException.
 
  self assert: definition name equals: #five.!

Item was added:
+ ----- Method: FFIExternalSharedPoolTest>>testPoolDefinition (in category 'tests') -----
+ testPoolDefinition
+
+ | sharedPool definition |
+ sharedPool := FFITestPoolDefinitionExternalSharedPool.
+
+ definition := sharedPool base.
+ self assert: 'base' equals: definition platform name.
+
+ definition := sharedPool override.
+ self
+ assert: #base equals: definition inheritsFrom;
+ assert: 'base' equals: definition platform name. "already resolved"!

Item was changed:
  ----- Method: FFIExternalSharedPoolTest>>testVariableTypes (in category 'tests') -----
  testVariableTypes
  | sharedPool resolvedDefinitions variables|
 
  sharedPool := FFITestTypesExternalSharedPool.
+ resolvedDefinitions := self resolvedDefinitionsFor: sharedPool.
- resolvedDefinitions := sharedPool resolvedDefinitions.
  self
  assert: resolvedDefinitions size
  equals: 2.
  variables := #(Zero One Two Three Four Five Six).
  resolvedDefinitions do: [:definition |
  definition isDefault
  ifTrue: [
  variables do: [:each |
  self
+ assert: (definition variablesAndTypesAt: each) value
- assert: (definition variablesAndTypesAt: each)
  equals: Integer]]
  ifFalse: [
  variables
  with:
  {Integer. Integer. Float. String.
  Character. Boolean. LargePositiveInteger}
  do: [:variable :type |
  self
+ assert: (definition variablesAndTypesAt: variable) value
- assert: (definition variablesAndTypesAt: variable)
  equals: type]]].!

Item was changed:
+ ExternalPool subclass: #FFITestExternalSharedPool
- FFIExternalSharedPool subclass: #FFITestExternalSharedPool
  instanceVariableNames: ''
  classVariableNames: ''
  poolDictionaries: ''
  category: 'FFI-PoolsTests'!
 
  !FFITestExternalSharedPool commentStamp: 'monty 4/1/2018 10:30' prior: 0!
  These classes are used during testing and are not buildable.!

Item was removed:
- FFIExternalSharedPoolProgramGenerator subclass: #FFITestExternalSharedPoolProgramGenerator
- instanceVariableNames: ''
- classVariableNames: ''
- poolDictionaries: ''
- category: 'FFI-PoolsTests'!
-
- !FFITestExternalSharedPoolProgramGenerator commentStamp: 'monty 4/1/2018 07:47' prior: 0!
- A stub used during testing.!

Item was changed:
  ----- Method: FFITestInheritanceExternalSharedPool class>>empty (in category 'definitions') -----
  empty
+ <ffiExternalPool>!
- <ffiExternalSharedPool>!

Item was changed:
  ----- Method: FFITestInheritanceExternalSharedPool class>>override (in category 'definitions') -----
  override
+ <ffiExternalPool>
- <ffiExternalSharedPool>
  <ffiInheritsFrom: #empty>
  <ffiPlatformName: 'testName' osVersion: 'testOSVersion' subtype: 'testSubtype' wordSize: 16>
  <ffiCCompiler: 'testCompiler'>
  <ffiCFlags: 'testFlags'>
  <ffiCHeaders: #('<testHeader.h>' '"testLocalHeader.h"' 'testImplicitGlobalHeader.h')>
+ <ffiVariable: #One type: 'float' convertTo: #Float>!
- <ffiProgramGenerator: #FFITestExternalSharedPoolProgramGenerator>
- <ffiVariable: #One type: #Float>!

Item was changed:
  ----- Method: FFITestLoopOneExternalSharedPool class>>one (in category 'definitions') -----
  one
+ <ffiExternalPool>
- <ffiExternalSharedPool>
  <ffiInheritsFrom: #one>!

Item was changed:
  ----- Method: FFITestLoopThreeExternalSharedPool class>>one (in category 'definitions') -----
  one
+ <ffiExternalPool>
- <ffiExternalSharedPool>
  <ffiInheritsFrom: #three>!

Item was changed:
  ----- Method: FFITestLoopThreeExternalSharedPool class>>three (in category 'definitions') -----
  three
+ <ffiExternalPool>
- <ffiExternalSharedPool>
  <ffiInheritsFrom: #two>!

Item was changed:
  ----- Method: FFITestLoopThreeExternalSharedPool class>>two (in category 'definitions') -----
  two
+ <ffiExternalPool>
- <ffiExternalSharedPool>
  <ffiInheritsFrom: #one>!

Item was changed:
  ----- Method: FFITestLoopTwoExternalSharedPool class>>one (in category 'definitions') -----
  one
+ <ffiExternalPool>
- <ffiExternalSharedPool>
  <ffiInheritsFrom: #two>!

Item was changed:
  ----- Method: FFITestLoopTwoExternalSharedPool class>>two (in category 'definitions') -----
  two
+ <ffiExternalPool>
- <ffiExternalSharedPool>
  <ffiInheritsFrom: #one>!

Item was changed:
  ----- Method: FFITestPlatformAliasingExternalSharedPool class>>five (in category 'definitions') -----
  five
+ <ffiExternalPool>
- <ffiExternalSharedPool>
  <ffiPlatformName: 'testName' osVersion: 'testOSVersion' subtype: 'testSubtype' wordSize: 32>!

Item was changed:
  ----- Method: FFITestPlatformAliasingExternalSharedPool class>>four (in category 'definitions') -----
  four
+ <ffiExternalPool>
- <ffiExternalSharedPool>
  <ffiPlatformName: 'testName' osVersion: 'testOSVersion' subtype: 'testSubtype' wordSize: 16>!

Item was changed:
  ----- Method: FFITestPlatformAliasingExternalSharedPool class>>one (in category 'definitions') -----
  one
+ <ffiExternalPool>!
- <ffiExternalSharedPool>!

Item was changed:
  ----- Method: FFITestPlatformAliasingExternalSharedPool class>>three (in category 'definitions') -----
  three
+ <ffiExternalPool>
- <ffiExternalSharedPool>
  <ffiPlatformName: 'testName' osVersion: 'testOSVersion' subtype: 'testSubtype' wordSize: 16>!

Item was changed:
  ----- Method: FFITestPlatformAliasingExternalSharedPool class>>two (in category 'definitions') -----
  two
+ <ffiExternalPool>!
- <ffiExternalSharedPool>!

Item was changed:
  ----- Method: FFITestPlatformExternalSharedPool class>>definitionWithName (in category 'definitions') -----
  definitionWithName
+ <ffiExternalPool>
- <ffiExternalSharedPool>
  <ffiPlatformName: 'testName'>!

Item was changed:
  ----- Method: FFITestPlatformExternalSharedPool class>>definitionWithNameOSVersion (in category 'definitions') -----
  definitionWithNameOSVersion
+ <ffiExternalPool>
- <ffiExternalSharedPool>
  <ffiPlatformName: 'testName' osVersion: 'testOSVersion'>!

Item was changed:
  ----- Method: FFITestPlatformExternalSharedPool class>>definitionWithNameOSVersionSubtype (in category 'definitions') -----
  definitionWithNameOSVersionSubtype
+ <ffiExternalPool>
- <ffiExternalSharedPool>
  <ffiPlatformName: 'testName' osVersion: 'testOSVersion' subtype: 'testSubtype'>!

Item was changed:
  ----- Method: FFITestPlatformExternalSharedPool class>>definitionWithNameOSVersionSubtypeWordSize (in category 'definitions') -----
  definitionWithNameOSVersionSubtypeWordSize
+ <ffiExternalPool>
- <ffiExternalSharedPool>
  <ffiPlatformName: 'testName' osVersion: 'testOSVersion' subtype: 'testSubtype' wordSize: 16>!

Item was changed:
  ----- Method: FFITestPlatformExternalSharedPool class>>definitionWithNameWordSize (in category 'definitions') -----
  definitionWithNameWordSize
+ <ffiExternalPool>
- <ffiExternalSharedPool>
  <ffiPlatformName: 'testName' wordSize: 16>!

Item was added:
+ FFITestExternalSharedPool subclass: #FFITestPoolDefinitionExternalSharedPool
+ instanceVariableNames: ''
+ classVariableNames: 'One Two'
+ poolDictionaries: ''
+ category: 'FFI-PoolsTests'!

Item was added:
+ ----- Method: FFITestPoolDefinitionExternalSharedPool class>>base (in category 'as yet unclassified') -----
+ base
+ <ffiExternalPool>
+ <ffiPlatformName: 'base'>
+
+ ^ self poolDefinition!

Item was added:
+ ----- Method: FFITestPoolDefinitionExternalSharedPool class>>override (in category 'as yet unclassified') -----
+ override
+ <ffiExternalPool>
+ <ffiInheritsFrom: #base>
+
+ ^ self poolDefinition!

Item was changed:
  ----- Method: FFITestTypesExternalSharedPool class>>types (in category 'definitions') -----
  types
+ <ffiExternalPool>
+ <ffiVariable: #One type: 'long' convertTo: #Integer>
+ <ffiVariable: #Two type: 'float' convertTo: #Float>
+ <ffiVariable: #Three type: 'char*' convertTo: #String>
+ <ffiVariable: #Four type: 'char' convertTo: #Character>
+ <ffiVariable: #Five type: 'long' convertTo: #Boolean>
+ <ffiVariable: #Six type: 'longlong' convertTo: #LargePositiveInteger>!
- <ffiExternalSharedPool>
- <ffiVariable: #One type: #Integer>
- <ffiVariable: #Two type: #Float>
- <ffiVariable: #Three type: #String>
- <ffiVariable: #Four type: #Character>
- <ffiVariable: #Five type: #Boolean>
- <ffiVariable: #Six type: #LargePositiveInteger>!

Item was changed:
  ----- Method: FFITestUnknownReferenceExternalSharedPool class>>one (in category 'definitions') -----
  one
+ <ffiExternalPool>
- <ffiExternalSharedPool>
  <ffiInheritsFrom: #unknown>!