benchmark: fix chunky client benchmark execution
authorBrian White <mscdex@mscdex.net>
Wed, 25 Mar 2015 06:26:21 +0000 (02:26 -0400)
committerBrian White <mscdex@mscdex.net>
Fri, 3 Apr 2015 04:56:45 +0000 (00:56 -0400)
This commit fixes a few things for this benchmark:

1. Ensures the temporary directory for the unix socket exists.
2. Prevents the client code from being run directly because the
server script is the one that calls out the client code.
3. Ensures the server is closed once the client benchmarks have
finished.
4. Since this is an http benchmark, it should be moved to the http
benchmarks subdirectory.

PR-URL: https://github.com/iojs/io.js/pull/1257
Reviewed-By: Roman Reiss <me@silverwind.io>
benchmark/http/_chunky_http_client.js [moved from benchmark/net/chunky_http_client.js with 100% similarity]
benchmark/http/http_server_for_chunky_client.js [moved from benchmark/net/http_server_for_chunky_client.js with 76% similarity]

@@ -6,9 +6,15 @@ var fs = require('fs');
 var spawn = require('child_process').spawn;
 var common = require('../common.js')
 var test = require('../../test/common.js')
-var pep = path.dirname(process.argv[1]) + '/chunky_http_client.js';
+var pep = path.dirname(process.argv[1]) + '/_chunky_http_client.js';
 var PIPE = test.PIPE;
 
+try {
+  fs.accessSync(test.tmpDir, fs.F_OK);
+} catch (e) {
+  fs.mkdirSync(test.tmpDir);
+}
+
 var server;
 try {
   fs.unlinkSync(PIPE);
@@ -36,9 +42,10 @@ try {
   });
 
   child.stdout.pipe(process.stdout);
+  child.stderr.pipe(process.stderr);
 
-  child.on('exit', function (exitCode) {
-    console.error('Child exited with code: ' + exitCode);
+  child.on('close', function (exitCode) {
+    server.close();
   });
 
 } catch(e) {