[Groonga-commit] groonga/gcs [master] Use EventEmitter

Back to archive index

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 



More information about the Groonga-commit mailing list
Back to archive index