[Vm-dev] VM Maker: CMakeVMMakerSqueak-tty.72.mcz

commits at source.squeak.org commits at source.squeak.org
Sun Jun 22 21:36:59 UTC 2014


Timothy M uploaded a new version of CMakeVMMakerSqueak to project VM Maker:
http://source.squeak.org/VMMaker/CMakeVMMakerSqueak-tty.72.mcz

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

Name: CMakeVMMakerSqueak-tty.72
Author: tty
Time: 22 June 2014, 5:37:27.208 pm
UUID: a3fdbf76-9170-4cd8-8d66-38c986b3a7d7
Ancestors: CMakeVMMakerSqueak-tty.71

Added and cleaned up tests for CPlatformConfigForSqueak

=============== Diff against CMakeVMMakerSqueak-tty.71 ===============

Item was changed:
  TestCase subclass: #CMakeVMMakerSqueakCommonConfigTest
  	instanceVariableNames: ''
  	classVariableNames: ''
  	poolDictionaries: ''
  	category: 'CMakeVMMakerSqueak-Tests'!
+ 
+ !CMakeVMMakerSqueakCommonConfigTest commentStamp: 'tty 6/22/2014 16:01' prior: 0!
+ A CMakeVMMakerSqueakCommonConfigTest  tests simple functionality that is supported by both AbstractBaseClass configurations and concrete implemntations.
+ 
+ Redirect method tests are farmed out to CMakeVMMakerSqueakRedirectMethodsTest and CMakeVMMakerSqueakRedirectMethodsWithArgTest!

Item was added:
+ ----- Method: CMakeVMMakerSqueakCommonConfigTest>>testAvailableBuildTypes (in category 'as yet unclassified') -----
+ testAvailableBuildTypes
+ 	"each concrete configuration must report what buildTypes it supports  "
+ 	#(#SqueakMacintoshConfig #SqueakUnixConfig #SqueakWindowsConfig) 
+ 		do:[:each | 
+ 			(Smalltalk at:each) 
+ 				subclassesDo:[:configuration | | o |
+ 					o:= configuration new.
+ 					(o excludeFromBuild not)                               ""
+ 						ifTrue:[self assert:(o  availableBuildTypes isKindOf: Collection)]]]
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ !

Item was added:
+ ----- Method: CMakeVMMakerSqueakCommonConfigTest>>testBuildDir (in category 'as yet unclassified') -----
+ testBuildDir
+ 	"for each builder, make sure all its configurations provides availbale build directories "
+ 	#(#SqueakMacintoshConfig #SqueakUnixConfig #SqueakWindowsConfig) 
+ 		do:[:each | 
+ 			(Smalltalk at:each) 
+ 				subclassesDo:[:configuration | | o |
+ 							o:= configuration new.
+ 							o excludeFromBuild not
+ 								ifTrue:[self assert:(o  buildDir isKindOf: FileDirectory)]]]
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ !

Item was changed:
  ----- Method: CMakeVMMakerSqueakCommonConfigTest>>testBuildDirName (in category 'as yet unclassified') -----
  testBuildDirName
  	"for each builder, make sure all its configurations provide a build directory name "
+ 	#(#SqueakMacintoshConfig #SqueakUnixConfig #SqueakWindowsConfig) 
+ 		do:[:each | 
+ 			(Smalltalk at:each) 
+ 				subclassesDo:[:configuration | | o |
- 	SqueakCMakeVMMakerAbstractBuilder 
- 		subclassesDo:[:builder | | o |
- 			Smalltalk globals 
- 				allClassesDo:[:configuration | (configuration class category asString withoutQuoting startsWith: (builder configurationsCategory))
- 					ifTrue:[ 
  							o:= configuration new.
+ 							(o excludeFromBuild not)                               ""
+ 								ifTrue:[
+ 									self assert:(o  buildDirName isString).
+ 									self assert:(o  buildDirName size > 0)]]]
- 							o excludeFromBuild not                                                     
- 								ifTrue:[self assert:(o  buildDirName isString)]]]]
  
  
  
  
  
  
  
  !

Item was removed:
- ----- Method: CMakeVMMakerSqueakCommonConfigTest>>testBuildDirs (in category 'as yet unclassified') -----
- testBuildDirs
- 	"for each builder, make sure all its configurations provides availbale build directories "
- 	SqueakCMakeVMMakerAbstractBuilder 
- 		subclassesDo:[:builder | | o |
- 			Smalltalk globals 
- 				allClassesDo:[:configuration | (configuration class category asString withoutQuoting startsWith: (builder configurationsCategory))
- 					ifTrue:[ 
- 							o:= configuration new.
- 							o excludeFromBuild not
- 								ifTrue:[self assert:(o  buildDir isKindOf: FileDirectory)]]]]
- 
- 
- 
- 
- 
- 
- 
- !

