Re-land Bert's test for #1697
authorRyan Dahl <ry@tinyclouds.org>
Mon, 26 Sep 2011 19:47:49 +0000 (12:47 -0700)
committerRyan Dahl <ry@tinyclouds.org>
Mon, 26 Sep 2011 19:50:59 +0000 (12:50 -0700)
Was reverted out in cde81a6675caa5d64d2215b75105cf353ed98dc6

test/simple/test-regress-GH-1697.js [new file with mode: 0644]

diff --git a/test/simple/test-regress-GH-1697.js b/test/simple/test-regress-GH-1697.js
new file mode 100644 (file)
index 0000000..6c0474f
--- /dev/null
@@ -0,0 +1,46 @@
+var net = require('net'),
+    cp = require('child_process'),
+    util = require('util');
+
+if (process.argv[2] === 'server') {
+  // Server
+
+  var server = net.createServer(function(conn) {
+    conn.on('data', function(data) {
+      console.log('server received ' + data.length + ' bytes');
+    });
+
+    conn.on('close', function() {
+      server.close();
+    });
+  });
+  server.listen(1234, '127.0.0.1');
+
+  console.log('Server running.');
+} else {
+  // Client
+
+  var serverProcess = cp.spawn(process.execPath, [process.argv[1], 'server']);
+  serverProcess.stdout.pipe(process.stdout);
+  serverProcess.stderr.pipe(process.stdout);
+
+  serverProcess.stdout.once('data', function() {
+    var client = net.createConnection(1234, '127.0.0.1');
+    client.on('connect', function() {
+      var alot = new Buffer(1024),
+          alittle = new Buffer(1);
+
+      for (var i = 0; i < 100; i++) {
+        client.write(alot);
+      }
+
+      // Block the event loop for 1 second
+      var start = (new Date()).getTime();
+      while ((new Date).getTime() < start + 1000) {}
+
+      client.write(alittle);
+
+      client.destroySoon();
+    });
+  });
+}