summaryrefslogtreecommitdiff
path: root/test/parallel/test-http-pipeline-assertionerror-finish.js
diff options
context:
space:
mode:
authorUjjwal Sharma <usharma1998@gmail.com>2018-03-22 22:47:39 +0530
committerTrivikram <16024985+trivikr@users.noreply.github.com>2018-03-28 16:18:10 -0700
commitff7c2ccf230d0fd43402229da38a238ea1ee039f (patch)
tree77f6a8e5c00b0e73824f64497fd10aada0e518a4 /test/parallel/test-http-pipeline-assertionerror-finish.js
parent7e07687230894e2c8d84e91e71251d21609e062e (diff)
downloadandroid-node-v8-ff7c2ccf230d0fd43402229da38a238ea1ee039f.tar.gz
android-node-v8-ff7c2ccf230d0fd43402229da38a238ea1ee039f.tar.bz2
android-node-v8-ff7c2ccf230d0fd43402229da38a238ea1ee039f.zip
test: rename tests with descriptive filenames
Refs: https://github.com/nodejs/node/issues/19105 Refs: https://github.com/nodejs/node/blob/master/doc/guides/writing-tests.md#test-structure PR-URL: https://github.com/nodejs/node/pull/19608 Reviewed-By: Tiancheng "Timothy" Gu <timothygu99@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Trivikram Kamat <trivikr.dev@gmail.com>
Diffstat (limited to 'test/parallel/test-http-pipeline-assertionerror-finish.js')
-rw-r--r--test/parallel/test-http-pipeline-assertionerror-finish.js34
1 files changed, 34 insertions, 0 deletions
diff --git a/test/parallel/test-http-pipeline-assertionerror-finish.js b/test/parallel/test-http-pipeline-assertionerror-finish.js
new file mode 100644
index 0000000000..2780d4bdf6
--- /dev/null
+++ b/test/parallel/test-http-pipeline-assertionerror-finish.js
@@ -0,0 +1,34 @@
+'use strict';
+const common = require('../common');
+
+// This test ensures that Node.js doesn't crash with an AssertionError at
+// `ServerResponse.resOnFinish` because of an out-of-order 'finish' bug in
+// pipelining.
+// https://github.com/nodejs/node/issues/2639
+
+const http = require('http');
+const net = require('net');
+
+const COUNT = 10;
+
+const server = http
+ .createServer(
+ common.mustCall((req, res) => {
+ // Close the server, we have only one TCP connection anyway
+ server.close();
+ res.writeHead(200);
+ res.write('data');
+
+ setTimeout(function() {
+ res.end();
+ }, (Math.random() * 100) | 0);
+ }, COUNT)
+ )
+ .listen(0, function() {
+ const s = net.connect(this.address().port);
+
+ const big = 'GET / HTTP/1.0\r\n\r\n'.repeat(COUNT);
+
+ s.write(big);
+ s.resume();
+ });