Item was added:
+ ----- Method: CMakeVMMakerSqueakCommonConfigTest>>testBuildScript (in category 'as yet unclassified') -----
+ testBuildScript
+ 	"for each builder, make sure all its configurations provide a build directory name "
+ 	#(#SqueakMacintoshConfig #SqueakUnixConfig #SqueakWindowsConfig) 
+ 		do:[:each | 
+ 			(Smalltalk at:each) 
+ 				subclassesDo:[:configuration | | o |
+ 							o:= configuration new.
+ 							(o excludeFromBuild not)                               ""
+ 								ifTrue:[
+ 									self assert:(o  buildScript isString).
+ 									self assert:(o  buildScript size > 0)]]]
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ !

Item was changed:
  ----- Method: CMakeVMMakerSqueakCommonConfigTest>>testCogitClass (in category 'as yet unclassified') -----
  testCogitClass
  	"for each builder that does not exclude itself from builds, make sure it returns cogitClass "
+ 	#(#SqueakMacintoshConfig #SqueakUnixConfig #SqueakWindowsConfig) 
+ 		do:[:each | 
+ 			(Smalltalk at:each) 
+ 				subclassesDo:[:configuration | | o |
- 	SqueakCMakeVMMakerAbstractBuilder 
- 		subclassesDo:[:builder | | o |
- 			Smalltalk globals 
- 				allClassesDo:[:configuration | (configuration class category asString withoutQuoting startsWith: (builder configurationsCategory))
- 					ifTrue:[ 
  							o:= configuration new.
  							o excludeFromBuild not                                                     
+ 							 	ifTrue:[self assert:(o  cogitClass inheritsFrom: Cogit)]]]
- 							 	ifTrue:[self assert:(o  cogitClass inheritsFrom: Cogit)]]]]
  
  
  
  
  
  
  
  !

Item was changed:
  ----- Method: CMakeVMMakerSqueakCommonConfigTest>>testCommonCompilerFlags (in category 'as yet unclassified') -----
  testCommonCompilerFlags
+ 	#(#SqueakMacintoshConfig #SqueakUnixConfig #SqueakWindowsConfig) 
+ 		do:[:each | 
+ 			(Smalltalk at:each) 
+ 				subclassesDo:[:configuration | | o |
+ 					configuration isAbstractBaseClass   "*"
+ 					ifFalse:[	o:= configuration new. 
+ 							self assert:(o commonCompilerFlags isKindOf: Collection)]]].
  
