|
@@ -675,18 +675,29 @@ selector: "run",
|
|
|
category: 'actions',
|
|
|
fn: function (){
|
|
|
var self=this;
|
|
|
+var $1;
|
|
|
+var worker;
|
|
|
+var index;
|
|
|
smalltalk.send(self["@result"],"_total_",[smalltalk.send(self["@suite"],"_size",[])]);
|
|
|
smalltalk.send(self["@announcer"],"_announce_",[smalltalk.send(smalltalk.send((smalltalk.ResultAnnouncement || ResultAnnouncement),"_new",[]),"_result_",[self["@result"]])]);
|
|
|
-smalltalk.send(self["@suite"],"_do_",[(function(each){
|
|
|
-return smalltalk.send((function(){
|
|
|
-smalltalk.send(each,"_runCaseFor_",[self["@result"]]);
|
|
|
-return smalltalk.send(self["@announcer"],"_announce_",[smalltalk.send(smalltalk.send((smalltalk.ResultAnnouncement || ResultAnnouncement),"_new",[]),"_result_",[self["@result"]])]);
|
|
|
-}),"_valueWithTimeout_",[(100)]);
|
|
|
+index=(1);
|
|
|
+worker=(function(){
|
|
|
+$1=smalltalk.send(index,"__lt_eq",[smalltalk.send(self["@suite"],"_size",[])]);
|
|
|
+if(smalltalk.assert($1)){
|
|
|
+smalltalk.send(smalltalk.send(self["@suite"],"_at_",[index]),"_runCaseFor_",[self["@result"]]);
|
|
|
+index=smalltalk.send(index,"__plus",[(1)]);
|
|
|
+index;
|
|
|
+smalltalk.send(self["@announcer"],"_announce_",[smalltalk.send(smalltalk.send((smalltalk.ResultAnnouncement || ResultAnnouncement),"_new",[]),"_result_",[self["@result"]])]);
|
|
|
+return smalltalk.send(worker,"_valueWithTimeout_",[(0)]);
|
|
|
+};
|
|
|
+});
|
|
|
+smalltalk.send(smalltalk.send(smalltalk.send(self["@suite"],"_size",[]),"_min_",[(25)]),"_timesRepeat_",[(function(){
|
|
|
+return smalltalk.send(worker,"_valueWithTimeout_",[(0)]);
|
|
|
})]);
|
|
|
return self},
|
|
|
args: [],
|
|
|
-source: "run\x0a\x09result total: suite size.\x0a announcer announce: (ResultAnnouncement new result: result).\x0a\x09suite do: [:each | [\x0a \x09each runCaseFor: result.\x0a\x09 announcer announce: (ResultAnnouncement new result: result)\x0a\x09] valueWithTimeout: 100]\x0a",
|
|
|
-messageSends: ["total:", "size", "announce:", "result:", "new", "do:", "valueWithTimeout:", "runCaseFor:"],
|
|
|
+source: "run\x0a\x09| worker index |\x0a\x09result total: suite size.\x0a announcer announce: (ResultAnnouncement new result: result).\x0a index := 1.\x0a worker := [ index <= suite size ifTrue: [\x0a\x09\x09(suite at: index) runCaseFor: result.\x0a index := index + 1.\x0a\x09\x09announcer announce: (ResultAnnouncement new result: result).\x0a worker valueWithTimeout: 0\x0a\x09]].\x0a\x09(suite size min: 25) timesRepeat: [ worker valueWithTimeout: 0 ]",
|
|
|
+messageSends: ["total:", "size", "announce:", "result:", "new", "ifTrue:", "runCaseFor:", "at:", "+", "valueWithTimeout:", "<=", "timesRepeat:", "min:"],
|
|
|
referencedClasses: ["ResultAnnouncement"]
|
|
|
}),
|
|
|
smalltalk.TestSuiteRunner);
|