resin 0.3.1 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/amber/bin/amberc +10 -350
- data/amber/js/Benchfib.deploy.js +80 -89
- data/amber/js/Benchfib.js +80 -89
- data/amber/js/Canvas.deploy.js +558 -545
- data/amber/js/Canvas.js +563 -545
- data/amber/js/Compiler-AST.deploy.js +431 -243
- data/amber/js/Compiler-AST.js +487 -244
- data/amber/js/Compiler-Core.deploy.js +201 -1045
- data/amber/js/Compiler-Core.js +208 -1207
- data/amber/js/Compiler-Exceptions.deploy.js +37 -18
- data/amber/js/Compiler-Exceptions.js +42 -18
- data/amber/js/Compiler-IR.deploy.js +1071 -774
- data/amber/js/Compiler-IR.js +1194 -848
- data/amber/js/Compiler-Inlining.deploy.js +395 -373
- data/amber/js/Compiler-Inlining.js +395 -373
- data/amber/js/Compiler-Interpreter.deploy.js +1202 -0
- data/amber/js/Compiler-Interpreter.js +1631 -0
- data/amber/js/Compiler-Semantic.deploy.js +695 -600
- data/amber/js/Compiler-Semantic.js +721 -611
- data/amber/js/Compiler-Tests.deploy.js +699 -376
- data/amber/js/Compiler-Tests.js +834 -381
- data/amber/js/Compiler.deploy.js +8563 -1805
- data/amber/js/Compiler.js +11476 -2633
- data/amber/js/Examples.deploy.js +29 -29
- data/amber/js/Examples.js +29 -29
- data/amber/js/IDE.deploy.js +3292 -2649
- data/amber/js/IDE.js +3318 -2710
- data/amber/js/Importer-Exporter.deploy.js +393 -349
- data/amber/js/Importer-Exporter.js +398 -354
- data/amber/js/Kernel-Announcements.deploy.js +53 -44
- data/amber/js/Kernel-Announcements.js +55 -44
- data/amber/js/Kernel-Classes.deploy.js +566 -368
- data/amber/js/Kernel-Classes.js +660 -402
- data/amber/js/Kernel-Collections.deploy.js +1149 -1098
- data/amber/js/Kernel-Collections.js +1183 -1116
- data/amber/js/Kernel-Exceptions.deploy.js +173 -75
- data/amber/js/Kernel-Exceptions.js +215 -77
- data/amber/js/Kernel-Methods.deploy.js +530 -313
- data/amber/js/Kernel-Methods.js +632 -338
- data/amber/js/Kernel-Objects.deploy.js +1734 -1577
- data/amber/js/Kernel-Objects.js +1867 -1654
- data/amber/js/Kernel-Tests.deploy.js +1416 -973
- data/amber/js/Kernel-Tests.js +1495 -981
- data/amber/js/Kernel-Transcript.deploy.js +23 -24
- data/amber/js/Kernel-Transcript.js +25 -26
- data/amber/js/SUnit-Tests.deploy.js +402 -0
- data/amber/js/SUnit-Tests.js +518 -0
- data/amber/js/SUnit.deploy.js +535 -237
- data/amber/js/SUnit.js +634 -246
- data/amber/js/amber.js +90 -53
- data/amber/js/boot.js +441 -255
- data/amber/js/init.js +1 -3
- data/amber/js/lib/CodeMirror/codemirror.css +3 -0
- data/amber/js/lib/CodeMirror/codemirror.js +104 -55
- data/amber/js/lib/peg-0.7.0.min.js +9 -0
- data/amber/js/parser.js +1504 -802
- data/amber/js/parser.pegjs +170 -165
- data/amber/st/Canvas.st +6 -0
- data/amber/st/Compiler-AST.st +54 -3
- data/amber/st/Compiler-Core.st +6 -551
- data/amber/st/Compiler-Exceptions.st +4 -0
- data/amber/st/Compiler-IR.st +205 -87
- data/amber/st/Compiler-Interpreter.st +597 -0
- data/amber/st/Compiler-Semantic.st +46 -21
- data/amber/st/Compiler-Tests.st +254 -7
- data/amber/st/Compiler.st +3172 -1541
- data/amber/st/IDE.st +57 -93
- data/amber/st/Importer-Exporter.st +4 -7
- data/amber/st/Kernel-Announcements.st +8 -0
- data/amber/st/Kernel-Classes.st +149 -40
- data/amber/st/Kernel-Collections.st +43 -32
- data/amber/st/Kernel-Exceptions.st +70 -1
- data/amber/st/Kernel-Methods.st +165 -27
- data/amber/st/Kernel-Objects.st +215 -140
- data/amber/st/Kernel-Tests.st +195 -10
- data/amber/st/Kernel-Transcript.st +1 -3
- data/amber/st/SUnit-Tests.st +186 -0
- data/amber/st/SUnit.st +186 -14
- data/bin/resin +6 -0
- data/lib/resin/cli.rb +19 -0
- metadata +41 -25
- data/amber/js/lib/peg-0.6.2.min.js +0 -2
- data/bin/resin-compile +0 -6
- data/bin/runresin +0 -12
data/amber/js/SUnit.deploy.js
CHANGED
@@ -6,8 +6,10 @@ smalltalk.method({
|
|
6
6
|
selector: "result",
|
7
7
|
fn: function (){
|
8
8
|
var self=this;
|
9
|
-
return
|
10
|
-
|
9
|
+
return smalltalk.withContext(function($ctx1) {
|
10
|
+
$1=self["@result"];
|
11
|
+
return $1;
|
12
|
+
}, function($ctx1) {$ctx1.fill(self,"result",{}, smalltalk.ResultAnnouncement)})}
|
11
13
|
}),
|
12
14
|
smalltalk.ResultAnnouncement);
|
13
15
|
|
@@ -17,23 +19,22 @@ smalltalk.method({
|
|
17
19
|
selector: "result:",
|
18
20
|
fn: function (aTestResult){
|
19
21
|
var self=this;
|
20
|
-
|
21
|
-
return self}
|
22
|
+
return smalltalk.withContext(function($ctx1) {
|
23
|
+
return self}, function($ctx1) {$ctx1.fill(self,"result:",{aTestResult:aTestResult}, smalltalk.ResultAnnouncement)})}
|
22
24
|
}),
|
23
25
|
smalltalk.ResultAnnouncement);
|
24
26
|
|
25
27
|
|
26
28
|
|
27
|
-
smalltalk.addClass('TestCase', smalltalk.Object, ['testSelector'], 'SUnit');
|
29
|
+
smalltalk.addClass('TestCase', smalltalk.Object, ['testSelector', 'asyncTimeout', 'context'], 'SUnit');
|
28
30
|
smalltalk.addMethod(
|
29
31
|
"_assert_",
|
30
32
|
smalltalk.method({
|
31
33
|
selector: "assert:",
|
32
|
-
fn: function (aBoolean)
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
}
|
34
|
+
fn: function (aBoolean){
|
35
|
+
var self=this;
|
36
|
+
return smalltalk.withContext(function($ctx1) {
|
37
|
+
return self}, function($ctx1) {$ctx1.fill(self,"assert:",{aBoolean:aBoolean}, smalltalk.TestCase)})}
|
37
38
|
}),
|
38
39
|
smalltalk.TestCase);
|
39
40
|
|
@@ -41,13 +42,14 @@ smalltalk.addMethod(
|
|
41
42
|
"_assert_description_",
|
42
43
|
smalltalk.method({
|
43
44
|
selector: "assert:description:",
|
44
|
-
fn: function (aBoolean,
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
}
|
45
|
+
fn: function (aBoolean,aString){
|
46
|
+
var self=this;
|
47
|
+
return smalltalk.withContext(function($ctx1) {
|
48
|
+
$1=aBoolean;
|
49
|
+
if(! smalltalk.assert($1)){
|
50
|
+
_st(self)._signalFailure_(aString);
|
51
|
+
};
|
52
|
+
return self}, function($ctx1) {$ctx1.fill(self,"assert:description:",{aBoolean:aBoolean,aString:aString}, smalltalk.TestCase)})}
|
51
53
|
}),
|
52
54
|
smalltalk.TestCase);
|
53
55
|
|
@@ -55,12 +57,44 @@ smalltalk.addMethod(
|
|
55
57
|
"_assert_equals_",
|
56
58
|
smalltalk.method({
|
57
59
|
selector: "assert:equals:",
|
58
|
-
fn: function (expected,
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
}
|
60
|
+
fn: function (expected,actual){
|
61
|
+
var self=this;
|
62
|
+
return smalltalk.withContext(function($ctx1) {
|
63
|
+
$1=_st(self)._assert_description_(_st(expected).__eq(actual),_st(_st(_st("Expected: ").__comma(_st(expected)._asString())).__comma(" but was: ")).__comma(_st(actual)._asString()));
|
64
|
+
return $1;
|
65
|
+
}, function($ctx1) {$ctx1.fill(self,"assert:equals:",{expected:expected,actual:actual}, smalltalk.TestCase)})}
|
66
|
+
}),
|
67
|
+
smalltalk.TestCase);
|
68
|
+
|
69
|
+
smalltalk.addMethod(
|
70
|
+
"_async_",
|
71
|
+
smalltalk.method({
|
72
|
+
selector: "async:",
|
73
|
+
fn: function (aBlock){
|
74
|
+
var self=this;
|
75
|
+
var c;
|
76
|
+
return smalltalk.withContext(function($ctx1) {
|
77
|
+
_st(self)._errorIfNotAsync_("#async");
|
78
|
+
c=self["@context"];
|
79
|
+
$1=(function(){
|
80
|
+
return smalltalk.withContext(function($ctx2) {
|
81
|
+
if(smalltalk.assert($2)){
|
82
|
+
return _st(c)._execute_(aBlock);
|
83
|
+
};
|
84
|
+
}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})});
|
85
|
+
return $1;
|
86
|
+
}, function($ctx1) {$ctx1.fill(self,"async:",{aBlock:aBlock,c:c}, smalltalk.TestCase)})}
|
87
|
+
}),
|
88
|
+
smalltalk.TestCase);
|
89
|
+
|
90
|
+
smalltalk.addMethod(
|
91
|
+
"_context_",
|
92
|
+
smalltalk.method({
|
93
|
+
selector: "context:",
|
94
|
+
fn: function (aRunningTestContext){
|
95
|
+
var self=this;
|
96
|
+
return smalltalk.withContext(function($ctx1) {
|
97
|
+
return self}, function($ctx1) {$ctx1.fill(self,"context:",{aRunningTestContext:aRunningTestContext}, smalltalk.TestCase)})}
|
64
98
|
}),
|
65
99
|
smalltalk.TestCase);
|
66
100
|
|
@@ -68,11 +102,50 @@ smalltalk.addMethod(
|
|
68
102
|
"_deny_",
|
69
103
|
smalltalk.method({
|
70
104
|
selector: "deny:",
|
71
|
-
fn: function (aBoolean)
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
}
|
105
|
+
fn: function (aBoolean){
|
106
|
+
var self=this;
|
107
|
+
return smalltalk.withContext(function($ctx1) {
|
108
|
+
return self}, function($ctx1) {$ctx1.fill(self,"deny:",{aBoolean:aBoolean}, smalltalk.TestCase)})}
|
109
|
+
}),
|
110
|
+
smalltalk.TestCase);
|
111
|
+
|
112
|
+
smalltalk.addMethod(
|
113
|
+
"_errorIfNotAsync_",
|
114
|
+
smalltalk.method({
|
115
|
+
selector: "errorIfNotAsync:",
|
116
|
+
fn: function (aString){
|
117
|
+
var self=this;
|
118
|
+
return smalltalk.withContext(function($ctx1) {
|
119
|
+
$1=_st(self)._isAsync();
|
120
|
+
if(! smalltalk.assert($1)){
|
121
|
+
_st(self)._error_(_st(aString).__comma(" used without prior #timeout:"));
|
122
|
+
};
|
123
|
+
return self}, function($ctx1) {$ctx1.fill(self,"errorIfNotAsync:",{aString:aString}, smalltalk.TestCase)})}
|
124
|
+
}),
|
125
|
+
smalltalk.TestCase);
|
126
|
+
|
127
|
+
smalltalk.addMethod(
|
128
|
+
"_finished",
|
129
|
+
smalltalk.method({
|
130
|
+
selector: "finished",
|
131
|
+
fn: function (){
|
132
|
+
var self=this;
|
133
|
+
return smalltalk.withContext(function($ctx1) {
|
134
|
+
self["@asyncTimeout"]=nil;
|
135
|
+
return self}, function($ctx1) {$ctx1.fill(self,"finished",{}, smalltalk.TestCase)})}
|
136
|
+
}),
|
137
|
+
smalltalk.TestCase);
|
138
|
+
|
139
|
+
smalltalk.addMethod(
|
140
|
+
"_isAsync",
|
141
|
+
smalltalk.method({
|
142
|
+
selector: "isAsync",
|
143
|
+
fn: function (){
|
144
|
+
var self=this;
|
145
|
+
return smalltalk.withContext(function($ctx1) {
|
146
|
+
$1=_st(self["@asyncTimeout"])._notNil();
|
147
|
+
return $1;
|
148
|
+
}, function($ctx1) {$ctx1.fill(self,"isAsync",{}, smalltalk.TestCase)})}
|
76
149
|
}),
|
77
150
|
smalltalk.TestCase);
|
78
151
|
|
@@ -82,8 +155,9 @@ smalltalk.method({
|
|
82
155
|
selector: "performTest",
|
83
156
|
fn: function (){
|
84
157
|
var self=this;
|
85
|
-
smalltalk.
|
86
|
-
|
158
|
+
return smalltalk.withContext(function($ctx1) {
|
159
|
+
_st(self)._perform_(_st(self)._selector());
|
160
|
+
return self}, function($ctx1) {$ctx1.fill(self,"performTest",{}, smalltalk.TestCase)})}
|
87
161
|
}),
|
88
162
|
smalltalk.TestCase);
|
89
163
|
|
@@ -93,13 +167,8 @@ smalltalk.method({
|
|
93
167
|
selector: "runCase",
|
94
168
|
fn: function (){
|
95
169
|
var self=this;
|
96
|
-
smalltalk.
|
97
|
-
|
98
|
-
return smalltalk.send(self,"_performTest",[]);
|
99
|
-
}),"_ensure_",[(function(){
|
100
|
-
return smalltalk.send(self,"_tearDown",[]);
|
101
|
-
})]);
|
102
|
-
return self}
|
170
|
+
return smalltalk.withContext(function($ctx1) {
|
171
|
+
return self}, function($ctx1) {$ctx1.fill(self,"runCase",{}, smalltalk.TestCase)})}
|
103
172
|
}),
|
104
173
|
smalltalk.TestCase);
|
105
174
|
|
@@ -107,10 +176,12 @@ smalltalk.addMethod(
|
|
107
176
|
"_selector",
|
108
177
|
smalltalk.method({
|
109
178
|
selector: "selector",
|
110
|
-
fn: function ()
|
111
|
-
|
112
|
-
|
113
|
-
|
179
|
+
fn: function (){
|
180
|
+
var self=this;
|
181
|
+
return smalltalk.withContext(function($ctx1) {
|
182
|
+
$1=self["@testSelector"];
|
183
|
+
return $1;
|
184
|
+
}, function($ctx1) {$ctx1.fill(self,"selector",{}, smalltalk.TestCase)})}
|
114
185
|
}),
|
115
186
|
smalltalk.TestCase);
|
116
187
|
|
@@ -118,11 +189,10 @@ smalltalk.addMethod(
|
|
118
189
|
"_setTestSelector_",
|
119
190
|
smalltalk.method({
|
120
191
|
selector: "setTestSelector:",
|
121
|
-
fn: function (aSelector)
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
}
|
192
|
+
fn: function (aSelector){
|
193
|
+
var self=this;
|
194
|
+
return smalltalk.withContext(function($ctx1) {
|
195
|
+
return self}, function($ctx1) {$ctx1.fill(self,"setTestSelector:",{aSelector:aSelector}, smalltalk.TestCase)})}
|
126
196
|
}),
|
127
197
|
smalltalk.TestCase);
|
128
198
|
|
@@ -130,10 +200,9 @@ smalltalk.addMethod(
|
|
130
200
|
"_setUp",
|
131
201
|
smalltalk.method({
|
132
202
|
selector: "setUp",
|
133
|
-
fn: function ()
|
134
|
-
|
135
|
-
|
136
|
-
}
|
203
|
+
fn: function (){
|
204
|
+
var self=this;
|
205
|
+
return smalltalk.withContext(function($ctx1) {
|
137
206
|
}),
|
138
207
|
smalltalk.TestCase);
|
139
208
|
|
@@ -141,11 +210,10 @@ smalltalk.addMethod(
|
|
141
210
|
"_should_",
|
142
211
|
smalltalk.method({
|
143
212
|
selector: "should:",
|
144
|
-
fn: function (aBlock)
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
}
|
213
|
+
fn: function (aBlock){
|
214
|
+
var self=this;
|
215
|
+
return smalltalk.withContext(function($ctx1) {
|
216
|
+
return self}, function($ctx1) {$ctx1.fill(self,"should:",{aBlock:aBlock}, smalltalk.TestCase)})}
|
149
217
|
}),
|
150
218
|
smalltalk.TestCase);
|
151
219
|
|
@@ -153,11 +221,15 @@ smalltalk.addMethod(
|
|
153
221
|
"_should_raise_",
|
154
222
|
smalltalk.method({
|
155
223
|
selector: "should:raise:",
|
156
|
-
fn: function (aBlock,
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
224
|
+
fn: function (aBlock,anExceptionClass){
|
225
|
+
var self=this;
|
226
|
+
return smalltalk.withContext(function($ctx1) {
|
227
|
+
return smalltalk.withContext(function($ctx2) {
|
228
|
+
return false;
|
229
|
+
}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}))._on_do_(anExceptionClass,(function(ex){
|
230
|
+
return smalltalk.withContext(function($ctx2) {
|
231
|
+
}, function($ctx2) {$ctx2.fillBlock({ex:ex},$ctx1)})})));
|
232
|
+
return self}, function($ctx1) {$ctx1.fill(self,"should:raise:",{aBlock:aBlock,anExceptionClass:anExceptionClass}, smalltalk.TestCase)})}
|
161
233
|
}),
|
162
234
|
smalltalk.TestCase);
|
163
235
|
|
@@ -165,11 +237,15 @@ smalltalk.addMethod(
|
|
165
237
|
"_shouldnt_raise_",
|
166
238
|
smalltalk.method({
|
167
239
|
selector: "shouldnt:raise:",
|
168
|
-
fn: function (aBlock,
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
|
240
|
+
fn: function (aBlock,anExceptionClass){
|
241
|
+
var self=this;
|
242
|
+
return smalltalk.withContext(function($ctx1) {
|
243
|
+
return smalltalk.withContext(function($ctx2) {
|
244
|
+
return true;
|
245
|
+
}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}))._on_do_(anExceptionClass,(function(ex){
|
246
|
+
return smalltalk.withContext(function($ctx2) {
|
247
|
+
}, function($ctx2) {$ctx2.fillBlock({ex:ex},$ctx1)})})));
|
248
|
+
return self}, function($ctx1) {$ctx1.fill(self,"shouldnt:raise:",{aBlock:aBlock,anExceptionClass:anExceptionClass}, smalltalk.TestCase)})}
|
173
249
|
}),
|
174
250
|
smalltalk.TestCase);
|
175
251
|
|
@@ -177,14 +253,13 @@ smalltalk.addMethod(
|
|
177
253
|
"_signalFailure_",
|
178
254
|
smalltalk.method({
|
179
255
|
selector: "signalFailure:",
|
180
|
-
fn: function (aString)
|
181
|
-
|
182
|
-
|
183
|
-
|
184
|
-
|
185
|
-
|
186
|
-
|
187
|
-
}
|
256
|
+
fn: function (aString){
|
257
|
+
var self=this;
|
258
|
+
return smalltalk.withContext(function($ctx1) {
|
259
|
+
$1=_st((smalltalk.TestFailure || TestFailure))._new();
|
260
|
+
_st($1)._messageText_(aString);
|
261
|
+
$2=_st($1)._signal();
|
262
|
+
return self}, function($ctx1) {$ctx1.fill(self,"signalFailure:",{aString:aString}, smalltalk.TestCase)})}
|
188
263
|
}),
|
189
264
|
smalltalk.TestCase);
|
190
265
|
|
@@ -192,10 +267,30 @@ smalltalk.addMethod(
|
|
192
267
|
"_tearDown",
|
193
268
|
smalltalk.method({
|
194
269
|
selector: "tearDown",
|
195
|
-
fn: function ()
|
196
|
-
|
197
|
-
|
198
|
-
}
|
270
|
+
fn: function (){
|
271
|
+
var self=this;
|
272
|
+
return smalltalk.withContext(function($ctx1) {
|
273
|
+
}),
|
274
|
+
smalltalk.TestCase);
|
275
|
+
|
276
|
+
smalltalk.addMethod(
|
277
|
+
"_timeout_",
|
278
|
+
smalltalk.method({
|
279
|
+
selector: "timeout:",
|
280
|
+
fn: function (aNumber){
|
281
|
+
var self=this;
|
282
|
+
return smalltalk.withContext(function($ctx1) {
|
283
|
+
$1=self["@asyncTimeout"];
|
284
|
+
if(($receiver = $1) == nil || $receiver == undefined){
|
285
|
+
$1;
|
286
|
+
} else {
|
287
|
+
_st(self["@asyncTimeout"])._clearTimeout();
|
288
|
+
};
|
289
|
+
self["@asyncTimeout"]=(0);
|
290
|
+
self["@asyncTimeout"]=_st(_st(self)._async_((function(){
|
291
|
+
return smalltalk.withContext(function($ctx2) {
|
292
|
+
}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})})))._valueWithTimeout_(aNumber);
|
293
|
+
return self}, function($ctx1) {$ctx1.fill(self,"timeout:",{aNumber:aNumber}, smalltalk.TestCase)})}
|
199
294
|
}),
|
200
295
|
smalltalk.TestCase);
|
201
296
|
|
@@ -204,17 +299,18 @@ smalltalk.addMethod(
|
|
204
299
|
"_allTestSelectors",
|
205
300
|
smalltalk.method({
|
206
301
|
selector: "allTestSelectors",
|
207
|
-
fn: function ()
|
208
|
-
|
209
|
-
|
210
|
-
|
211
|
-
|
212
|
-
|
213
|
-
|
214
|
-
|
215
|
-
|
216
|
-
|
217
|
-
|
302
|
+
fn: function (){
|
303
|
+
var self=this;
|
304
|
+
var selectors;
|
305
|
+
return smalltalk.withContext(function($ctx1) {
|
306
|
+
selectors=_st(self)._testSelectors();
|
307
|
+
$1=_st(self)._shouldInheritSelectors();
|
308
|
+
if(smalltalk.assert($1)){
|
309
|
+
_st(selectors)._addAll_(_st(_st(self)._superclass())._allTestSelectors());
|
310
|
+
};
|
311
|
+
$2=selectors;
|
312
|
+
return $2;
|
313
|
+
}, function($ctx1) {$ctx1.fill(self,"allTestSelectors",{selectors:selectors}, smalltalk.TestCase.klass)})}
|
218
314
|
}),
|
219
315
|
smalltalk.TestCase.klass);
|
220
316
|
|
@@ -222,12 +318,14 @@ smalltalk.addMethod(
|
|
222
318
|
"_buildSuite",
|
223
319
|
smalltalk.method({
|
224
320
|
selector: "buildSuite",
|
225
|
-
fn: function ()
|
226
|
-
|
227
|
-
|
228
|
-
|
229
|
-
|
230
|
-
}
|
321
|
+
fn: function (){
|
322
|
+
var self=this;
|
323
|
+
return smalltalk.withContext(function($ctx1) {
|
324
|
+
$1=_st(_st(self)._allTestSelectors())._collect_((function(each){
|
325
|
+
return smalltalk.withContext(function($ctx2) {
|
326
|
+
}, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
|
327
|
+
return $1;
|
328
|
+
}, function($ctx1) {$ctx1.fill(self,"buildSuite",{}, smalltalk.TestCase.klass)})}
|
231
329
|
}),
|
232
330
|
smalltalk.TestCase.klass);
|
233
331
|
|
@@ -235,12 +333,12 @@ smalltalk.addMethod(
|
|
235
333
|
"_isAbstract",
|
236
334
|
smalltalk.method({
|
237
335
|
selector: "isAbstract",
|
238
|
-
fn: function ()
|
239
|
-
|
240
|
-
|
241
|
-
|
242
|
-
|
243
|
-
}
|
336
|
+
fn: function (){
|
337
|
+
var self=this;
|
338
|
+
return smalltalk.withContext(function($ctx1) {
|
339
|
+
$1=_st(_st(self)._name()).__eq("TestCase");
|
340
|
+
return $1;
|
341
|
+
}, function($ctx1) {$ctx1.fill(self,"isAbstract",{}, smalltalk.TestCase.klass)})}
|
244
342
|
}),
|
245
343
|
smalltalk.TestCase.klass);
|
246
344
|
|
@@ -248,10 +346,12 @@ smalltalk.addMethod(
|
|
248
346
|
"_lookupHierarchyRoot",
|
249
347
|
smalltalk.method({
|
250
348
|
selector: "lookupHierarchyRoot",
|
251
|
-
fn: function ()
|
252
|
-
|
253
|
-
|
254
|
-
|
349
|
+
fn: function (){
|
350
|
+
var self=this;
|
351
|
+
return smalltalk.withContext(function($ctx1) {
|
352
|
+
$1=(smalltalk.TestCase || TestCase);
|
353
|
+
return $1;
|
354
|
+
}, function($ctx1) {$ctx1.fill(self,"lookupHierarchyRoot",{}, smalltalk.TestCase.klass)})}
|
255
355
|
}),
|
256
356
|
smalltalk.TestCase.klass);
|
257
357
|
|
@@ -259,15 +359,15 @@ smalltalk.addMethod(
|
|
259
359
|
"_selector_",
|
260
360
|
smalltalk.method({
|
261
361
|
selector: "selector:",
|
262
|
-
fn: function (aSelector)
|
263
|
-
|
264
|
-
|
265
|
-
|
266
|
-
|
267
|
-
|
268
|
-
|
269
|
-
|
270
|
-
}
|
362
|
+
fn: function (aSelector){
|
363
|
+
var self=this;
|
364
|
+
return smalltalk.withContext(function($ctx1) {
|
365
|
+
$2=_st(self)._new();
|
366
|
+
_st($2)._setTestSelector_(aSelector);
|
367
|
+
$3=_st($2)._yourself();
|
368
|
+
$1=$3;
|
369
|
+
return $1;
|
370
|
+
}, function($ctx1) {$ctx1.fill(self,"selector:",{aSelector:aSelector}, smalltalk.TestCase.klass)})}
|
271
371
|
}),
|
272
372
|
smalltalk.TestCase.klass);
|
273
373
|
|
@@ -275,12 +375,12 @@ smalltalk.addMethod(
|
|
275
375
|
"_shouldInheritSelectors",
|
276
376
|
smalltalk.method({
|
277
377
|
selector: "shouldInheritSelectors",
|
278
|
-
fn: function ()
|
279
|
-
|
280
|
-
|
281
|
-
|
282
|
-
|
283
|
-
}
|
378
|
+
fn: function (){
|
379
|
+
var self=this;
|
380
|
+
return smalltalk.withContext(function($ctx1) {
|
381
|
+
$1=_st(self).__tild_eq(_st(self)._lookupHierarchyRoot());
|
382
|
+
return $1;
|
383
|
+
}, function($ctx1) {$ctx1.fill(self,"shouldInheritSelectors",{}, smalltalk.TestCase.klass)})}
|
284
384
|
}),
|
285
385
|
smalltalk.TestCase.klass);
|
286
386
|
|
@@ -288,16 +388,179 @@ smalltalk.addMethod(
|
|
288
388
|
"_testSelectors",
|
289
389
|
smalltalk.method({
|
290
390
|
selector: "testSelectors",
|
291
|
-
fn: function ()
|
292
|
-
|
293
|
-
|
294
|
-
|
295
|
-
|
296
|
-
}
|
391
|
+
fn: function (){
|
392
|
+
var self=this;
|
393
|
+
return smalltalk.withContext(function($ctx1) {
|
394
|
+
$1=_st(_st(_st(self)._methodDictionary())._keys())._select_((function(each){
|
395
|
+
return smalltalk.withContext(function($ctx2) {
|
396
|
+
}, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
|
397
|
+
return $1;
|
398
|
+
}, function($ctx1) {$ctx1.fill(self,"testSelectors",{}, smalltalk.TestCase.klass)})}
|
297
399
|
}),
|
298
400
|
smalltalk.TestCase.klass);
|
299
401
|
|
300
402
|
|
403
|
+
smalltalk.addClass('TestContext', smalltalk.Object, ['testCase'], 'SUnit');
|
404
|
+
smalltalk.addMethod(
|
405
|
+
"_execute_",
|
406
|
+
smalltalk.method({
|
407
|
+
selector: "execute:",
|
408
|
+
fn: function (aBlock){
|
409
|
+
var self=this;
|
410
|
+
var failed;
|
411
|
+
return smalltalk.withContext(function($ctx1) {
|
412
|
+
_st(self["@testCase"])._context_(self);
|
413
|
+
$1=(function(){
|
414
|
+
return smalltalk.withContext(function($ctx2) {
|
415
|
+
failed;
|
416
|
+
_st(aBlock)._value();
|
417
|
+
failed=false;
|
418
|
+
return failed;
|
419
|
+
}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})});
|
420
|
+
$2=(function(){
|
421
|
+
return smalltalk.withContext(function($ctx2) {
|
422
|
+
$3=_st(failed)._and_((function(){
|
423
|
+
return smalltalk.withContext(function($ctx3) {
|
424
|
+
}, function($ctx3) {$ctx3.fillBlock({},$ctx1)})}));
|
425
|
+
if(smalltalk.assert($3)){
|
426
|
+
_st(self["@testCase"])._finished();
|
427
|
+
};
|
428
|
+
$4=_st(self["@testCase"])._isAsync();
|
429
|
+
if(! smalltalk.assert($4)){
|
430
|
+
return _st(self["@testCase"])._tearDown();
|
431
|
+
};
|
432
|
+
}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})});
|
433
|
+
_st($1)._ensure_($2);
|
434
|
+
return self}, function($ctx1) {$ctx1.fill(self,"execute:",{aBlock:aBlock,failed:failed}, smalltalk.TestContext)})}
|
435
|
+
}),
|
436
|
+
smalltalk.TestContext);
|
437
|
+
|
438
|
+
smalltalk.addMethod(
|
439
|
+
"_start",
|
440
|
+
smalltalk.method({
|
441
|
+
selector: "start",
|
442
|
+
fn: function (){
|
443
|
+
var self=this;
|
444
|
+
return smalltalk.withContext(function($ctx1) {
|
445
|
+
return smalltalk.withContext(function($ctx2) {
|
446
|
+
return _st(self["@testCase"])._performTest();
|
447
|
+
}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
|
448
|
+
return self}, function($ctx1) {$ctx1.fill(self,"start",{}, smalltalk.TestContext)})}
|
449
|
+
}),
|
450
|
+
smalltalk.TestContext);
|
451
|
+
|
452
|
+
smalltalk.addMethod(
|
453
|
+
"_testCase_",
|
454
|
+
smalltalk.method({
|
455
|
+
selector: "testCase:",
|
456
|
+
fn: function (aTestCase){
|
457
|
+
var self=this;
|
458
|
+
return smalltalk.withContext(function($ctx1) {
|
459
|
+
return self}, function($ctx1) {$ctx1.fill(self,"testCase:",{aTestCase:aTestCase}, smalltalk.TestContext)})}
|
460
|
+
}),
|
461
|
+
smalltalk.TestContext);
|
462
|
+
|
463
|
+
|
464
|
+
smalltalk.addMethod(
|
465
|
+
"_testCase_",
|
466
|
+
smalltalk.method({
|
467
|
+
selector: "testCase:",
|
468
|
+
fn: function (aTestCase){
|
469
|
+
var self=this;
|
470
|
+
return smalltalk.withContext(function($ctx1) {
|
471
|
+
$2=_st(self)._new();
|
472
|
+
_st($2)._testCase_(aTestCase);
|
473
|
+
$3=_st($2)._yourself();
|
474
|
+
$1=$3;
|
475
|
+
return $1;
|
476
|
+
}, function($ctx1) {$ctx1.fill(self,"testCase:",{aTestCase:aTestCase}, smalltalk.TestContext.klass)})}
|
477
|
+
}),
|
478
|
+
smalltalk.TestContext.klass);
|
479
|
+
|
480
|
+
|
481
|
+
smalltalk.addClass('ReportingTestContext', smalltalk.TestContext, ['finished', 'result'], 'SUnit');
|
482
|
+
smalltalk.addMethod(
|
483
|
+
"_execute_",
|
484
|
+
smalltalk.method({
|
485
|
+
selector: "execute:",
|
486
|
+
fn: function (aBlock){
|
487
|
+
var self=this;
|
488
|
+
return smalltalk.withContext(function($ctx1) {
|
489
|
+
$1=(function(){
|
490
|
+
return smalltalk.withContext(function($ctx2) {
|
491
|
+
return smalltalk.withContext(function($ctx3) {
|
492
|
+
}, function($ctx3) {$ctx3.fillBlock({},$ctx1)})}));
|
493
|
+
}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})});
|
494
|
+
$2=(function(){
|
495
|
+
return smalltalk.withContext(function($ctx2) {
|
496
|
+
if(! smalltalk.assert($3)){
|
497
|
+
_st(self["@result"])._increaseRuns();
|
498
|
+
return _st(self["@finished"])._value();
|
499
|
+
};
|
500
|
+
}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})});
|
501
|
+
_st($1)._ensure_($2);
|
502
|
+
return self}, function($ctx1) {$ctx1.fill(self,"execute:",{aBlock:aBlock}, smalltalk.ReportingTestContext)})}
|
503
|
+
}),
|
504
|
+
smalltalk.ReportingTestContext);
|
505
|
+
|
506
|
+
smalltalk.addMethod(
|
507
|
+
"_finished_",
|
508
|
+
smalltalk.method({
|
509
|
+
selector: "finished:",
|
510
|
+
fn: function (aBlock){
|
511
|
+
var self=this;
|
512
|
+
return smalltalk.withContext(function($ctx1) {
|
513
|
+
return self}, function($ctx1) {$ctx1.fill(self,"finished:",{aBlock:aBlock}, smalltalk.ReportingTestContext)})}
|
514
|
+
}),
|
515
|
+
smalltalk.ReportingTestContext);
|
516
|
+
|
517
|
+
smalltalk.addMethod(
|
518
|
+
"_result_",
|
519
|
+
smalltalk.method({
|
520
|
+
selector: "result:",
|
521
|
+
fn: function (aTestResult){
|
522
|
+
var self=this;
|
523
|
+
return smalltalk.withContext(function($ctx1) {
|
524
|
+
return self}, function($ctx1) {$ctx1.fill(self,"result:",{aTestResult:aTestResult}, smalltalk.ReportingTestContext)})}
|
525
|
+
}),
|
526
|
+
smalltalk.ReportingTestContext);
|
527
|
+
|
528
|
+
smalltalk.addMethod(
|
529
|
+
"_withErrorReporting_",
|
530
|
+
smalltalk.method({
|
531
|
+
selector: "withErrorReporting:",
|
532
|
+
fn: function (aBlock){
|
533
|
+
var self=this;
|
534
|
+
return smalltalk.withContext(function($ctx1) {
|
535
|
+
return smalltalk.withContext(function($ctx2) {
|
536
|
+
return smalltalk.withContext(function($ctx3) {
|
537
|
+
}, function($ctx3) {$ctx3.fillBlock({ex:ex},$ctx1)})}));
|
538
|
+
}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}))._on_do_((smalltalk.Error || Error),(function(ex){
|
539
|
+
return smalltalk.withContext(function($ctx2) {
|
540
|
+
}, function($ctx2) {$ctx2.fillBlock({ex:ex},$ctx1)})}));
|
541
|
+
return self}, function($ctx1) {$ctx1.fill(self,"withErrorReporting:",{aBlock:aBlock}, smalltalk.ReportingTestContext)})}
|
542
|
+
}),
|
543
|
+
smalltalk.ReportingTestContext);
|
544
|
+
|
545
|
+
|
546
|
+
smalltalk.addMethod(
|
547
|
+
"_testCase_result_finished_",
|
548
|
+
smalltalk.method({
|
549
|
+
selector: "testCase:result:finished:",
|
550
|
+
fn: function (aTestCase,aTestResult,aBlock){
|
551
|
+
var self=this;
|
552
|
+
return smalltalk.withContext(function($ctx1) {
|
553
|
+
$2=smalltalk.TestContext.klass.fn.prototype._testCase_.apply(_st(self), [aTestCase]);
|
554
|
+
_st($2)._result_(aTestResult);
|
555
|
+
_st($2)._finished_(aBlock);
|
556
|
+
$3=_st($2)._yourself();
|
557
|
+
$1=$3;
|
558
|
+
return $1;
|
559
|
+
}, function($ctx1) {$ctx1.fill(self,"testCase:result:finished:",{aTestCase:aTestCase,aTestResult:aTestResult,aBlock:aBlock}, smalltalk.ReportingTestContext.klass)})}
|
560
|
+
}),
|
561
|
+
smalltalk.ReportingTestContext.klass);
|
562
|
+
|
563
|
+
|
301
564
|
smalltalk.addClass('TestFailure', smalltalk.Error, [], 'SUnit');
|
302
565
|
|
303
566
|
|
@@ -306,11 +569,10 @@ smalltalk.addMethod(
|
|
306
569
|
"_addError_",
|
307
570
|
smalltalk.method({
|
308
571
|
selector: "addError:",
|
309
|
-
fn: function (anError)
|
310
|
-
|
311
|
-
|
312
|
-
|
313
|
-
}
|
572
|
+
fn: function (anError){
|
573
|
+
var self=this;
|
574
|
+
return smalltalk.withContext(function($ctx1) {
|
575
|
+
return self}, function($ctx1) {$ctx1.fill(self,"addError:",{anError:anError}, smalltalk.TestResult)})}
|
314
576
|
}),
|
315
577
|
smalltalk.TestResult);
|
316
578
|
|
@@ -318,11 +580,10 @@ smalltalk.addMethod(
|
|
318
580
|
"_addFailure_",
|
319
581
|
smalltalk.method({
|
320
582
|
selector: "addFailure:",
|
321
|
-
fn: function (aFailure)
|
322
|
-
|
323
|
-
|
324
|
-
|
325
|
-
}
|
583
|
+
fn: function (aFailure){
|
584
|
+
var self=this;
|
585
|
+
return smalltalk.withContext(function($ctx1) {
|
586
|
+
return self}, function($ctx1) {$ctx1.fill(self,"addFailure:",{aFailure:aFailure}, smalltalk.TestResult)})}
|
326
587
|
}),
|
327
588
|
smalltalk.TestResult);
|
328
589
|
|
@@ -330,10 +591,12 @@ smalltalk.addMethod(
|
|
330
591
|
"_errors",
|
331
592
|
smalltalk.method({
|
332
593
|
selector: "errors",
|
333
|
-
fn: function ()
|
334
|
-
|
335
|
-
|
336
|
-
|
594
|
+
fn: function (){
|
595
|
+
var self=this;
|
596
|
+
return smalltalk.withContext(function($ctx1) {
|
597
|
+
$1=self["@errors"];
|
598
|
+
return $1;
|
599
|
+
}, function($ctx1) {$ctx1.fill(self,"errors",{}, smalltalk.TestResult)})}
|
337
600
|
}),
|
338
601
|
smalltalk.TestResult);
|
339
602
|
|
@@ -341,10 +604,12 @@ smalltalk.addMethod(
|
|
341
604
|
"_failures",
|
342
605
|
smalltalk.method({
|
343
606
|
selector: "failures",
|
344
|
-
fn: function ()
|
345
|
-
|
346
|
-
|
347
|
-
|
607
|
+
fn: function (){
|
608
|
+
var self=this;
|
609
|
+
return smalltalk.withContext(function($ctx1) {
|
610
|
+
$1=self["@failures"];
|
611
|
+
return $1;
|
612
|
+
}, function($ctx1) {$ctx1.fill(self,"failures",{}, smalltalk.TestResult)})}
|
348
613
|
}),
|
349
614
|
smalltalk.TestResult);
|
350
615
|
|
@@ -352,11 +617,10 @@ smalltalk.addMethod(
|
|
352
617
|
"_increaseRuns",
|
353
618
|
smalltalk.method({
|
354
619
|
selector: "increaseRuns",
|
355
|
-
fn: function ()
|
356
|
-
|
357
|
-
|
358
|
-
|
359
|
-
}
|
620
|
+
fn: function (){
|
621
|
+
var self=this;
|
622
|
+
return smalltalk.withContext(function($ctx1) {
|
623
|
+
return self}, function($ctx1) {$ctx1.fill(self,"increaseRuns",{}, smalltalk.TestResult)})}
|
360
624
|
}),
|
361
625
|
smalltalk.TestResult);
|
362
626
|
|
@@ -364,16 +628,15 @@ smalltalk.addMethod(
|
|
364
628
|
"_initialize",
|
365
629
|
smalltalk.method({
|
366
630
|
selector: "initialize",
|
367
|
-
fn: function ()
|
368
|
-
|
369
|
-
|
370
|
-
|
371
|
-
|
372
|
-
|
373
|
-
|
374
|
-
|
375
|
-
|
376
|
-
}
|
631
|
+
fn: function (){
|
632
|
+
var self=this;
|
633
|
+
return smalltalk.withContext(function($ctx1) {
|
634
|
+
self["@timestamp"]=_st((smalltalk.Date || Date))._now();
|
635
|
+
self["@runs"]=(0);
|
636
|
+
self["@errors"]=_st((smalltalk.Array || Array))._new();
|
637
|
+
self["@failures"]=_st((smalltalk.Array || Array))._new();
|
638
|
+
self["@total"]=(0);
|
639
|
+
return self}, function($ctx1) {$ctx1.fill(self,"initialize",{}, smalltalk.TestResult)})}
|
377
640
|
}),
|
378
641
|
smalltalk.TestResult);
|
379
642
|
|
@@ -383,13 +646,13 @@ smalltalk.method({
|
|
383
646
|
selector: "nextRunDo:",
|
384
647
|
fn: function (aBlock){
|
385
648
|
var self=this;
|
386
|
-
|
387
|
-
$2=
|
649
|
+
return smalltalk.withContext(function($ctx1) {
|
650
|
+
$2=_st(_st(self)._runs()).__eq_eq(_st(self)._total());
|
388
651
|
if(! smalltalk.assert($2)){
|
389
|
-
$1=
|
652
|
+
$1=_st(aBlock)._value_(_st(_st(self)._runs()).__plus((1)));
|
390
653
|
};
|
391
654
|
return $1;
|
392
|
-
}
|
655
|
+
}, function($ctx1) {$ctx1.fill(self,"nextRunDo:",{aBlock:aBlock}, smalltalk.TestResult)})}
|
393
656
|
}),
|
394
657
|
smalltalk.TestResult);
|
395
658
|
|
@@ -399,17 +662,17 @@ smalltalk.method({
|
|
399
662
|
selector: "runCase:",
|
400
663
|
fn: function (aTestCase){
|
401
664
|
var self=this;
|
402
|
-
smalltalk.
|
403
|
-
return smalltalk.
|
404
|
-
smalltalk.
|
405
|
-
return
|
406
|
-
})
|
407
|
-
return smalltalk.
|
408
|
-
})
|
409
|
-
})
|
410
|
-
return smalltalk.
|
411
|
-
})
|
412
|
-
return self}
|
665
|
+
return smalltalk.withContext(function($ctx1) {
|
666
|
+
return smalltalk.withContext(function($ctx2) {
|
667
|
+
return smalltalk.withContext(function($ctx3) {
|
668
|
+
return _st(aTestCase)._runCase();
|
669
|
+
}, function($ctx3) {$ctx3.fillBlock({},$ctx1)})}))._on_do_((smalltalk.TestFailure || TestFailure),(function(ex){
|
670
|
+
return smalltalk.withContext(function($ctx3) {
|
671
|
+
}, function($ctx3) {$ctx3.fillBlock({ex:ex},$ctx1)})}));
|
672
|
+
}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}))._on_do_((smalltalk.Error || Error),(function(ex){
|
673
|
+
return smalltalk.withContext(function($ctx2) {
|
674
|
+
}, function($ctx2) {$ctx2.fillBlock({ex:ex},$ctx1)})}));
|
675
|
+
return self}, function($ctx1) {$ctx1.fill(self,"runCase:",{aTestCase:aTestCase}, smalltalk.TestResult)})}
|
413
676
|
}),
|
414
677
|
smalltalk.TestResult);
|
415
678
|
|
@@ -417,10 +680,12 @@ smalltalk.addMethod(
|
|
417
680
|
"_runs",
|
418
681
|
smalltalk.method({
|
419
682
|
selector: "runs",
|
420
|
-
fn: function ()
|
421
|
-
|
422
|
-
|
423
|
-
|
683
|
+
fn: function (){
|
684
|
+
var self=this;
|
685
|
+
return smalltalk.withContext(function($ctx1) {
|
686
|
+
$1=self["@runs"];
|
687
|
+
return $1;
|
688
|
+
}, function($ctx1) {$ctx1.fill(self,"runs",{}, smalltalk.TestResult)})}
|
424
689
|
}),
|
425
690
|
smalltalk.TestResult);
|
426
691
|
|
@@ -428,22 +693,23 @@ smalltalk.addMethod(
|
|
428
693
|
"_status",
|
429
694
|
smalltalk.method({
|
430
695
|
selector: "status",
|
431
|
-
fn: function ()
|
432
|
-
|
433
|
-
|
434
|
-
|
435
|
-
|
436
|
-
|
437
|
-
|
438
|
-
|
439
|
-
|
440
|
-
|
441
|
-
|
442
|
-
|
443
|
-
|
444
|
-
|
445
|
-
|
446
|
-
|
696
|
+
fn: function (){
|
697
|
+
var self=this;
|
698
|
+
return smalltalk.withContext(function($ctx1) {
|
699
|
+
$2=_st(_st(self)._errors())._isEmpty();
|
700
|
+
$3=(function(){
|
701
|
+
return smalltalk.withContext(function($ctx2) {
|
702
|
+
if(smalltalk.assert($4)){
|
703
|
+
return "success";
|
704
|
+
} else {
|
705
|
+
return "failure";
|
706
|
+
};
|
707
|
+
}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})});
|
708
|
+
$1=_st($2)._ifTrue_ifFalse_($3,(function(){
|
709
|
+
return smalltalk.withContext(function($ctx2) {
|
710
|
+
}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
|
711
|
+
return $1;
|
712
|
+
}, function($ctx1) {$ctx1.fill(self,"status",{}, smalltalk.TestResult)})}
|
447
713
|
}),
|
448
714
|
smalltalk.TestResult);
|
449
715
|
|
@@ -451,10 +717,12 @@ smalltalk.addMethod(
|
|
451
717
|
"_timestamp",
|
452
718
|
smalltalk.method({
|
453
719
|
selector: "timestamp",
|
454
|
-
fn: function ()
|
455
|
-
|
456
|
-
|
457
|
-
|
720
|
+
fn: function (){
|
721
|
+
var self=this;
|
722
|
+
return smalltalk.withContext(function($ctx1) {
|
723
|
+
$1=self["@timestamp"];
|
724
|
+
return $1;
|
725
|
+
}, function($ctx1) {$ctx1.fill(self,"timestamp",{}, smalltalk.TestResult)})}
|
458
726
|
}),
|
459
727
|
smalltalk.TestResult);
|
460
728
|
|
@@ -462,10 +730,12 @@ smalltalk.addMethod(
|
|
462
730
|
"_total",
|
463
731
|
smalltalk.method({
|
464
732
|
selector: "total",
|
465
|
-
fn: function ()
|
466
|
-
|
467
|
-
|
468
|
-
|
733
|
+
fn: function (){
|
734
|
+
var self=this;
|
735
|
+
return smalltalk.withContext(function($ctx1) {
|
736
|
+
$1=self["@total"];
|
737
|
+
return $1;
|
738
|
+
}, function($ctx1) {$ctx1.fill(self,"total",{}, smalltalk.TestResult)})}
|
469
739
|
}),
|
470
740
|
smalltalk.TestResult);
|
471
741
|
|
@@ -473,25 +743,41 @@ smalltalk.addMethod(
|
|
473
743
|
"_total_",
|
474
744
|
smalltalk.method({
|
475
745
|
selector: "total:",
|
476
|
-
fn: function (aNumber)
|
477
|
-
|
478
|
-
|
479
|
-
|
480
|
-
}
|
746
|
+
fn: function (aNumber){
|
747
|
+
var self=this;
|
748
|
+
return smalltalk.withContext(function($ctx1) {
|
749
|
+
return self}, function($ctx1) {$ctx1.fill(self,"total:",{aNumber:aNumber}, smalltalk.TestResult)})}
|
481
750
|
}),
|
482
751
|
smalltalk.TestResult);
|
483
752
|
|
484
753
|
|
485
754
|
|
486
|
-
smalltalk.addClass('TestSuiteRunner', smalltalk.Object, ['suite', 'result', 'announcer'], 'SUnit');
|
755
|
+
smalltalk.addClass('TestSuiteRunner', smalltalk.Object, ['suite', 'result', 'announcer', 'runNextTest'], 'SUnit');
|
487
756
|
smalltalk.addMethod(
|
488
757
|
"_announcer",
|
489
758
|
smalltalk.method({
|
490
759
|
selector: "announcer",
|
491
760
|
fn: function (){
|
492
761
|
var self=this;
|
493
|
-
return
|
494
|
-
|
762
|
+
return smalltalk.withContext(function($ctx1) {
|
763
|
+
$1=self["@announcer"];
|
764
|
+
return $1;
|
765
|
+
}, function($ctx1) {$ctx1.fill(self,"announcer",{}, smalltalk.TestSuiteRunner)})}
|
766
|
+
}),
|
767
|
+
smalltalk.TestSuiteRunner);
|
768
|
+
|
769
|
+
smalltalk.addMethod(
|
770
|
+
"_contextOf_",
|
771
|
+
smalltalk.method({
|
772
|
+
selector: "contextOf:",
|
773
|
+
fn: function (anInteger){
|
774
|
+
var self=this;
|
775
|
+
return smalltalk.withContext(function($ctx1) {
|
776
|
+
$1=_st((smalltalk.ReportingTestContext || ReportingTestContext))._testCase_result_finished_(_st(self["@suite"])._at_(anInteger),self["@result"],(function(){
|
777
|
+
return smalltalk.withContext(function($ctx2) {
|
778
|
+
}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
|
779
|
+
return $1;
|
780
|
+
}, function($ctx1) {$ctx1.fill(self,"contextOf:",{anInteger:anInteger}, smalltalk.TestSuiteRunner)})}
|
495
781
|
}),
|
496
782
|
smalltalk.TestSuiteRunner);
|
497
783
|
|
@@ -501,10 +787,20 @@ smalltalk.method({
|
|
501
787
|
selector: "initialize",
|
502
788
|
fn: function (){
|
503
789
|
var self=this;
|
504
|
-
smalltalk.
|
505
|
-
|
506
|
-
self["@
|
507
|
-
|
790
|
+
return smalltalk.withContext(function($ctx1) {
|
791
|
+
smalltalk.Object.fn.prototype._initialize.apply(_st(self), []);
|
792
|
+
self["@announcer"]=_st((smalltalk.Announcer || Announcer))._new();
|
793
|
+
self["@result"]=_st((smalltalk.TestResult || TestResult))._new();
|
794
|
+
self["@runNextTest"]=(function(){
|
795
|
+
var runs;
|
796
|
+
return smalltalk.withContext(function($ctx2) {
|
797
|
+
runs;
|
798
|
+
$1=_st(runs).__lt(_st(self["@result"])._total());
|
799
|
+
if(smalltalk.assert($1)){
|
800
|
+
return _st(_st(self)._contextOf_(_st(runs).__plus((1))))._start();
|
801
|
+
};
|
802
|
+
}, function($ctx2) {$ctx2.fillBlock({runs:runs},$ctx1)})});
|
803
|
+
return self}, function($ctx1) {$ctx1.fill(self,"initialize",{}, smalltalk.TestSuiteRunner)})}
|
508
804
|
}),
|
509
805
|
smalltalk.TestSuiteRunner);
|
510
806
|
|
@@ -514,8 +810,22 @@ smalltalk.method({
|
|
514
810
|
selector: "result",
|
515
811
|
fn: function (){
|
516
812
|
var self=this;
|
517
|
-
return
|
518
|
-
|
813
|
+
return smalltalk.withContext(function($ctx1) {
|
814
|
+
$1=self["@result"];
|
815
|
+
return $1;
|
816
|
+
}, function($ctx1) {$ctx1.fill(self,"result",{}, smalltalk.TestSuiteRunner)})}
|
817
|
+
}),
|
818
|
+
smalltalk.TestSuiteRunner);
|
819
|
+
|
820
|
+
smalltalk.addMethod(
|
821
|
+
"_resume",
|
822
|
+
smalltalk.method({
|
823
|
+
selector: "resume",
|
824
|
+
fn: function (){
|
825
|
+
var self=this;
|
826
|
+
return smalltalk.withContext(function($ctx1) {
|
827
|
+
_st(self["@announcer"])._announce_(_st(_st((smalltalk.ResultAnnouncement || ResultAnnouncement))._new())._result_(self["@result"]));
|
828
|
+
return self}, function($ctx1) {$ctx1.fill(self,"resume",{}, smalltalk.TestSuiteRunner)})}
|
519
829
|
}),
|
520
830
|
smalltalk.TestSuiteRunner);
|
521
831
|
|
@@ -525,21 +835,9 @@ smalltalk.method({
|
|
525
835
|
selector: "run",
|
526
836
|
fn: function (){
|
527
837
|
var self=this;
|
528
|
-
|
529
|
-
|
530
|
-
|
531
|
-
worker=(function(){
|
532
|
-
return smalltalk.send(self["@result"],"_nextRunDo_",[(function(index){
|
533
|
-
return smalltalk.send((function(){
|
534
|
-
return smalltalk.send(self["@result"],"_runCase_",[smalltalk.send(self["@suite"],"_at_",[index])]);
|
535
|
-
}),"_ensure_",[(function(){
|
536
|
-
smalltalk.send(worker,"_fork",[]);
|
537
|
-
return smalltalk.send(self["@announcer"],"_announce_",[smalltalk.send(smalltalk.send((smalltalk.ResultAnnouncement || ResultAnnouncement),"_new",[]),"_result_",[self["@result"]])]);
|
538
|
-
})]);
|
539
|
-
})]);
|
540
|
-
});
|
541
|
-
smalltalk.send(worker,"_fork",[]);
|
542
|
-
return self}
|
838
|
+
return smalltalk.withContext(function($ctx1) {
|
839
|
+
_st(self)._resume();
|
840
|
+
return self}, function($ctx1) {$ctx1.fill(self,"run",{}, smalltalk.TestSuiteRunner)})}
|
543
841
|
}),
|
544
842
|
smalltalk.TestSuiteRunner);
|
545
843
|
|
@@ -549,8 +847,8 @@ smalltalk.method({
|
|
549
847
|
selector: "suite:",
|
550
848
|
fn: function (aCollection){
|
551
849
|
var self=this;
|
552
|
-
|
553
|
-
return self}
|
850
|
+
return smalltalk.withContext(function($ctx1) {
|
851
|
+
return self}, function($ctx1) {$ctx1.fill(self,"suite:",{aCollection:aCollection}, smalltalk.TestSuiteRunner)})}
|
554
852
|
}),
|
555
853
|
smalltalk.TestSuiteRunner);
|
556
854
|
|
@@ -561,8 +859,8 @@ smalltalk.method({
|
|
561
859
|
selector: "new",
|
562
860
|
fn: function (){
|
563
861
|
var self=this;
|
564
|
-
smalltalk.
|
565
|
-
return self}
|
862
|
+
return smalltalk.withContext(function($ctx1) {
|
863
|
+
return self}, function($ctx1) {$ctx1.fill(self,"new",{}, smalltalk.TestSuiteRunner.klass)})}
|
566
864
|
}),
|
567
865
|
smalltalk.TestSuiteRunner.klass);
|
568
866
|
|
@@ -572,10 +870,10 @@ smalltalk.method({
|
|
572
870
|
selector: "on:",
|
573
871
|
fn: function (aCollection){
|
574
872
|
var self=this;
|
575
|
-
|
576
|
-
$1=
|
873
|
+
return smalltalk.withContext(function($ctx1) {
|
874
|
+
$1=_st(smalltalk.Object.klass.fn.prototype._new.apply(_st(self), []))._suite_(aCollection);
|
577
875
|
return $1;
|
578
|
-
}
|
876
|
+
}, function($ctx1) {$ctx1.fill(self,"on:",{aCollection:aCollection}, smalltalk.TestSuiteRunner.klass)})}
|
579
877
|
}),
|
580
878
|
smalltalk.TestSuiteRunner.klass);
|
581
879
|
|