require("../common"); var http = require("http"), sys = require("sys"), server, server_response = "Thank you, come again.", client_requests = [], cur, timer, req_num, exception_count = 0; server = http.createServer(function (req, res) { intentionally_not_defined(); res.writeHead(200, {"Content-Type": "text/plain"}); res.write(server_response); res.end(); }); function check_reqs() { var done_reqs = 0; client_requests.forEach(function (v) { if (v.done) { done_reqs += 1; } }); if (done_reqs === 4) { sys.puts("Got all requests, which is bad."); clearTimeout(timer); } } function add_client(num) { var req = http.createClient(PORT).request('GET', '/busy/' + num); req.end(); req.addListener('response', function(res) { var response_body = ""; res.setEncoding("utf8"); res.addListener('data', function(chunk) { response_body += chunk; }); res.addListener('end', function() { assert.strictEqual(response_body, server_response); req.done = true; check_reqs(); }); }); return req; } server.listen(PORT, function () { for (req_num = 0; req_num < 4 ; req_num += 1) { client_requests.push(add_client(req_num)); } timer = setTimeout(function () { process.removeListener("uncaughtException", exception_handler); server.close(); assert.strictEqual(4, exception_count); process.exit(0); }, 300); }); function exception_handler(err) { sys.puts("Caught an exception: " + err); if (err.name === "AssertionError") { throw(err); } exception_count += 1; } process.addListener("uncaughtException", exception_handler);