+ "*
+ SqueakWin32x86Config browse
+ the return array embeds 'self executableName' which does not exist in an AbstractBaseClass
+ "
- 	SqueakCMakeVMMakerAbstractBuilder 
- 		subclassesDo:[:builder | | o |
- 			Smalltalk globals 
- 				allClassesDo:[:configuration | (configuration class category asString withoutQuoting startsWith: (builder configurationsCategory))
- 					ifTrue:[ 
- 							o:= configuration new.
- 							(o excludeFromBuild not)
- 								ifTrue:[
- 							self assert:(o  commonCompilerFlags isArray).
- "							self assert:(o  compilerFlagsAssert isArray).
- 							self assert:(o  compilerFlagsAssertITimerHeartbeat isArray).
- 							self assert:(o  compilerFlagsBuild isArray).
- 							self assert:(o  compilerFlagsDebug isArray).
- 							self assert:(o  compilerFlagsDebugITimerHeartbeat isArray).
- 							self assert:(o  compilerFlagsIHeartbeatTimer isArray).
- 							self assert:(o  compilerFlagsMultiThreaded isArray).
- 							self assert:(o  compilerFlagsMultiThreadedAssert isArray).
- 							self assert:(o  compilerFlagsMultiThreadedDebug isArray)."]]]]
  
  
  
  
  
  
  
  !

Item was added:
+ ----- Method: CMakeVMMakerSqueakCommonConfigTest>>testConfigH (in category 'as yet unclassified') -----
+ testConfigH
+ 	"for each builder, make sure all its configurations provides defaultExternalPlugins"
+ 	SqueakCMakeVMMakerAbstractBuilder 
+ 		subclassesDo:[:builder | | o |
+ 			SqueakUnixConfig 
+ 				allSubclassesDo:[:configuration |
+ 					(configuration isAbstractBaseClass not)
+ 						ifTrue:[o:= configuration new.
+ 							    self assert:(o  configH isString)]]]
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ !

Item was changed:
  ----- Method: CMakeVMMakerSqueakCommonConfigTest>>testCoreSources (in category 'as yet unclassified') -----
  testCoreSources
+ 	#(#SqueakMacintoshConfig #SqueakUnixConfig #SqueakWindowsConfig) 
+ 		do:[:each | 
+ 			(Smalltalk at:each) 
+ 				subclassesDo:[:configuration | | o |
+ 					configuration isAbstractBaseClass not
+ 						ifTrue:[	o:= configuration new.
+ 								o excludeFromBuild not
+ 									ifTrue:[self assert:(o  coreSources isArray)]]]]
- 	"for each builder, make sure all its configurations provides defaultExternalPlugins"
- 	SqueakCMakeVMMakerAbstractBuilder 
- 		subclassesDo:[:builder | | o |
- 			Smalltalk globals 
- 				allClassesDo:[:configuration | (configuration class category asString withoutQuoting startsWith: (builder configurationsCategory))
- 					ifTrue:[ 
- 							o:= configuration new.
- 							(o excludeFromBuild not)
- 								ifTrue:[
- 									self assert:(o  coreSources isArray)]]]]
  
  
  
  
  
  
  
  !

Item was changed:
  ----- Method: CMakeVMMakerSqueakCommonConfigTest>>testCrossSources (in category 'as yet unclassified') -----
  testCrossSources
+ 	#(#SqueakMacintoshConfig #SqueakUnixConfig #SqueakWindowsConfig) 
+ 		do:[:each | 
+ 			(Smalltalk at:each) 
+ 				subclassesDo:[:configuration | | o |
+ 					configuration isAbstractBaseClass not
+ 						ifTrue:[
- 	"for each builder, make sure all its configurations provides defaultExternalPlugins"
- 	SqueakCMakeVMMakerAbstractBuilder 
- 		subclassesDo:[:builder | | o |
- 			Smalltalk globals 
- 				allClassesDo:[:configuration | (configuration class category asString withoutQuoting startsWith: (builder configurationsCategory))
- 					ifTrue:[ 
  							o:= configuration new.
  							(o excludeFromBuild not)
  								ifTrue:[	self assert:(o  crossSources isArray)]]]]
  
  
  
  
  
  
  
  !

Item was added:
+ ----- Method: CMakeVMMakerSqueakCommonConfigTest>>testDirBuildPlatform (in category 'as yet unclassified') -----
+ testDirBuildPlatform
+ 	"for each builder, make sure all its configurations provide a dirSource "
+ 	#(#SqueakMacintoshConfig #SqueakUnixConfig #SqueakWindowsConfig) 
+ 		do:[:each | 
+ 			(Smalltalk at:each) 
+ 				subclassesDo:[:configuration | | o |
+ 									o:= configuration new.
+ 									self assert:(o  dirBuildPlatform isString)]]
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ !

Item was changed:
  ----- Method: CMakeVMMakerSqueakCommonConfigTest>>testDirSource (in category 'as yet unclassified') -----
  testDirSource
  	"for each builder, make sure all its configurations provide a dirSource "
+ 	#(#SqueakMacintoshConfig #SqueakUnixConfig #SqueakWindowsConfig) 
+ 		do:[:each | 
+ 			(Smalltalk at:each) 
+ 				subclassesDo:[:configuration | | o |
+ 					configuration isAbstractBaseClass not
+ 						ifTrue:[	o:= configuration new.
+ 								o excludeFromBuild not
+ 									ifTrue:[self assert:(o  dirSource isString)]]]]
- 	SqueakCMakeVMMakerAbstractBuilder 
- 		subclassesDo:[:builder | | o |
- 			Smalltalk globals 
- 				allClassesDo:[:configuration | (configuration class category asString withoutQuoting startsWith: (builder configurationsCategory))
- 					ifTrue:[ 
- 							o:= configuration new.
- 							self assert:(o  dirSource isString)]]]
  
  
  
  
  
  
  
  !

Item was changed:
  ----- Method: CMakeVMMakerSqueakCommonConfigTest>>testExcludeFromBuild (in category 'as yet unclassified') -----
  testExcludeFromBuild
  	"for each builder, make sure all its includes or excludes itself from a build "
+ 	#(#SqueakMacintoshConfig #SqueakUnixConfig #SqueakWindowsConfig) 
+ 		do:[:each | 
+ 			(Smalltalk at:each) 
+ 				subclassesDo:[:configuration | | o |
- 	SqueakCMakeVMMakerAbstractBuilder 
- 		subclassesDo:[:builder | | o |
- 			Smalltalk globals 
- 				allClassesDo:[:configuration | (configuration class category asString withoutQuoting startsWith: (builder configurationsCategory))
- 					ifTrue:[ 
  							o:= configuration new.
+ 							self assert:((o excludeFromBuild  basicType) = #Boolean)]]
- 							self assert:(((o  excludeFromBuild) == true) | ((o  excludeFromBuild) == false))]]]
  
  
  
  
  
  
  
  !

Item was changed:
  ----- Method: CMakeVMMakerSqueakCommonConfigTest>>testExectuableName (in category 'as yet unclassified') -----
  testExectuableName
  	"for each builder, make sure all its configurations provide an executableName "
+ 	#(#SqueakMacintoshConfig #SqueakUnixConfig #SqueakWindowsConfig) 
+ 		do:[:each | 
+ 			(Smalltalk at:each) 
+ 				subclassesDo:[:configuration | | o |
- 	SqueakCMakeVMMakerAbstractBuilder 
- 		subclassesDo:[:builder | | o |
- 			Smalltalk globals 
- 				allClassesDo:[:configuration | (configuration class category asString withoutQuoting startsWith: (builder configurationsCategory))
- 					ifTrue:[ 
  							o:= configuration new.
  							(o excludeFromBuild not)
+ 								ifTrue:[self assert:(o  executableName isString)]]]
- 								ifTrue:[self assert:(o  executableName isString)]]]]
  
  
  
  
  
  
  
  !

Item was added:
+ ----- Method: CMakeVMMakerSqueakCommonConfigTest>>testExecutableType (in category 'as yet unclassified') -----
+ testExecutableType
+ 	"for each builder, make sure all its configurations provide an executableName "
+ 	#(#SqueakMacintoshConfig #SqueakUnixConfig #SqueakWindowsConfig) 
+ 		do:[:each | 
+ 			(Smalltalk at:each) 
+ 				subclassesDo:[:configuration | | o |
+ 							o:= configuration new.
+ 							(o excludeFromBuild not)
+ 								ifTrue:[self assert:(o  executableType isString)]]]
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ !

Item was changed:
  ----- Method: CMakeVMMakerSqueakCommonConfigTest>>testExternalsModuleDir (in category 'as yet unclassified') -----
  testExternalsModuleDir
+ 	#(#SqueakMacintoshConfig #SqueakUnixConfig #SqueakWindowsConfig) 
+ 		do:[:each | 
+ 			(Smalltalk at:each) 
+ 				subclassesDo:[:configuration | | o |
- 	"for each builder, make sure all its configurations provide a build directory name "
- 	SqueakCMakeVMMakerAbstractBuilder 
- 		subclassesDo:[:builder | | o |
- 			Smalltalk globals 
- 				allClassesDo:[:configuration | (configuration class category asString withoutQuoting startsWith: (builder configurationsCategory))
- 					ifTrue:[ 
  							o:= configuration new.
  							o excludeFromBuild not                                                     
+ 								ifTrue:[self assert:(o  externalModulesDir isString)]]]
- 								ifTrue:[self assert:(o  externalModulesDir isString)]]]]
  
  
  
  
  
  
  
  !

Item was changed:
  ----- Method: CMakeVMMakerSqueakCommonConfigTest>>testExtraSources (in category 'as yet unclassified') -----
  testExtraSources
+ 	#(#SqueakMacintoshConfig #SqueakUnixConfig #SqueakWindowsConfig) 
+ 		do:[:each | 
+ 			(Smalltalk at:each) 
+ 				subclassesDo:[:configuration | | o |
- 	"for each builder, make sure all its configurations provides defaultExternalPlugins"
- 	SqueakCMakeVMMakerAbstractBuilder 
- 		subclassesDo:[:builder | | o |
- 			Smalltalk globals 
- 				allClassesDo:[:configuration | (configuration class category asString withoutQuoting startsWith: (builder configurationsCategory))
- 					ifTrue:[ 
  							o:= configuration new.
  							(o excludeFromBuild not)
+ 								ifTrue:[self assert:(o  extraSources isString)]]]
- 								ifTrue:[self assert:(o  extraSources isString)]]]]
  
  
  
  
  
  
  
  !

Item was changed:
  ----- Method: CMakeVMMakerSqueakCommonConfigTest>>testInterpreterClass (in category 'as yet unclassified') -----
  testInterpreterClass
  	"for each builder that does not exclude itself from builds, make sure it returns an InterpreterClass "
+ 	#(#SqueakMacintoshConfig #SqueakUnixConfig #SqueakWindowsConfig) 
+ 		do:[:each | 
+ 			(Smalltalk at:each) 
+ 				subclassesDo:[:configuration | | o |
- 	SqueakCMakeVMMakerAbstractBuilder 
- 		subclassesDo:[:builder | | o |
- 			Smalltalk globals 
- 				allClassesDo:[:configuration | (configuration class category asString withoutQuoting startsWith: (builder configurationsCategory))
- 					ifTrue:[ 
  							o:= configuration new.
  							o excludeFromBuild not                                                     
  							 	ifTrue:[
  										self assert:(o  interpreterClass inheritsFrom: InterpreterPrimitives).
  										self assert:(o  interpreterClassBuild inheritsFrom: InterpreterPrimitives).
  										self assert:(o  interpreterClassBuildAssert inheritsFrom: InterpreterPrimitives).
  										self assert:(o  interpreterClassBuildAssertITimerHeartbeat inheritsFrom: InterpreterPrimitives).
  										self assert:(o  interpreterClassBuildDebug inheritsFrom: InterpreterPrimitives).
  										self assert:(o  interpreterClassBuildDebugITImerHeartbeat inheritsFrom: InterpreterPrimitives).
  										self assert:(o  interpreterClassBuildITimerHeartbeat inheritsFrom: InterpreterPrimitives).
  										self assert:(o  interpreterClassBuildITimerMultiThreaded inheritsFrom: InterpreterPrimitives).
  										self assert:(o  interpreterClassBuildITimerMultiThreadedAssert inheritsFrom: InterpreterPrimitives).
+ 										self assert:(o  interpreterClassBuildITimerMultiThreadedDebug inheritsFrom: InterpreterPrimitives)]]]
- 										self assert:(o  interpreterClassBuildITimerMultiThreadedDebug inheritsFrom: InterpreterPrimitives)]]]]
  
  
  
  
  
  
  
  !

Item was added:
+ ----- Method: CMakeVMMakerSqueakCommonConfigTest>>testIsAbstractBaseClass (in category 'as yet unclassified') -----
+ testIsAbstractBaseClass
+ 	#(#SqueakMacintoshConfig #SqueakUnixConfig #SqueakWindowsConfig) 
+ 		do:[:each | 
+ 			(Smalltalk at:each) 
+ 				subclassesDo:[:configuration | 
+ 					self assert:(configuration isAbstractBaseClass basicType = #Boolean)]]
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ !

Item was changed:
  ----- Method: CMakeVMMakerSqueakCommonConfigTest>>testOutputDir (in category 'as yet unclassified') -----
  testOutputDir
  	"for each builder, make sure all its configurations provide an outputDir "
+ 	#(#SqueakMacintoshConfig #SqueakUnixConfig #SqueakWindowsConfig) 
+ 		do:[:each | 
+ 			(Smalltalk at:each) 
+ 				subclassesDo:[:configuration | | o |
- 	SqueakCMakeVMMakerAbstractBuilder 
- 		subclassesDo:[:builder | | o |
- 			Smalltalk globals 
- 				allClassesDo:[:configuration | (configuration class category asString withoutQuoting startsWith: (builder configurationsCategory))
- 					ifTrue:[ 
  							o:= configuration new.
  							(o excludeFromBuild not)
+ 								ifTrue:[self assert:(o  outputDir isKindOf: FileDirectory)]]]
- 								ifTrue:[self assert:(o  outputDir isKindOf: FileDirectory)]]]]
  
  
  
  
  
  
  
  !

Item was added:
+ ----- Method: CMakeVMMakerSqueakCommonConfigTest>>testOutputDirName (in category 'as yet unclassified') -----
+ testOutputDirName
+ 	"for each builder, make sure all its configurations provide a build directory name "
+ 	#(#SqueakMacintoshConfig #SqueakUnixConfig #SqueakWindowsConfig) 
+ 		do:[:each | 
+ 			(Smalltalk at:each) 
+ 				subclassesDo:[:configuration | | o |
+ 							o:= configuration new.
+ 							(o excludeFromBuild not)                               ""
+ 								ifTrue:[
+ 									self assert:(o  outputDirName isString).
+ 									self assert:(o  outputDirName size > 0)]]]
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ !

Item was changed:
  ----- Method: CMakeVMMakerSqueakCommonConfigTest>>testPlatformSources (in category 'as yet unclassified') -----
  testPlatformSources
+ 	#(#SqueakMacintoshConfig #SqueakUnixConfig #SqueakWindowsConfig) 
+ 		do:[:each | 
+ 			(Smalltalk at:each) 
+ 				subclassesDo:[:configuration | | o |
+ 					o:= configuration new.
+ 					(o excludeFromBuild not) | (configuration isAbstractBaseClass)
+ 						ifTrue:[self assert:(o  platformSources isArray)]]]
- 	"for each builder, make sure all its configurations provides defaultExternalPlugins"
- 	SqueakCMakeVMMakerAbstractBuilder 
- 		subclassesDo:[:builder | | o |
- 			Smalltalk globals 
- 				allClassesDo:[:configuration | (configuration class category asString withoutQuoting startsWith: (builder configurationsCategory))
- 					ifTrue:[ 
- 							o:= configuration new.
- 							(o excludeFromBuild not)
- 								ifTrue:[self assert:(o  platformSources isArray)]]]]
  
  
  
  
  
  
  
  !

Item was added:
+ ----- Method: CMakeVMMakerSqueakCommonConfigTest>>testSrcDir (in category 'as yet unclassified') -----
+ testSrcDir
+ 	"for each builder, make sure all its configurations provide a srcDir "
+ 	#(#SqueakMacintoshConfig #SqueakUnixConfig #SqueakWindowsConfig) 
+ 		do:[:each | 
+ 			(Smalltalk at:each) 
+ 				subclassesDo:[:configuration | | o |
+ 					o:= configuration new.
+ 					(o excludeFromBuild not) | (configuration isAbstractBaseClass)
+ 						ifTrue:[self assert:(o  srcDir isKindOf: FileDirectory)]]]
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ !

Item was removed:
- ----- Method: CMakeVMMakerSqueakCommonConfigTest>>testSrcDirs (in category 'as yet unclassified') -----
- testSrcDirs
- 	"for each builder, make sure all its configurations provide a srcDir "
- 	SqueakCMakeVMMakerAbstractBuilder 
- 		subclassesDo:[:builder | | o |
- 			Smalltalk globals 
- 				allClassesDo:[:configuration | (configuration class category asString withoutQuoting startsWith: (builder configurationsCategory))
- 					ifTrue:[ 
- 							o:= configuration new.
- 							self assert:(o  srcDir isKindOf: FileDirectory)]]]
- 
- 
- 
- 
- 
- 
- 
- !

Item was added:
+ ----- Method: CMakeVMMakerSqueakCommonConfigTest>>testTopDir (in category 'as yet unclassified') -----
+ testTopDir
+ 	"for each builder, make sure all its configurations provide a topDir "
+ 	#(#SqueakMacintoshConfig #SqueakUnixConfig #SqueakWindowsConfig) 
+ 		do:[:each | 
+ 			(Smalltalk at:each) 
+ 				subclassesDo:[:configuration | | o |
+ 					o:= configuration new.
+ 					(o excludeFromBuild not) | (configuration isAbstractBaseClass)
+ 						ifTrue:[self assert:(o  topDir isKindOf: FileDirectory)]]]
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ !

Item was removed:
- ----- Method: CMakeVMMakerSqueakCommonConfigTest>>testTopDirs (in category 'as yet unclassified') -----
- testTopDirs
- 	"for each builder, make sure all its configurations provide a topDir "
- 	SqueakCMakeVMMakerAbstractBuilder 
- 		subclassesDo:[:builder | | o |
- 			Smalltalk globals 
- 				allClassesDo:[:configuration | (configuration class category asString withoutQuoting startsWith: (builder configurationsCategory))
- 					ifTrue:[ 
- 							o:= configuration new.
- 							self assert:(o  topDir isKindOf: FileDirectory)]]]
- 
- 
- 
- 
- 
- 
- 
- !

Item was changed:
  ----- Method: CMakeVMMakerSqueakCommonConfigTest>>testVersion (in category 'as yet unclassified') -----
  testVersion
+ 	#(#SqueakMacintoshConfig #SqueakUnixConfig #SqueakWindowsConfig) 
+ 		do:[:each | 
+ 			(Smalltalk at:each) 
+ 				subclassesDo:[:configuration | | o |
+ 					o:= configuration new.
+ 					(o excludeFromBuild not) | (configuration isAbstractBaseClass)
+ 						ifTrue:[self assert:(o  version isString)]]]
- 	"for each builder, make sure all its configurations provides defaultExternalPlugins"
- 	SqueakCMakeVMMakerAbstractBuilder 
- 		subclassesDo:[:builder | | o |
- 			Smalltalk globals 
- 				allClassesDo:[:configuration | (configuration class category asString withoutQuoting startsWith: (builder configurationsCategory))
- 					ifTrue:[ 
- 							o:= configuration new.
- 							self assert:(o  version isString)]]]
  
  
  
  
  
  
  
  !

Item was changed:
  ----- Method: CMakeVMMakerSqueakCommonConfigTest>>testdirBuildLanguageVMMM (in category 'as yet unclassified') -----
  testdirBuildLanguageVMMM
  	"for each builder that does not exclude itself from builds, make sure it returns dirBUildLanguageVMMM "
+ 	#(#SqueakMacintoshConfig #SqueakUnixConfig #SqueakWindowsConfig) 
+ 		do:[:each | 
+ 			(Smalltalk at:each) 
+ 				subclassesDo:[:configuration | | o |
- 	SqueakCMakeVMMakerAbstractBuilder 
- 		subclassesDo:[:builder | | o |
- 			Smalltalk globals 
- 				allClassesDo:[:configuration | (configuration class category asString withoutQuoting startsWith: (builder configurationsCategory))
- 					ifTrue:[ 
  							o:= configuration new.
  							o excludeFromBuild not                                                     
+ 							 	ifTrue:[self assert:(o  dirBuildLanguageVMMM isString)]]]
- 							 	ifTrue:[self assert:(o  dirBuildLanguageVMMM isString)]]]]
  
  
  
  
  
  
  
  !

Item was changed:
  ----- Method: CMakeVMMakerSqueakRedirectMethodsTest>>testLinkFlags (in category 'as yet unclassified') -----
  testLinkFlags
  	"make sure each enabled Configuration returns from each buildType configuration correctly"
- 	|buildTypes|
  	SqueakCMakeVMMakerAbstractBuilder	reset.
  	SqueakCMakeVMMakerAbstractBuilder 
+ 		subclassesDo:[:builder | 
- 		subclassesDo:[:builder |
- 	 | concreteConfiguration concreteBuilder|
- 			concreteBuilder:=(Smalltalk at: (builder name asSymbol)) new.
  			Smalltalk globals 
+ 				allClassesDo:[:configuration | (configuration class category asString withoutQuoting startsWith: (builder configurationsCategory))
+ 					ifTrue:[ ]]]
- 				allClassesDo:[:configuration | (configuration class category asString withoutQuoting startsWith: (concreteBuilder configurationsCategory))
- 					ifTrue:[ 
- 							concreteConfiguration:= configuration new.
- 							(concreteConfiguration excludeFromBuild not)
- 								ifTrue:[
- 									buildTypes := concreteBuilder availableBuildTypesFor: concreteConfiguration class name asSymbol.
- 									buildTypes do:[:buildType |
- 											builder configureA: (configuration name) forBuildType: buildType.
- 													self assert:(concreteConfiguration  linkFlags isString)]]]]]
- 											
  
  
  
  
  
  
  
  
  
  !

Item was changed:
  CPlatformConfig subclass: #CPlatformConfigForSqueak
  	instanceVariableNames: 'buildType generateBuild generateBuildAssert generateBuildAssertITimerHeartbeat generateBuildDebug generateBuildDebugITimerHeartbeat generateBuildDebugMultiThreaded generateBuildIHeartbeatTimer generateBuildMultiThreaded generateBuildMultiThreadedAssert generateBuildMultiThreadedDebug'
  	classVariableNames: ''
  	poolDictionaries: ''
  	category: 'CMakeVMMakerSqueak'!
+ CPlatformConfigForSqueak class
+ 	instanceVariableNames: 'isAbstractBaseClass'!
  
+ !CPlatformConfigForSqueak commentStamp: 'tty 6/22/2014 15:22' prior: 0!
- !CPlatformConfigForSqueak commentStamp: 'tty 6/20/2014 18:23' prior: 0!
  A CPlatformConfigForSqueak acts as a compatability layer for Squeak and an Abstract Base Class for extended functionality required for the Squeak CMakeVMMaker use-case.
  
  I make (very) heavy use of a specific design pattern for configuring myself and remaining compatible with pharo's CMakeVMMaker.
  The entry point for that pattern is my method 'configureForBuildType: aSymbol' . Each method send in there detects my buildType and routes the send
  to the approriate method for that buildType.
  
  Subclasses of me 'must' configure themselves for each build type per that pattern. 
  However this can be very easy by just returning the base configuration.
  
  Tests are written to verify that this support infrastructure is in place.
  
+ I have two important variables.
+ 
+ excludeFromBuild and isAbstractBaseClass.
+ 
+ excludeFromBuild 
+ 		is used to exclude a configuration from being built by a Builder.
+ 		is used to exclude a configuration from Testing.
+ 
+ isAbstractBaseClass 
+ 		is a class instance variable used by configurations that exclude themselves from being built by a Builder BUT need to be included in 		Testing.
+ 
+ 										
+ excludeFromBuild  | isAbstractBaseClass  | should build  | should test
+ 	T					    T                            NO                  YES
+       T					    F                             NO                   NO
+       F					    T                            YES                  YES
+       F                                 F                            YES                  YES
+ 
+ 
+ The use-case is as follows.
+ 
+ An abstract base class contains a lot of functionality that must be implemented and tested for the system to work, but it is not meant to be compiled.
+ 
+ concrete classes of that AbstractBase class can exclude themselves from being built by builders and by doing so are not tested.
+ However, once a concrete configuration is enabled to be built, it must pass all tests.
+ 
+ Linux32x86Config is an example of an AbstractBase class that must pass all testing, but is not buildable.
+ Its subclass Linux32x86SqueakCogV3Config needs testing, but a developer can toggle 'exclude from build' to hide it from Builders or make it available to them.
+ 
+ 
+ 
+ 
  tty.!
+ CPlatformConfigForSqueak class
+ 	instanceVariableNames: 'isAbstractBaseClass'!

Item was changed:
  ----- Method: CPlatformConfigForSqueak class>>isAbstractBaseClass (in category 'as yet unclassified') -----
  isAbstractBaseClass
+ 	^isAbstractBaseClass ifNil:[false] ifNotNil:[isAbstractBaseClass]
+ !
- 	^true!

Item was added:
+ ----- Method: CPlatformConfigForSqueak class>>isAbstractBaseClass: (in category 'as yet unclassified') -----
+ isAbstractBaseClass: aBoolean
+ 	isAbstractBaseClass := aBoolean
+ !

Item was changed:
  ----- Method: CPlatformConfigForSqueak>>availableBuildTypes (in category 'cmake configuration') -----
  availableBuildTypes
+ 	self subclassResponsibility.
- 	^SqueakCMakeVMMakerAbstractBuilder  default  allBuildTypes
  
  	" ^SqueakCMakeVMMakerAbstractBuilder  default  noBuildTypes
  	  ^(SqueakCMakeVMMakerAbstractBuilder  default  allBuildTypes
  			copyWithoutAll: #( #assertWithHeartbeatTimer #debugWithHeartbeatTimer debugMultiThreadedFFI.....etc))   
  	"!

Item was changed:
  ----- Method: CPlatformConfigForSqueak>>buildScript (in category 'squeak compatability') -----
  buildScript
+ 	"answer the build script build.sh"
+ 	^ '#!!/usr/bin/env bash
- 	"answer the build script for building everything"
- 	
- 
- 	^ 
- '#!!/usr/bin/env bash
- 
  cmake .
+ make'!
- make
- 
- '!

Item was added:
+ ----- Method: Linux32x86Config class>>initialize (in category 'as yet unclassified') -----
+ initialize
+ 	isAbstractBaseClass:=true!

Item was added:
+ ----- Method: Linux32x86Config>>availableBuildTypes (in category 'cmake configuration') -----
+ availableBuildTypes
+ 	 ^SqueakCMakeVMMakerAbstractBuilder  default  noBuildTypes
+ "	subclasses should use
+ 
+   ^super availableBuildTypes copyWithoutAll: #( #assertWithHeartbeatTimer #debugWithHeartbeatTimer debugMultiThreadedFFI.....etc))   "
+ 	
+ !

Item was added:
+ ----- Method: Linux64Config>>availableBuildTypes (in category 'cmake configuration') -----
+ availableBuildTypes
+ 	 ^SqueakCMakeVMMakerAbstractBuilder  default  noBuildTypes
+ "	subclasses should use
+ 
+   ^super availableBuildTypes copyWithoutAll: #( #assertWithHeartbeatTimer #debugWithHeartbeatTimer debugMultiThreadedFFI.....etc))   "
+ 	
+ !

Item was added:
+ ----- Method: Linux64x86w32BitConfig>>availableBuildTypes (in category 'cmake configuration') -----
+ availableBuildTypes
+ 	 ^SqueakCMakeVMMakerAbstractBuilder  default  noBuildTypes
+ "	subclasses should use
+ 
+   ^super availableBuildTypes copyWithoutAll: #( #assertWithHeartbeatTimer #debugWithHeartbeatTimer debugMultiThreadedFFI.....etc))   "
+ 	
+ !

Item was added:
+ ----- Method: SqueakAndroidStackEvtConfig>>availableBuildTypes (in category 'cmake configuration') -----
+ availableBuildTypes
+ 	 ^SqueakCMakeVMMakerAbstractBuilder  default  noBuildTypes
+ !

Item was added:
+ ----- Method: SqueakBSDConfig class>>initialize (in category 'as yet unclassified') -----
+ initialize
+ 	isAbstractBaseClass:=true!

Item was added:
+ ----- Method: SqueakBSDConfig>>availableBuildTypes (in category 'cmake configuration') -----
+ availableBuildTypes
+ 	 ^SqueakCMakeVMMakerAbstractBuilder  default  noBuildTypes
+ "	subclasses should use
+ 
+   ^super availableBuildTypes copyWithoutAll: #( #assertWithHeartbeatTimer #debugWithHeartbeatTimer debugMultiThreadedFFI.....etc))   "
+ 	
+ !

Item was added:
+ ----- Method: SqueakIA32BochsConfig>>availableBuildTypes (in category 'cmake configuration') -----
+ availableBuildTypes
+ 	 ^SqueakCMakeVMMakerAbstractBuilder  default  noBuildTypes
+ "	subclasses should use
+ 
+   ^super availableBuildTypes copyWithoutAll: #( #assertWithHeartbeatTimer #debugWithHeartbeatTimer debugMultiThreadedFFI.....etc))   "
+ 	
+ !

Item was added:
+ ----- Method: SqueakIOSConfig>>availableBuildTypes (in category 'cmake configuration') -----
+ availableBuildTypes
+ 	 ^SqueakCMakeVMMakerAbstractBuilder  default  noBuildTypes
+ "	subclasses should use
+ 
+   ^super availableBuildTypes copyWithoutAll: #( #assertWithHeartbeatTimer #debugWithHeartbeatTimer debugMultiThreadedFFI.....etc))   "
+ 	
+ !

Item was added:
+ ----- Method: SqueakMacOSX32x86Config>>availableBuildTypes (in category 'cmake configuration') -----
+ availableBuildTypes
+ 	 ^SqueakCMakeVMMakerAbstractBuilder  default  noBuildTypes
+ "	subclasses should use
+ 
+   ^super availableBuildTypes copyWithoutAll: #( #assertWithHeartbeatTimer #debugWithHeartbeatTimer debugMultiThreadedFFI.....etc))   "
+ 	
+ !

Item was added:
+ ----- Method: SqueakMacOSXPowerPCConfig>>availableBuildTypes (in category 'cmake configuration') -----
+ availableBuildTypes
+ 	 ^SqueakCMakeVMMakerAbstractBuilder  default  noBuildTypes
+ "	subclasses should use
+ 
+   ^super availableBuildTypes copyWithoutAll: #( #assertWithHeartbeatTimer #debugWithHeartbeatTimer debugMultiThreadedFFI.....etc))   "
+ 	
+ !

Item was added:
+ ----- Method: SqueakSunOS32x86Config>>availableBuildTypes (in category 'cmake configuration') -----
+ availableBuildTypes
+ 	 ^SqueakCMakeVMMakerAbstractBuilder  default  noBuildTypes
+ "	subclasses should use
+ 
+   ^super availableBuildTypes copyWithoutAll: #( #assertWithHeartbeatTimer #debugWithHeartbeatTimer debugMultiThreadedFFI.....etc))   "
+ 	
+ !

Item was changed:
+ ----- Method: SqueakSunOS32x86Config>>coreSources (in category 'source files') -----
- ----- Method: SqueakSunOS32x86Config>>coreSources (in category 'as yet unclassified') -----
  coreSources
  	self flag:'tty'. "Is this correct for this platform?"
  	^ #(
  		'cogit.c'
  		'gcc3x-cointerp.c'
  		)!

Item was added:
+ ----- Method: SqueakWin32x86Config>>availableBuildTypes (in category 'cmake configuration') -----
+ availableBuildTypes
+ 	 ^SqueakCMakeVMMakerAbstractBuilder  default  noBuildTypes
+ "	subclasses should use
+ 
+   ^super availableBuildTypes copyWithoutAll: #( #assertWithHeartbeatTimer #debugWithHeartbeatTimer debugMultiThreadedFFI.....etc))   "
+ 	
+ !



More information about the Vm-dev mailing list