Yoji SHIDARA
null+****@clear*****
Wed Nov 14 13:08:00 JST 2012
Yoji SHIDARA 2012-11-14 13:08:00 +0900 (Wed, 14 Nov 2012) New Revision: 1af448b6426e02e1835ebfea030d2d98ceca9880 https://github.com/groonga/gcs/commit/1af448b6426e02e1835ebfea030d2d98ceca9880 Log: Use EventEmitter Modified files: tools/run-scenarios tools/scenario-runner.js Modified: tools/run-scenarios (+27 -34) =================================================================== --- tools/run-scenarios 2012-11-14 12:58:18 +0900 (0ef18ac) +++ tools/run-scenarios 2012-11-14 13:08:00 +0900 (cf99050) @@ -98,38 +98,31 @@ Object.keys(CLI.prototype).concat(Object.keys(commandLine)).forEach(function(key }); var runner = new Runner(options); -runner.run(scenarios, function(error, event) { - switch (event.type) { - case 'scenario:start': - console.log(''); - console.log('Scenario file: ' + event.scenario.path); - mkdirp.sync(event.scenario.resultsDir); - break; - - case 'scenario:finish': - console.log(' Done. (elapsed time: ' + event.elapsedTime + 'msec)'); - break; - - case 'request:start': - console.log(' Processing request: ' + event.request.name); - break; - - case 'request:finish': - var filename = Runner.toSafeName(event.request.name) + '.txt'; - var resultPath = path.resolve(event.scenario.resultsDir, filename); - fs.writeFile(resultPath, event.request.result); - console.log(' Wrote ' + resultPath); - break; - - case 'all:finish': - console.log(''); - console.log('All scenarios are finished. ' + - '(total elapsed time: ' + event.elapsedTime + 'msec)'); - process.exit(0); - break; - - case 'error': - runner.client.raiseFatalError('Unknown status code ' + event.statusCode); - break; - } +runner.on('scenario:start', function(event) { + console.log(''); + console.log('Scenario file: ' + event.scenario.path); + mkdirp.sync(event.scenario.resultsDir); +}); + +runner.on('scenario:finish', function(event) { + console.log(' Done. (elapsed time: ' + event.elapsedTime + 'msec)'); +}); + +runner.on('request:finish', function(event) { + var filename = Runner.toSafeName(event.request.name) + '.txt'; + var resultPath = path.resolve(event.scenario.resultsDir, filename); + fs.writeFile(resultPath, event.request.result); + console.log(' Wrote ' + resultPath); +}); + +runner.on('all:finish', function(event) { + console.log(''); + console.log('All scenarios are finished. ' + + '(total elapsed time: ' + event.elapsedTime + 'msec)'); + process.exit(0); +}); + +runner.on('error', function(event) { + runner.client.raiseFatalError('Unknown status code ' + event.statusCode); }); +runner.run(scenarios); Modified: tools/scenario-runner.js (+12 -0) =================================================================== --- tools/scenario-runner.js 2012-11-14 12:58:18 +0900 (d0bedb5) +++ tools/scenario-runner.js 2012-11-14 13:08:00 +0900 (6320bb1) @@ -38,6 +38,7 @@ Runner.prototype._processScenarios = function(params, globalCallback) { self._processScenarios(params); } else { var elapsedTime = Date.now() - params.start; + self.emit('all:finish', {elapsedTime: elapsedTime}); if (self.globalCallback) self.globalCallback(null, { type: 'all:finish', elapsedTime: elapsedTime }); @@ -51,6 +52,7 @@ Runner.prototype._processScenario = function(scenario, callback) { scenario.toBeProcessedRequests = scenario.requests.slice(0); scenario.start = Date.now(); scenario.processed = {}; + this.emit('scenario:start', {scenario: scenario}); if (this.globalCallback) this.globalCallback(null, { type: 'scenario:start', scenario: scenario }); @@ -66,6 +68,10 @@ Runner.prototype._processScenario = function(scenario, callback) { var event = { type: 'scenario:finish', elapsedTime: elapsedTime, scenario: scenario }; + self.emit('scenario:finish', { + elapsedTime: elapsedTime, + scenario: scenario + }); if (self.globalCallback) self.globalCallback(null, event); if (callback) @@ -82,6 +88,10 @@ Runner.prototype._processScenario = function(scenario, callback) { name = request.name + count++; } + this.emit('request:start', { + scenario: scenario, + request: request + }); if (this.globalCallback) this.globalCallback(null, { type: 'request:start', scenario: scenario, @@ -92,6 +102,7 @@ Runner.prototype._processScenario = function(scenario, callback) { var statusCode = response.StatusCode; if (!statusCodeTable[statusCode]) { + this.emit('error', {statusCode: statusCode}); if (self.globalCallback) self.globalCallback(null, { type: 'error', statusCode: statusCode }); @@ -109,6 +120,7 @@ Runner.prototype._processScenario = function(scenario, callback) { output += response.Body.toString(); request.result = output; + self.emit('request:finish', {scenario: scenario, request: request}); if (self.globalCallback) self.globalCallback(null, { type: 'request:finish', scenario: scenario, -------------- next part -------------- HTML����������������������������...Download