author | Jan Vrany <jan.vrany@fit.cvut.cz> |
Wed, 03 Dec 2014 23:53:25 +0000 | |
changeset 262 | 8d2849dd3227 |
parent 224 | 703461d83b2f |
child 279 | af5ed3f190d4 |
permissions | -rw-r--r-- |
9
e0be46520a59
Split BenchmarkRunner in common and platform-specific code. Addec platform object
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
1 |
"{ Package: 'jv:calipel/s' }" |
e0be46520a59
Split BenchmarkRunner in common and platform-specific code. Addec platform object
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
2 |
|
e0be46520a59
Split BenchmarkRunner in common and platform-specific code. Addec platform object
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
3 |
Object subclass:#BenchmarkRunner |
147
91e4feb2c8b5
Moved error handling to command line adapter.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
145
diff
changeset
|
4 |
instanceVariableNames:'suite result' |
9
e0be46520a59
Split BenchmarkRunner in common and platform-specific code. Addec platform object
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
5 |
classVariableNames:'' |
e0be46520a59
Split BenchmarkRunner in common and platform-specific code. Addec platform object
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
6 |
poolDictionaries:'' |
98
4266d340e722
Added user feedback info when running benchmarks using BenchmarkRunner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
76
diff
changeset
|
7 |
category:'CalipeL-S-Core-Runner' |
9
e0be46520a59
Split BenchmarkRunner in common and platform-specific code. Addec platform object
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
8 |
! |
e0be46520a59
Split BenchmarkRunner in common and platform-specific code. Addec platform object
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
9 |
|
e0be46520a59
Split BenchmarkRunner in common and platform-specific code. Addec platform object
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
10 |
!BenchmarkRunner class methodsFor:'documentation'! |
e0be46520a59
Split BenchmarkRunner in common and platform-specific code. Addec platform object
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
11 |
|
e0be46520a59
Split BenchmarkRunner in common and platform-specific code. Addec platform object
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
12 |
documentation |
e0be46520a59
Split BenchmarkRunner in common and platform-specific code. Addec platform object
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
13 |
" |
124
e5582f62aab5
Fixed command line argument handling and error reporting.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
122
diff
changeset
|
14 |
BechmarkRunner is the command line client for CalipeL. |
e5582f62aab5
Fixed command line argument handling and error reporting.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
122
diff
changeset
|
15 |
It parses the command line arguments, sets up the |
e5582f62aab5
Fixed command line argument handling and error reporting.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
122
diff
changeset
|
16 |
environment and run benchmarks. |
9
e0be46520a59
Split BenchmarkRunner in common and platform-specific code. Addec platform object
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
17 |
" |
e0be46520a59
Split BenchmarkRunner in common and platform-specific code. Addec platform object
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
18 |
! ! |
e0be46520a59
Split BenchmarkRunner in common and platform-specific code. Addec platform object
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
19 |
|
e0be46520a59
Split BenchmarkRunner in common and platform-specific code. Addec platform object
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
20 |
!BenchmarkRunner class methodsFor:'instance creation'! |
e0be46520a59
Split BenchmarkRunner in common and platform-specific code. Addec platform object
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
21 |
|
e0be46520a59
Split BenchmarkRunner in common and platform-specific code. Addec platform object
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
22 |
new |
e0be46520a59
Split BenchmarkRunner in common and platform-specific code. Addec platform object
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
23 |
"return an initialized instance" |
e0be46520a59
Split BenchmarkRunner in common and platform-specific code. Addec platform object
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
24 |
|
e0be46520a59
Split BenchmarkRunner in common and platform-specific code. Addec platform object
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
25 |
^ self basicNew initialize. |
e0be46520a59
Split BenchmarkRunner in common and platform-specific code. Addec platform object
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
26 |
! ! |
e0be46520a59
Split BenchmarkRunner in common and platform-specific code. Addec platform object
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
27 |
|
e0be46520a59
Split BenchmarkRunner in common and platform-specific code. Addec platform object
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
28 |
!BenchmarkRunner methodsFor:'accessing'! |
e0be46520a59
Split BenchmarkRunner in common and platform-specific code. Addec platform object
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
29 |
|
134
287e1365b137
Parameter resolution refactored. Added more tests.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
125
diff
changeset
|
30 |
result |
287e1365b137
Parameter resolution refactored. Added more tests.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
125
diff
changeset
|
31 |
^ result |
287e1365b137
Parameter resolution refactored. Added more tests.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
125
diff
changeset
|
32 |
! |
287e1365b137
Parameter resolution refactored. Added more tests.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
125
diff
changeset
|
33 |
|
287e1365b137
Parameter resolution refactored. Added more tests.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
125
diff
changeset
|
34 |
suite |
287e1365b137
Parameter resolution refactored. Added more tests.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
125
diff
changeset
|
35 |
^ suite |
9
e0be46520a59
Split BenchmarkRunner in common and platform-specific code. Addec platform object
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
36 |
! ! |
e0be46520a59
Split BenchmarkRunner in common and platform-specific code. Addec platform object
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
37 |
|
e0be46520a59
Split BenchmarkRunner in common and platform-specific code. Addec platform object
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
38 |
!BenchmarkRunner methodsFor:'main'! |
e0be46520a59
Split BenchmarkRunner in common and platform-specific code. Addec platform object
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
39 |
|
143
e702a244cea5
Added --arguments argument to benchmark runner
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
139
diff
changeset
|
40 |
main:argv0 |
262
8d2849dd3227
Added support for (user-defined) benchmark instruments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
224
diff
changeset
|
41 |
| i report instruments name file params classes runs argv desc setup setupScript teardown teardownScript executor | |
9
e0be46520a59
Split BenchmarkRunner in common and platform-specific code. Addec platform object
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
42 |
|
e0be46520a59
Split BenchmarkRunner in common and platform-specific code. Addec platform object
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
43 |
params := Dictionary new. |
e0be46520a59
Split BenchmarkRunner in common and platform-specific code. Addec platform object
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
44 |
classes := OrderedCollection new. |
e0be46520a59
Split BenchmarkRunner in common and platform-specific code. Addec platform object
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
45 |
report := BenchmarkReport text. |
262
8d2849dd3227
Added support for (user-defined) benchmark instruments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
224
diff
changeset
|
46 |
instruments := OrderedCollection new. |
9
e0be46520a59
Split BenchmarkRunner in common and platform-specific code. Addec platform object
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
47 |
runs := 5. |
143
e702a244cea5
Added --arguments argument to benchmark runner
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
139
diff
changeset
|
48 |
argv := argv0 asOrderedCollection. |
9
e0be46520a59
Split BenchmarkRunner in common and platform-specific code. Addec platform object
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
49 |
|
e0be46520a59
Split BenchmarkRunner in common and platform-specific code. Addec platform object
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
50 |
i := 1. |
e0be46520a59
Split BenchmarkRunner in common and platform-specific code. Addec platform object
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
51 |
[ i <= argv size ] whileTrue:[ |
e0be46520a59
Split BenchmarkRunner in common and platform-specific code. Addec platform object
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
52 |
| arg | |
e0be46520a59
Split BenchmarkRunner in common and platform-specific code. Addec platform object
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
53 |
|
e0be46520a59
Split BenchmarkRunner in common and platform-specific code. Addec platform object
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
54 |
arg := argv at: i. |
e0be46520a59
Split BenchmarkRunner in common and platform-specific code. Addec platform object
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
55 |
i := i + 1. |
e0be46520a59
Split BenchmarkRunner in common and platform-specific code. Addec platform object
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
56 |
arg first == $- ifTrue:[ |
e0be46520a59
Split BenchmarkRunner in common and platform-specific code. Addec platform object
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
57 |
arg = '-n' ifTrue:[ |
124
e5582f62aab5
Fixed command line argument handling and error reporting.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
122
diff
changeset
|
58 |
i > argv size ifTrue:[ |
e5582f62aab5
Fixed command line argument handling and error reporting.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
122
diff
changeset
|
59 |
self error:'-n requires an integer parameter' |
e5582f62aab5
Fixed command line argument handling and error reporting.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
122
diff
changeset
|
60 |
]. |
9
e0be46520a59
Split BenchmarkRunner in common and platform-specific code. Addec platform object
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
61 |
runs := Integer readFrom: (argv at: i) onError:[ |
e0be46520a59
Split BenchmarkRunner in common and platform-specific code. Addec platform object
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
62 |
self error: '-n requires an integer parameter'. |
e0be46520a59
Split BenchmarkRunner in common and platform-specific code. Addec platform object
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
63 |
]. |
e0be46520a59
Split BenchmarkRunner in common and platform-specific code. Addec platform object
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
64 |
i := i + 1. |
e0be46520a59
Split BenchmarkRunner in common and platform-specific code. Addec platform object
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
65 |
]. |
e0be46520a59
Split BenchmarkRunner in common and platform-specific code. Addec platform object
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
66 |
arg = '-o' ifTrue:[ |
124
e5582f62aab5
Fixed command line argument handling and error reporting.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
122
diff
changeset
|
67 |
i > argv size ifTrue:[ |
e5582f62aab5
Fixed command line argument handling and error reporting.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
122
diff
changeset
|
68 |
self error:'-o requires a filename parameter' |
e5582f62aab5
Fixed command line argument handling and error reporting.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
122
diff
changeset
|
69 |
]. |
9
e0be46520a59
Split BenchmarkRunner in common and platform-specific code. Addec platform object
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
70 |
file := argv at: i. |
e0be46520a59
Split BenchmarkRunner in common and platform-specific code. Addec platform object
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
71 |
i := i + 1. |
e0be46520a59
Split BenchmarkRunner in common and platform-specific code. Addec platform object
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
72 |
]. |
205
63a0130d7951
Added new command line options.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
204
diff
changeset
|
73 |
(arg = '--arguments' or:[arg = '--script']) ifTrue:[ |
143
e702a244cea5
Added --arguments argument to benchmark runner
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
139
diff
changeset
|
74 |
| arguments argumentsF | |
e702a244cea5
Added --arguments argument to benchmark runner
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
139
diff
changeset
|
75 |
|
e702a244cea5
Added --arguments argument to benchmark runner
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
139
diff
changeset
|
76 |
i > argv size ifTrue:[ |
205
63a0130d7951
Added new command line options.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
204
diff
changeset
|
77 |
self error: arg, ' requires a file parameter.' |
143
e702a244cea5
Added --arguments argument to benchmark runner
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
139
diff
changeset
|
78 |
]. |
e702a244cea5
Added --arguments argument to benchmark runner
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
139
diff
changeset
|
79 |
argumentsF := (arguments := (argv at: i)) asFilename. |
e702a244cea5
Added --arguments argument to benchmark runner
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
139
diff
changeset
|
80 |
argumentsF exists ifFalse:[ |
e702a244cea5
Added --arguments argument to benchmark runner
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
139
diff
changeset
|
81 |
self error:'no such file: ', arguments. |
e702a244cea5
Added --arguments argument to benchmark runner
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
139
diff
changeset
|
82 |
]. |
204
97b7cdaeb0e8
Better script file parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
190
diff
changeset
|
83 |
argumentsF readingFileDo:[:f | self parseArguments: f into: argv ]. |
143
e702a244cea5
Added --arguments argument to benchmark runner
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
139
diff
changeset
|
84 |
i := i + 1. |
e702a244cea5
Added --arguments argument to benchmark runner
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
139
diff
changeset
|
85 |
]. |
e702a244cea5
Added --arguments argument to benchmark runner
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
139
diff
changeset
|
86 |
|
e702a244cea5
Added --arguments argument to benchmark runner
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
139
diff
changeset
|
87 |
|
9
e0be46520a59
Split BenchmarkRunner in common and platform-specific code. Addec platform object
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
88 |
arg = '-r' ifTrue:[ |
e0be46520a59
Split BenchmarkRunner in common and platform-specific code. Addec platform object
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
89 |
| reportNm | |
e0be46520a59
Split BenchmarkRunner in common and platform-specific code. Addec platform object
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
90 |
|
124
e5582f62aab5
Fixed command line argument handling and error reporting.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
122
diff
changeset
|
91 |
i > argv size ifTrue:[ |
e5582f62aab5
Fixed command line argument handling and error reporting.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
122
diff
changeset
|
92 |
self error:'-r requires a valid class name parameter' |
e5582f62aab5
Fixed command line argument handling and error reporting.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
122
diff
changeset
|
93 |
]. |
9
e0be46520a59
Split BenchmarkRunner in common and platform-specific code. Addec platform object
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
94 |
reportNm := (argv at: i). |
e0be46520a59
Split BenchmarkRunner in common and platform-specific code. Addec platform object
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
95 |
i := i + 1. |
e0be46520a59
Split BenchmarkRunner in common and platform-specific code. Addec platform object
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
96 |
report := Smalltalk at: reportNm asSymbol. |
e0be46520a59
Split BenchmarkRunner in common and platform-specific code. Addec platform object
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
97 |
report isNil ifTrue:[ |
e0be46520a59
Split BenchmarkRunner in common and platform-specific code. Addec platform object
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
98 |
self error: 'No report class named ''', reportNm, ''''. |
e0be46520a59
Split BenchmarkRunner in common and platform-specific code. Addec platform object
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
99 |
]. |
e0be46520a59
Split BenchmarkRunner in common and platform-specific code. Addec platform object
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
100 |
]. |
262
8d2849dd3227
Added support for (user-defined) benchmark instruments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
224
diff
changeset
|
101 |
|
8d2849dd3227
Added support for (user-defined) benchmark instruments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
224
diff
changeset
|
102 |
(arg = '-i' or:[arg = '--instrument']) ifTrue:[ |
8d2849dd3227
Added support for (user-defined) benchmark instruments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
224
diff
changeset
|
103 |
| instrumentNm instrumentCls | |
8d2849dd3227
Added support for (user-defined) benchmark instruments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
224
diff
changeset
|
104 |
|
8d2849dd3227
Added support for (user-defined) benchmark instruments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
224
diff
changeset
|
105 |
i > argv size ifTrue:[ |
8d2849dd3227
Added support for (user-defined) benchmark instruments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
224
diff
changeset
|
106 |
self error: arg, ' requires a valid class name parameter' |
8d2849dd3227
Added support for (user-defined) benchmark instruments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
224
diff
changeset
|
107 |
]. |
8d2849dd3227
Added support for (user-defined) benchmark instruments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
224
diff
changeset
|
108 |
instrumentNm := (argv at: i). |
8d2849dd3227
Added support for (user-defined) benchmark instruments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
224
diff
changeset
|
109 |
i := i + 1. |
8d2849dd3227
Added support for (user-defined) benchmark instruments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
224
diff
changeset
|
110 |
instrumentCls := Smalltalk at: instrumentNm asSymbol. |
8d2849dd3227
Added support for (user-defined) benchmark instruments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
224
diff
changeset
|
111 |
instrumentCls isNil ifTrue:[ |
8d2849dd3227
Added support for (user-defined) benchmark instruments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
224
diff
changeset
|
112 |
self error: 'No instrument class named ''', instrumentNm, ''''. |
8d2849dd3227
Added support for (user-defined) benchmark instruments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
224
diff
changeset
|
113 |
] ifFalse:[ |
8d2849dd3227
Added support for (user-defined) benchmark instruments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
224
diff
changeset
|
114 |
instruments add: instrumentCls new. |
8d2849dd3227
Added support for (user-defined) benchmark instruments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
224
diff
changeset
|
115 |
]. |
8d2849dd3227
Added support for (user-defined) benchmark instruments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
224
diff
changeset
|
116 |
]. |
8d2849dd3227
Added support for (user-defined) benchmark instruments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
224
diff
changeset
|
117 |
|
9
e0be46520a59
Split BenchmarkRunner in common and platform-specific code. Addec platform object
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
118 |
arg = '--text' ifTrue:[ |
e0be46520a59
Split BenchmarkRunner in common and platform-specific code. Addec platform object
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
119 |
report := BenchmarkReport text. |
e0be46520a59
Split BenchmarkRunner in common and platform-specific code. Addec platform object
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
120 |
]. |
29
00d2eaa41853
Initial version of JSON report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
17
diff
changeset
|
121 |
|
9
e0be46520a59
Split BenchmarkRunner in common and platform-specific code. Addec platform object
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
122 |
arg = '--json' ifTrue:[ |
e0be46520a59
Split BenchmarkRunner in common and platform-specific code. Addec platform object
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
123 |
report := BenchmarkReport json. |
e0be46520a59
Split BenchmarkRunner in common and platform-specific code. Addec platform object
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
124 |
]. |
29
00d2eaa41853
Initial version of JSON report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
17
diff
changeset
|
125 |
|
185
68ba8ec6c406
Changes --name to --tag, which better describes what it means.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
180
diff
changeset
|
126 |
arg = '--tag' ifTrue:[ |
124
e5582f62aab5
Fixed command line argument handling and error reporting.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
122
diff
changeset
|
127 |
i > argv size ifTrue:[ |
185
68ba8ec6c406
Changes --name to --tag, which better describes what it means.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
180
diff
changeset
|
128 |
self error:'--tag requires a string parameter.' |
124
e5582f62aab5
Fixed command line argument handling and error reporting.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
122
diff
changeset
|
129 |
]. |
180
df8e7dcbfd8d
Removed --machineid and added --name parameter to identify benchmark run.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
147
diff
changeset
|
130 |
name := argv at: i. |
122
9ad7296fc59a
Added machine ID configuration value.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
98
diff
changeset
|
131 |
i := i + 1. |
9ad7296fc59a
Added machine ID configuration value.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
98
diff
changeset
|
132 |
]. |
9ad7296fc59a
Added machine ID configuration value.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
98
diff
changeset
|
133 |
|
205
63a0130d7951
Added new command line options.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
204
diff
changeset
|
134 |
arg = '--setup' ifTrue:[ |
63a0130d7951
Added new command line options.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
204
diff
changeset
|
135 |
i > argv size ifTrue:[ |
63a0130d7951
Added new command line options.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
204
diff
changeset
|
136 |
self error:'--setup requires a string parameter.' |
63a0130d7951
Added new command line options.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
204
diff
changeset
|
137 |
]. |
63a0130d7951
Added new command line options.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
204
diff
changeset
|
138 |
setup := argv at: i. |
63a0130d7951
Added new command line options.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
204
diff
changeset
|
139 |
i := i + 1. |
63a0130d7951
Added new command line options.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
204
diff
changeset
|
140 |
]. |
63a0130d7951
Added new command line options.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
204
diff
changeset
|
141 |
arg = '--teardown' ifTrue:[ |
63a0130d7951
Added new command line options.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
204
diff
changeset
|
142 |
i > argv size ifTrue:[ |
63a0130d7951
Added new command line options.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
204
diff
changeset
|
143 |
self error:'--teardown requires a string parameter.' |
63a0130d7951
Added new command line options.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
204
diff
changeset
|
144 |
]. |
63a0130d7951
Added new command line options.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
204
diff
changeset
|
145 |
teardown := argv at: i. |
63a0130d7951
Added new command line options.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
204
diff
changeset
|
146 |
i := i + 1. |
63a0130d7951
Added new command line options.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
204
diff
changeset
|
147 |
]. |
63a0130d7951
Added new command line options.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
204
diff
changeset
|
148 |
|
63a0130d7951
Added new command line options.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
204
diff
changeset
|
149 |
(arg = '--setup-script') ifTrue:[ |
63a0130d7951
Added new command line options.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
204
diff
changeset
|
150 |
i > argv size ifTrue:[ |
63a0130d7951
Added new command line options.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
204
diff
changeset
|
151 |
self error: arg, ' requires a file parameter.' |
63a0130d7951
Added new command line options.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
204
diff
changeset
|
152 |
]. |
63a0130d7951
Added new command line options.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
204
diff
changeset
|
153 |
setupScript := (argv at: i) asFilename. |
63a0130d7951
Added new command line options.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
204
diff
changeset
|
154 |
setupScript exists ifFalse:[ |
63a0130d7951
Added new command line options.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
204
diff
changeset
|
155 |
self error:'no such file: ', (argv at: i). |
63a0130d7951
Added new command line options.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
204
diff
changeset
|
156 |
]. |
63a0130d7951
Added new command line options.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
204
diff
changeset
|
157 |
i := i + 1. |
63a0130d7951
Added new command line options.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
204
diff
changeset
|
158 |
]. |
63a0130d7951
Added new command line options.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
204
diff
changeset
|
159 |
(arg = '--teardown-script') ifTrue:[ |
63a0130d7951
Added new command line options.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
204
diff
changeset
|
160 |
i > argv size ifTrue:[ |
63a0130d7951
Added new command line options.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
204
diff
changeset
|
161 |
self error: arg, ' requires a file parameter.' |
63a0130d7951
Added new command line options.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
204
diff
changeset
|
162 |
]. |
63a0130d7951
Added new command line options.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
204
diff
changeset
|
163 |
teardownScript := (argv at: i) asFilename. |
63a0130d7951
Added new command line options.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
204
diff
changeset
|
164 |
teardownScript exists ifFalse:[ |
63a0130d7951
Added new command line options.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
204
diff
changeset
|
165 |
self error:'no such file: ', (argv at: i). |
63a0130d7951
Added new command line options.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
204
diff
changeset
|
166 |
]. |
63a0130d7951
Added new command line options.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
204
diff
changeset
|
167 |
i := i + 1. |
63a0130d7951
Added new command line options.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
204
diff
changeset
|
168 |
]. |
63a0130d7951
Added new command line options.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
204
diff
changeset
|
169 |
|
63a0130d7951
Added new command line options.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
204
diff
changeset
|
170 |
|
63a0130d7951
Added new command line options.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
204
diff
changeset
|
171 |
|
190
ab1b88f52b93
Added option --description to describe current configuration. --name renamed to --tags.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
185
diff
changeset
|
172 |
arg = '--description' ifTrue:[ |
ab1b88f52b93
Added option --description to describe current configuration. --name renamed to --tags.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
185
diff
changeset
|
173 |
i > argv size ifTrue:[ |
ab1b88f52b93
Added option --description to describe current configuration. --name renamed to --tags.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
185
diff
changeset
|
174 |
self error:'--description requires a string parameter.' |
ab1b88f52b93
Added option --description to describe current configuration. --name renamed to --tags.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
185
diff
changeset
|
175 |
]. |
ab1b88f52b93
Added option --description to describe current configuration. --name renamed to --tags.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
185
diff
changeset
|
176 |
desc := argv at: i. |
ab1b88f52b93
Added option --description to describe current configuration. --name renamed to --tags.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
185
diff
changeset
|
177 |
i := i + 1. |
ab1b88f52b93
Added option --description to describe current configuration. --name renamed to --tags.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
185
diff
changeset
|
178 |
]. |
ab1b88f52b93
Added option --description to describe current configuration. --name renamed to --tags.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
185
diff
changeset
|
179 |
|
9
e0be46520a59
Split BenchmarkRunner in common and platform-specific code. Addec platform object
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
180 |
arg second = $D ifTrue:[ |
e0be46520a59
Split BenchmarkRunner in common and platform-specific code. Addec platform object
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
181 |
| eqIdx | |
e0be46520a59
Split BenchmarkRunner in common and platform-specific code. Addec platform object
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
182 |
|
e0be46520a59
Split BenchmarkRunner in common and platform-specific code. Addec platform object
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
183 |
((arg size > 2) and:[(eqIdx := arg indexOf: $= startingAt: 3) ~~ 0]) ifTrue:[ |
e0be46520a59
Split BenchmarkRunner in common and platform-specific code. Addec platform object
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
184 |
params at: (arg copyFrom: 3 to: eqIdx - 1) put: (arg copyFrom: eqIdx + 1) |
e0be46520a59
Split BenchmarkRunner in common and platform-specific code. Addec platform object
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
185 |
] ifFalse:[ |
e0be46520a59
Split BenchmarkRunner in common and platform-specific code. Addec platform object
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
186 |
self error: 'No parameter value' |
e0be46520a59
Split BenchmarkRunner in common and platform-specific code. Addec platform object
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
187 |
] |
e0be46520a59
Split BenchmarkRunner in common and platform-specific code. Addec platform object
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
188 |
] |
e0be46520a59
Split BenchmarkRunner in common and platform-specific code. Addec platform object
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
189 |
] ifFalse:[ |
e0be46520a59
Split BenchmarkRunner in common and platform-specific code. Addec platform object
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
190 |
classes add: arg. |
e0be46520a59
Split BenchmarkRunner in common and platform-specific code. Addec platform object
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
191 |
] |
e0be46520a59
Split BenchmarkRunner in common and platform-specific code. Addec platform object
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
192 |
]. |
e0be46520a59
Split BenchmarkRunner in common and platform-specific code. Addec platform object
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
193 |
|
124
e5582f62aab5
Fixed command line argument handling and error reporting.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
122
diff
changeset
|
194 |
|
e5582f62aab5
Fixed command line argument handling and error reporting.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
122
diff
changeset
|
195 |
classes isEmpty ifTrue:[ |
e5582f62aab5
Fixed command line argument handling and error reporting.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
122
diff
changeset
|
196 |
self error:'No suite or benchmark specified.' |
e5582f62aab5
Fixed command line argument handling and error reporting.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
122
diff
changeset
|
197 |
]. |
e5582f62aab5
Fixed command line argument handling and error reporting.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
122
diff
changeset
|
198 |
|
9
e0be46520a59
Split BenchmarkRunner in common and platform-specific code. Addec platform object
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
199 |
"Build suite" |
e0be46520a59
Split BenchmarkRunner in common and platform-specific code. Addec platform object
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
200 |
suite := BenchmarkSuite new. |
e0be46520a59
Split BenchmarkRunner in common and platform-specific code. Addec platform object
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
201 |
classes do:[:each| |
e0be46520a59
Split BenchmarkRunner in common and platform-specific code. Addec platform object
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
202 |
| classNm class selector | |
e0be46520a59
Split BenchmarkRunner in common and platform-specific code. Addec platform object
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
203 |
i := each indexOf: $#. |
e0be46520a59
Split BenchmarkRunner in common and platform-specific code. Addec platform object
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
204 |
i ~~ 0 ifTrue:[ |
e0be46520a59
Split BenchmarkRunner in common and platform-specific code. Addec platform object
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
205 |
classNm := each copyTo: i - 1. |
e0be46520a59
Split BenchmarkRunner in common and platform-specific code. Addec platform object
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
206 |
selector := (each copyFrom: i + 1) asSymbol. |
e0be46520a59
Split BenchmarkRunner in common and platform-specific code. Addec platform object
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
207 |
] ifFalse:[ |
e0be46520a59
Split BenchmarkRunner in common and platform-specific code. Addec platform object
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
208 |
classNm := each. |
e0be46520a59
Split BenchmarkRunner in common and platform-specific code. Addec platform object
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
209 |
]. |
e0be46520a59
Split BenchmarkRunner in common and platform-specific code. Addec platform object
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
210 |
class := Smalltalk at: classNm asSymbol. |
e0be46520a59
Split BenchmarkRunner in common and platform-specific code. Addec platform object
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
211 |
class isNil ifTrue:[ |
e0be46520a59
Split BenchmarkRunner in common and platform-specific code. Addec platform object
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
212 |
self error: 'Class ', classNm , ' does not exists'. |
e0be46520a59
Split BenchmarkRunner in common and platform-specific code. Addec platform object
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
213 |
]. |
76
97cf7bf849e6
Fix for Smalltalk/X: load the class if it is autoloaded.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
29
diff
changeset
|
214 |
Smalltalk isSmalltalkX ifTrue:[ |
97cf7bf849e6
Fix for Smalltalk/X: load the class if it is autoloaded.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
29
diff
changeset
|
215 |
class isLoaded ifFalse:[class autoload]. |
97cf7bf849e6
Fix for Smalltalk/X: load the class if it is autoloaded.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
29
diff
changeset
|
216 |
]. |
9
e0be46520a59
Split BenchmarkRunner in common and platform-specific code. Addec platform object
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
217 |
selector isNil ifTrue:[ |
e0be46520a59
Split BenchmarkRunner in common and platform-specific code. Addec platform object
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
218 |
suite addBenchmark: (BenchmarkSuite class: class) |
e0be46520a59
Split BenchmarkRunner in common and platform-specific code. Addec platform object
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
219 |
] ifFalse:[ |
e0be46520a59
Split BenchmarkRunner in common and platform-specific code. Addec platform object
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
220 |
suite addBenchmark: (BenchmarkSuite class:class selector:selector) |
e0be46520a59
Split BenchmarkRunner in common and platform-specific code. Addec platform object
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
221 |
] |
e0be46520a59
Split BenchmarkRunner in common and platform-specific code. Addec platform object
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
222 |
]. |
e0be46520a59
Split BenchmarkRunner in common and platform-specific code. Addec platform object
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
223 |
|
205
63a0130d7951
Added new command line options.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
204
diff
changeset
|
224 |
"Run setup, if any" |
63a0130d7951
Added new command line options.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
204
diff
changeset
|
225 |
setup notNil ifTrue:[ Compiler evaluate: setup ]. |
63a0130d7951
Added new command line options.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
204
diff
changeset
|
226 |
setupScript notNil ifTrue:[ Compiler evaluate: setupScript asFilename contents asString ]. |
63a0130d7951
Added new command line options.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
204
diff
changeset
|
227 |
|
9
e0be46520a59
Split BenchmarkRunner in common and platform-specific code. Addec platform object
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
228 |
"Run suite" |
139
eaf40f3173ad
Introduced BenchmarkExecutor - a class responsible for execution of a single benchmark.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
134
diff
changeset
|
229 |
result := BenchmarkResult new. |
262
8d2849dd3227
Added support for (user-defined) benchmark instruments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
224
diff
changeset
|
230 |
executor := BenchmarkRunnerExecutor new. |
8d2849dd3227
Added support for (user-defined) benchmark instruments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
224
diff
changeset
|
231 |
executor instruments: instruments. |
9
e0be46520a59
Split BenchmarkRunner in common and platform-specific code. Addec platform object
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
232 |
result runs: runs. |
262
8d2849dd3227
Added support for (user-defined) benchmark instruments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
224
diff
changeset
|
233 |
suite run: result with: params executor: executor. |
9
e0be46520a59
Split BenchmarkRunner in common and platform-specific code. Addec platform object
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
234 |
|
e0be46520a59
Split BenchmarkRunner in common and platform-specific code. Addec platform object
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
235 |
"Write report" |
e0be46520a59
Split BenchmarkRunner in common and platform-specific code. Addec platform object
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
236 |
file notNil ifTrue:[ |
29
00d2eaa41853
Initial version of JSON report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
17
diff
changeset
|
237 |
file asFilename writingFileDo:[:s| |
125
1449209198c1
Fixes for machine id handling an JSON output.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
124
diff
changeset
|
238 |
report |
180
df8e7dcbfd8d
Removed --machineid and added --name parameter to identify benchmark run.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
147
diff
changeset
|
239 |
name: name; |
190
ab1b88f52b93
Added option --description to describe current configuration. --name renamed to --tags.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
185
diff
changeset
|
240 |
description: desc; |
125
1449209198c1
Fixes for machine id handling an JSON output.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
124
diff
changeset
|
241 |
write: result on: s |
29
00d2eaa41853
Initial version of JSON report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
17
diff
changeset
|
242 |
] |
9
e0be46520a59
Split BenchmarkRunner in common and platform-specific code. Addec platform object
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
243 |
] ifFalse:[ |
125
1449209198c1
Fixes for machine id handling an JSON output.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
124
diff
changeset
|
244 |
report |
180
df8e7dcbfd8d
Removed --machineid and added --name parameter to identify benchmark run.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
147
diff
changeset
|
245 |
name: name; |
190
ab1b88f52b93
Added option --description to describe current configuration. --name renamed to --tags.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
185
diff
changeset
|
246 |
description: desc; |
125
1449209198c1
Fixes for machine id handling an JSON output.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
124
diff
changeset
|
247 |
write: result on: BenchmarkPlatform current stdout |
9
e0be46520a59
Split BenchmarkRunner in common and platform-specific code. Addec platform object
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
248 |
]. |
e0be46520a59
Split BenchmarkRunner in common and platform-specific code. Addec platform object
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
249 |
|
205
63a0130d7951
Added new command line options.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
204
diff
changeset
|
250 |
"Run teardown" |
63a0130d7951
Added new command line options.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
204
diff
changeset
|
251 |
teardown notNil ifTrue:[ Compiler evaluate: teardown ]. |
63a0130d7951
Added new command line options.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
204
diff
changeset
|
252 |
teardownScript notNil ifTrue:[ Compiler evaluate: teardownScript asFilename contents asString ]. |
63a0130d7951
Added new command line options.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
204
diff
changeset
|
253 |
|
262
8d2849dd3227
Added support for (user-defined) benchmark instruments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
224
diff
changeset
|
254 |
"Modified: / 28-11-2014 / 00:21:40 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
9
e0be46520a59
Split BenchmarkRunner in common and platform-specific code. Addec platform object
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
255 |
! |
e0be46520a59
Split BenchmarkRunner in common and platform-specific code. Addec platform object
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
256 |
|
e0be46520a59
Split BenchmarkRunner in common and platform-specific code. Addec platform object
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
257 |
options |
e0be46520a59
Split BenchmarkRunner in common and platform-specific code. Addec platform object
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
258 |
"Prints common command line options to stderr" |
e0be46520a59
Split BenchmarkRunner in common and platform-specific code. Addec platform object
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
259 |
|
e0be46520a59
Split BenchmarkRunner in common and platform-specific code. Addec platform object
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
260 |
BenchmarkPlatform current stderr nextPutAll: |
e0be46520a59
Split BenchmarkRunner in common and platform-specific code. Addec platform object
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
261 |
' |
e0be46520a59
Split BenchmarkRunner in common and platform-specific code. Addec platform object
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
262 |
Common options: |
e0be46520a59
Split BenchmarkRunner in common and platform-specific code. Addec platform object
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
263 |
-o FILE ................ write output to FILE instead of to standard output (default: stdout) |
e0be46520a59
Split BenchmarkRunner in common and platform-specific code. Addec platform object
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
264 |
-n RUNS ................ how many times to run each bechmark (default: 5) |
262
8d2849dd3227
Added support for (user-defined) benchmark instruments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
224
diff
changeset
|
265 |
-r REPORTCLASS ......... use REPORTCLASS to generate report (default: BenchmarkReportText) |
8d2849dd3227
Added support for (user-defined) benchmark instruments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
224
diff
changeset
|
266 |
-i | --instrument CLS .. add instance if CLS to set instruments (may be specified multiple times) |
204
97b7cdaeb0e8
Better script file parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
190
diff
changeset
|
267 |
--arguments FILE ....... read additional arguments from FILE |
205
63a0130d7951
Added new command line options.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
204
diff
changeset
|
268 |
--setup EXPR ........... evaluate EXPR before actually running any benchmark |
63a0130d7951
Added new command line options.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
204
diff
changeset
|
269 |
--setup-script FILE .... evaluate code in FILE before actually running any benchmark |
63a0130d7951
Added new command line options.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
204
diff
changeset
|
270 |
--teardown EXPR ........ evaluate EXPR after all benchmarks are run |
63a0130d7951
Added new command line options.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
204
diff
changeset
|
271 |
--teardown-script FILE . evaluate code in FILE after all benchmarks are run |
9
e0be46520a59
Split BenchmarkRunner in common and platform-specific code. Addec platform object
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
272 |
--text ................. generate text report (equivalent to -r BenchmarkReportText) |
e0be46520a59
Split BenchmarkRunner in common and platform-specific code. Addec platform object
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
273 |
--json ................. generate JSON report (equivalent to -r BenchmarkReportJSON) |
190
ab1b88f52b93
Added option --description to describe current configuration. --name renamed to --tags.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
185
diff
changeset
|
274 |
--tag TAG .............. tag for the current benchmark set (default: "default") |
ab1b88f52b93
Added option --description to describe current configuration. --name renamed to --tags.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
185
diff
changeset
|
275 |
--description .......... short string describing the current configuration (default: nothing) |
9
e0be46520a59
Split BenchmarkRunner in common and platform-specific code. Addec platform object
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
276 |
-DNAME=VALUE ........... defines a parameter NAME with value of VALUE |
e0be46520a59
Split BenchmarkRunner in common and platform-specific code. Addec platform object
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
277 |
|
e0be46520a59
Split BenchmarkRunner in common and platform-specific code. Addec platform object
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
278 |
Suitespec format: |
e0be46520a59
Split BenchmarkRunner in common and platform-specific code. Addec platform object
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
279 |
<suitespec> is CLASSNAME[#SELECTOR] |
e0be46520a59
Split BenchmarkRunner in common and platform-specific code. Addec platform object
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
280 |
|
e0be46520a59
Split BenchmarkRunner in common and platform-specific code. Addec platform object
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
281 |
More documetation: |
e0be46520a59
Split BenchmarkRunner in common and platform-specific code. Addec platform object
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
282 |
see https://bitbucket.org/janvrany/jv-calipel/wiki/Home |
e0be46520a59
Split BenchmarkRunner in common and platform-specific code. Addec platform object
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
283 |
|
e0be46520a59
Split BenchmarkRunner in common and platform-specific code. Addec platform object
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
284 |
' |
e0be46520a59
Split BenchmarkRunner in common and platform-specific code. Addec platform object
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
285 |
|
e0be46520a59
Split BenchmarkRunner in common and platform-specific code. Addec platform object
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
286 |
"Created: / 06-06-2013 / 11:01:42 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
262
8d2849dd3227
Added support for (user-defined) benchmark instruments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
224
diff
changeset
|
287 |
"Modified: / 28-11-2014 / 00:16:52 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
204
97b7cdaeb0e8
Better script file parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
190
diff
changeset
|
288 |
! ! |
97b7cdaeb0e8
Better script file parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
190
diff
changeset
|
289 |
|
97b7cdaeb0e8
Better script file parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
190
diff
changeset
|
290 |
!BenchmarkRunner methodsFor:'private-parsing'! |
97b7cdaeb0e8
Better script file parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
190
diff
changeset
|
291 |
|
97b7cdaeb0e8
Better script file parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
190
diff
changeset
|
292 |
parseArgument:stream |
97b7cdaeb0e8
Better script file parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
190
diff
changeset
|
293 |
| c | |
97b7cdaeb0e8
Better script file parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
190
diff
changeset
|
294 |
|
97b7cdaeb0e8
Better script file parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
190
diff
changeset
|
295 |
[ |
97b7cdaeb0e8
Better script file parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
190
diff
changeset
|
296 |
c := stream peek. |
97b7cdaeb0e8
Better script file parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
190
diff
changeset
|
297 |
c == $# |
97b7cdaeb0e8
Better script file parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
190
diff
changeset
|
298 |
] whileTrue:[ |
97b7cdaeb0e8
Better script file parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
190
diff
changeset
|
299 |
self parseComment:stream. |
97b7cdaeb0e8
Better script file parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
190
diff
changeset
|
300 |
stream skipSeparators. |
97b7cdaeb0e8
Better script file parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
190
diff
changeset
|
301 |
stream atEnd ifTrue:[ ^ nil ]. |
97b7cdaeb0e8
Better script file parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
190
diff
changeset
|
302 |
]. |
97b7cdaeb0e8
Better script file parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
190
diff
changeset
|
303 |
c == $\ ifTrue:[ |
97b7cdaeb0e8
Better script file parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
190
diff
changeset
|
304 |
stream next. |
97b7cdaeb0e8
Better script file parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
190
diff
changeset
|
305 |
[ |
97b7cdaeb0e8
Better script file parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
190
diff
changeset
|
306 |
stream peek == Character space or:[ stream peek == Character tab ] |
97b7cdaeb0e8
Better script file parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
190
diff
changeset
|
307 |
] whileTrue:[ stream next. ]. |
97b7cdaeb0e8
Better script file parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
190
diff
changeset
|
308 |
stream peek == Character cr ifTrue:[ |
97b7cdaeb0e8
Better script file parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
190
diff
changeset
|
309 |
stream skipSeparators. |
97b7cdaeb0e8
Better script file parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
190
diff
changeset
|
310 |
^ self parseArgument:stream. |
97b7cdaeb0e8
Better script file parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
190
diff
changeset
|
311 |
] ifFalse:[ ^ '\' ]. |
97b7cdaeb0e8
Better script file parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
190
diff
changeset
|
312 |
]. |
97b7cdaeb0e8
Better script file parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
190
diff
changeset
|
313 |
c == $" ifTrue:[ |
97b7cdaeb0e8
Better script file parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
190
diff
changeset
|
314 |
^ self parseQuoted1:stream |
97b7cdaeb0e8
Better script file parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
190
diff
changeset
|
315 |
]. |
97b7cdaeb0e8
Better script file parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
190
diff
changeset
|
316 |
c == $' ifTrue:[ |
97b7cdaeb0e8
Better script file parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
190
diff
changeset
|
317 |
^ self parseQuoted2:stream |
97b7cdaeb0e8
Better script file parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
190
diff
changeset
|
318 |
]. |
97b7cdaeb0e8
Better script file parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
190
diff
changeset
|
319 |
^ self parseToken:stream |
97b7cdaeb0e8
Better script file parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
190
diff
changeset
|
320 |
|
97b7cdaeb0e8
Better script file parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
190
diff
changeset
|
321 |
"Created: / 08-03-2014 / 11:01:48 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
97b7cdaeb0e8
Better script file parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
190
diff
changeset
|
322 |
"Modified: / 08-03-2014 / 15:59:41 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
97b7cdaeb0e8
Better script file parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
190
diff
changeset
|
323 |
! |
97b7cdaeb0e8
Better script file parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
190
diff
changeset
|
324 |
|
97b7cdaeb0e8
Better script file parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
190
diff
changeset
|
325 |
parseArguments: stream into: argv |
97b7cdaeb0e8
Better script file parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
190
diff
changeset
|
326 |
[ stream skipSeparators. stream atEnd ] whileFalse:[ |
97b7cdaeb0e8
Better script file parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
190
diff
changeset
|
327 |
| arg | |
97b7cdaeb0e8
Better script file parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
190
diff
changeset
|
328 |
|
97b7cdaeb0e8
Better script file parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
190
diff
changeset
|
329 |
arg := (self parseArgument: stream). |
97b7cdaeb0e8
Better script file parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
190
diff
changeset
|
330 |
arg notNil ifTrue:[ argv add: arg ] |
97b7cdaeb0e8
Better script file parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
190
diff
changeset
|
331 |
]. |
97b7cdaeb0e8
Better script file parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
190
diff
changeset
|
332 |
|
97b7cdaeb0e8
Better script file parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
190
diff
changeset
|
333 |
"Created: / 08-03-2014 / 10:59:26 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
97b7cdaeb0e8
Better script file parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
190
diff
changeset
|
334 |
"Modified: / 08-03-2014 / 15:59:20 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
97b7cdaeb0e8
Better script file parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
190
diff
changeset
|
335 |
! |
97b7cdaeb0e8
Better script file parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
190
diff
changeset
|
336 |
|
97b7cdaeb0e8
Better script file parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
190
diff
changeset
|
337 |
parseComment: stream |
97b7cdaeb0e8
Better script file parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
190
diff
changeset
|
338 |
stream nextLine. |
97b7cdaeb0e8
Better script file parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
190
diff
changeset
|
339 |
|
97b7cdaeb0e8
Better script file parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
190
diff
changeset
|
340 |
"Created: / 08-03-2014 / 11:18:20 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
97b7cdaeb0e8
Better script file parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
190
diff
changeset
|
341 |
! |
97b7cdaeb0e8
Better script file parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
190
diff
changeset
|
342 |
|
97b7cdaeb0e8
Better script file parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
190
diff
changeset
|
343 |
parseQuoted1:stream |
97b7cdaeb0e8
Better script file parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
190
diff
changeset
|
344 |
"Parse string quoted by $" |
97b7cdaeb0e8
Better script file parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
190
diff
changeset
|
345 |
stream next. "/ eat $" |
97b7cdaeb0e8
Better script file parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
190
diff
changeset
|
346 |
^ String streamContents:[:s| |
97b7cdaeb0e8
Better script file parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
190
diff
changeset
|
347 |
[ stream peek == $"] whileFalse:[ |
97b7cdaeb0e8
Better script file parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
190
diff
changeset
|
348 |
stream peek == $\ ifTrue:[ |
97b7cdaeb0e8
Better script file parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
190
diff
changeset
|
349 |
stream next. |
97b7cdaeb0e8
Better script file parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
190
diff
changeset
|
350 |
]. |
97b7cdaeb0e8
Better script file parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
190
diff
changeset
|
351 |
stream atEnd ifTrue:[ |
97b7cdaeb0e8
Better script file parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
190
diff
changeset
|
352 |
self error:'Unterminated string'. |
97b7cdaeb0e8
Better script file parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
190
diff
changeset
|
353 |
]. |
97b7cdaeb0e8
Better script file parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
190
diff
changeset
|
354 |
s nextPut: stream next. |
97b7cdaeb0e8
Better script file parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
190
diff
changeset
|
355 |
]. |
97b7cdaeb0e8
Better script file parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
190
diff
changeset
|
356 |
stream next "/ eat $" |
97b7cdaeb0e8
Better script file parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
190
diff
changeset
|
357 |
]. |
97b7cdaeb0e8
Better script file parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
190
diff
changeset
|
358 |
|
97b7cdaeb0e8
Better script file parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
190
diff
changeset
|
359 |
"Created: / 08-03-2014 / 11:18:21 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
97b7cdaeb0e8
Better script file parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
190
diff
changeset
|
360 |
"Modified: / 08-03-2014 / 15:44:29 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
97b7cdaeb0e8
Better script file parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
190
diff
changeset
|
361 |
! |
97b7cdaeb0e8
Better script file parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
190
diff
changeset
|
362 |
|
97b7cdaeb0e8
Better script file parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
190
diff
changeset
|
363 |
parseQuoted2:stream |
97b7cdaeb0e8
Better script file parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
190
diff
changeset
|
364 |
"Parse string quoted by $'" |
224
703461d83b2f
Fixes to make it running on Pharo 3.0
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
223
diff
changeset
|
365 |
stream next. "/ eat $'" |
204
97b7cdaeb0e8
Better script file parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
190
diff
changeset
|
366 |
^ String streamContents:[:s| |
97b7cdaeb0e8
Better script file parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
190
diff
changeset
|
367 |
[ stream peek == $'] whileFalse:[ |
97b7cdaeb0e8
Better script file parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
190
diff
changeset
|
368 |
stream atEnd ifTrue:[ |
97b7cdaeb0e8
Better script file parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
190
diff
changeset
|
369 |
self error:'Unterminated string'. |
97b7cdaeb0e8
Better script file parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
190
diff
changeset
|
370 |
]. |
97b7cdaeb0e8
Better script file parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
190
diff
changeset
|
371 |
s nextPut: stream next. |
97b7cdaeb0e8
Better script file parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
190
diff
changeset
|
372 |
]. |
224
703461d83b2f
Fixes to make it running on Pharo 3.0
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
223
diff
changeset
|
373 |
stream next. "/ eat $'" |
204
97b7cdaeb0e8
Better script file parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
190
diff
changeset
|
374 |
]. |
97b7cdaeb0e8
Better script file parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
190
diff
changeset
|
375 |
|
97b7cdaeb0e8
Better script file parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
190
diff
changeset
|
376 |
"Created: / 08-03-2014 / 11:18:22 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
97b7cdaeb0e8
Better script file parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
190
diff
changeset
|
377 |
"Modified: / 08-03-2014 / 15:44:41 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
97b7cdaeb0e8
Better script file parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
190
diff
changeset
|
378 |
! |
97b7cdaeb0e8
Better script file parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
190
diff
changeset
|
379 |
|
97b7cdaeb0e8
Better script file parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
190
diff
changeset
|
380 |
parseToken: stream |
97b7cdaeb0e8
Better script file parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
190
diff
changeset
|
381 |
^ String streamContents:[:s| |
97b7cdaeb0e8
Better script file parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
190
diff
changeset
|
382 |
[ stream atEnd or:[stream peek isSeparator] ] whileFalse:[ |
97b7cdaeb0e8
Better script file parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
190
diff
changeset
|
383 |
s nextPut: stream next. |
97b7cdaeb0e8
Better script file parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
190
diff
changeset
|
384 |
]. |
97b7cdaeb0e8
Better script file parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
190
diff
changeset
|
385 |
]. |
97b7cdaeb0e8
Better script file parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
190
diff
changeset
|
386 |
|
97b7cdaeb0e8
Better script file parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
190
diff
changeset
|
387 |
"Created: / 08-03-2014 / 11:18:23 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
97b7cdaeb0e8
Better script file parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
190
diff
changeset
|
388 |
"Modified: / 08-03-2014 / 15:36:32 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
9
e0be46520a59
Split BenchmarkRunner in common and platform-specific code. Addec platform object
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
389 |
! ! |
e0be46520a59
Split BenchmarkRunner in common and platform-specific code. Addec platform object
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
390 |
|
e0be46520a59
Split BenchmarkRunner in common and platform-specific code. Addec platform object
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
391 |
!BenchmarkRunner class methodsFor:'documentation'! |
e0be46520a59
Split BenchmarkRunner in common and platform-specific code. Addec platform object
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
392 |
|
e0be46520a59
Split BenchmarkRunner in common and platform-specific code. Addec platform object
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
393 |
version_HG |
e0be46520a59
Split BenchmarkRunner in common and platform-specific code. Addec platform object
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
394 |
|
e0be46520a59
Split BenchmarkRunner in common and platform-specific code. Addec platform object
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
395 |
^ '$Changeset: <not expanded> $' |
e0be46520a59
Split BenchmarkRunner in common and platform-specific code. Addec platform object
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
396 |
! ! |
e0be46520a59
Split BenchmarkRunner in common and platform-specific code. Addec platform object
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
397 |