blob: 9373906c6f612a47f8d926f2c298bc81b544b087 [file] [log] [blame]
Roman Reissf29762f2015-05-19 11:00:061'use strict';
Ryan Dahlddc98932011-06-16 13:33:472var common = require('../common');
3var assert = require('assert');
4var TCP = process.binding('tcp_wrap').TCP;
Trevor Norris819690f2014-12-09 04:29:475var TCPConnectWrap = process.binding('tcp_wrap').TCPConnectWrap;
6var ShutdownWrap = process.binding('stream_wrap').ShutdownWrap;
Ryan Dahlddc98932011-06-16 13:33:477
8function makeConnection() {
9 var client = new TCP();
10
Trevor Norris819690f2014-12-09 04:29:4711 var req = new TCPConnectWrap();
Ben Noordhuise1fe8d42013-07-19 21:33:0612 var err = client.connect(req, '127.0.0.1', common.PORT);
13 assert.equal(err, 0);
14
Ryan Dahlddc98932011-06-16 13:33:4715 req.oncomplete = function(status, client_, req_) {
16 assert.equal(0, status);
17 assert.equal(client, client_);
18 assert.equal(req, req_);
19
Colton Baker87286cc2011-10-04 22:08:1820 console.log('connected');
Trevor Norris819690f2014-12-09 04:29:4721 var shutdownReq = new ShutdownWrap();
Ben Noordhuise1fe8d42013-07-19 21:33:0622 var err = client.shutdown(shutdownReq);
23 assert.equal(err, 0);
24
Ryan Dahl9696c272011-06-16 14:08:1725 shutdownReq.oncomplete = function(status, client_, req_) {
Colton Baker87286cc2011-10-04 22:08:1826 console.log('shutdown complete');
Ryan Dahl9696c272011-06-16 14:08:1727 assert.equal(0, status);
28 assert.equal(client, client_);
29 assert.equal(shutdownReq, req_);
30 shutdownCount++;
31 client.close();
32 };
Ryan Dahlddc98932011-06-16 13:33:4733 };
34}
35
36/////
37
38var connectCount = 0;
39var endCount = 0;
Ryan Dahl9696c272011-06-16 14:08:1740var shutdownCount = 0;
Ryan Dahlddc98932011-06-16 13:33:4741
42var server = require('net').Server(function(s) {
Colton Baker87286cc2011-10-04 22:08:1843 console.log('got connection');
Ryan Dahlddc98932011-06-16 13:33:4744 connectCount++;
isaacs695abba2012-12-13 17:51:3145 s.resume();
Ryan Dahlddc98932011-06-16 13:33:4746 s.on('end', function() {
Colton Baker87286cc2011-10-04 22:08:1847 console.log('got eof');
Ryan Dahlddc98932011-06-16 13:33:4748 endCount++;
49 s.destroy();
50 server.close();
51 });
52});
53
54server.listen(common.PORT, makeConnection);
55
56process.on('exit', function() {
Ryan Dahl9696c272011-06-16 14:08:1757 assert.equal(1, shutdownCount);
Ryan Dahlddc98932011-06-16 13:33:4758 assert.equal(1, connectCount);
59 assert.equal(1, endCount);
60});