From: Ryan Dahl Date: Tue, 27 Apr 2010 03:26:36 +0000 (-0700) Subject: Add more asserts to test-http-big-proxy-responses X-Git-Tag: v0.1.93~26 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=c7b3c1ecbc7c425eb1e0014166dcc051805f8cff;p=platform%2Fupstream%2Fnodejs.git Add more asserts to test-http-big-proxy-responses --- diff --git a/test/disabled/test-http-big-proxy-responses.js b/test/disabled/test-http-big-proxy-responses.js index 431ac05..a75ff87 100644 --- a/test/disabled/test-http-big-proxy-responses.js +++ b/test/disabled/test-http-big-proxy-responses.js @@ -4,13 +4,15 @@ fs = require("fs"), http = require("http"), url = require("url"); +var chunk = '01234567890123456789'; + // Produce a very large response. var chargen = http.createServer(function (req, res) { - var chunk = '01234567890123456789'; - var len = req.headers['x-len']; + var len = parseInt(req.headers['x-len']); + assert.ok(len > 0); res.writeHead(200, {"transfer-encoding":"chunked"}); for (var i=0; i 0); + + var sent = 0; + + + c.addListener('error', function (e) { + puts('proxy client error. sent ' + sent); + throw e; + }); + var proxy_req = c.request(req.method, req.url, req.headers); proxy_req.addListener('response', function(proxy_res) { res.writeHead(proxy_res.statusCode, proxy_res.headers); - proxy_res.addListener('data', function(chunk) { - print('.'); - res.write(chunk); + + proxy_res.addListener('data', function(d) { + //print('.'); + res.write(d); + sent += d.length; + assert.ok(sent <= (len*chunk.length)); }); + proxy_res.addListener('end', function() { res.end(); }); + }); + proxy_req.end(); }); proxy.listen(9001); @@ -39,21 +59,35 @@ var done = false; function call_chargen(list) { if (list.length > 0) { - sys.debug("calling chargen for " + list[0] + " chunks."); - var req = http.createClient(9001, 'localhost').request('/', {'x-len': list[0]}); + var len = list.shift(); + + sys.debug("calling chargen for " + len + " chunks."); + + var recved = 0; + + var req = http.createClient(9001, 'localhost').request('/', {'x-len': len}); + req.addListener('response', function(res) { + + res.addListener('data', function(d) { + recved += d.length; + assert.ok(recved <= (len*chunk.length)); + }); + res.addListener('end', function() { - sys.debug("end for " + list[0] + " chunks."); - list.shift(); + assert.ok(recved <= (len*chunk.length)); + sys.debug("end for " + len + " chunks."); call_chargen(list); }); + }); req.end(); + } else { - sys.puts("End of list."); - proxy.end(); - chargen.end(); - done = true; + sys.puts("End of list. closing servers"); + proxy.close(); + chargen.close(); + done = true; } }