CI: Added CI scripts for Pharo
...to make Jenkins setup easier. To run CalipeL/S tests on Pharo, simply execute:
wget -O "ci-pharo-common.sh" https://bitbucket.org/janvrany/jv-calipel/raw/tip/s/pharo/ci/ci-pharo-tests.sh | bash -x
To run standard set ob benchmarks on Pharo, run
wget -O "ci-pharo-common.sh" https://bitbucket.org/janvrany/jv-calipel/raw/tip/s/pharo/ci/ci-pharo-benchmarks.sh | bash -x
"{ Package: 'jv:calipel/s' }"
"{ NameSpace: Smalltalk }"
Object subclass:#BenchmarkParameter
instanceVariableNames:'name type default values'
classVariableNames:'UndefinedValue'
poolDictionaries:''
category:'CalipeL-S-Core'
!
!BenchmarkParameter class methodsFor:'initialization'!
initialize
"Invoked at system start or when the class is dynamically loaded."
UndefinedValue := Object new.
"Modified: / 30-07-2013 / 23:31:19 / Jan Vrany <jan.vrany@fit.cvut.cz>"
"Modified (comment): / 01-08-2013 / 18:39:16 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
!BenchmarkParameter class methodsFor:'instance creation'!
name:nameArg type:typeArg default:defaultArg values:valuesArg
^ self new name:nameArg type:typeArg default:defaultArg values:valuesArg
! !
!BenchmarkParameter class methodsFor:'accessing'!
undefinedValue
^ UndefinedValue
"Created: / 30-07-2013 / 23:31:42 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
!BenchmarkParameter methodsFor:'accessing'!
default
^ default
!
default:anObject
default := anObject.
!
getter
^ self name
"Created: / 27-07-2013 / 11:32:26 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
name
^ name
!
name:aString
name := aString.
!
name:nameArg type:typeArg default:defaultArg values:valuesArg
name := nameArg.
type := typeArg.
default := defaultArg.
values := valuesArg.
!
setter
^ (self name , ':') asSymbol
"Created: / 27-07-2013 / 11:32:49 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
type
^ type
!
type:aClass
type := aClass.
!
values
^ values
!
values:anArray
values := anArray.
! !
!BenchmarkParameter methodsFor:'get / set'!
set: value in: instance
| setter |
values notNil ifTrue:[
(values includes: value) ifFalse:[
"JV: Note for Smalltalk/X: #signal: is actually an ANSI 1.9 protocol!!"
BenchmarkParameterError new signal:'Invalid parameter value for ', name , ' (' , value storeString ,')'.
].
].
setter := self setter.
(instance respondsTo: setter) ifFalse:[
BenchmarkParameterError new signal:'Cannot set parameter ', name , ' (' ,instance class name , ' does not respond to ', setter storeString , ')'.
].
[
instance perform: setter with: value
] on: Error do:[:ex|
BenchmarkParameterError new signal:'Cannot set parameter ', name , ' (', ex description , ')'
]
"Created: / 27-07-2013 / 11:43:17 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
!BenchmarkParameter methodsFor:'printing & storing'!
printOn:aStream
"append a printed representation if the receiver to the argument, aStream"
name printOn: aStream.
aStream nextPutAll:' ['.
type printOn: aStream.
aStream nextPutAll:']'.
"Modified: / 01-08-2013 / 18:52:40 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
!BenchmarkParameter class methodsFor:'documentation'!
version_HG
^ '$Changeset: <not expanded> $'
! !
BenchmarkParameter initialize!