mirror of https://github.com/lukechilds/node.git
isaacs
12 years ago
53 changed files with 1032 additions and 205 deletions
@ -0,0 +1,25 @@ |
|||||
|
var LRU = require('lru-cache'); |
||||
|
|
||||
|
var max = +process.argv[2] || 10240; |
||||
|
var more = 1024; |
||||
|
|
||||
|
var cache = LRU({ |
||||
|
max: max, maxAge: 86400e3 |
||||
|
}); |
||||
|
|
||||
|
// fill cache
|
||||
|
for (var i = 0; i < max; ++i) { |
||||
|
cache.set(i, {}); |
||||
|
} |
||||
|
|
||||
|
var start = process.hrtime(); |
||||
|
|
||||
|
// adding more items
|
||||
|
for ( ; i < max+more; ++i) { |
||||
|
cache.set(i, {}); |
||||
|
} |
||||
|
|
||||
|
var end = process.hrtime(start); |
||||
|
var msecs = end[0] * 1E3 + end[1] / 1E6; |
||||
|
|
||||
|
console.log('adding %d items took %d ms', more, msecs.toPrecision(5)); |
File diff suppressed because one or more lines are too long
@ -1,13 +1,16 @@ |
|||||
# update AUTHORS with: |
Alan Gutierrez <alan@prettyrobots.com> <alan@blogometer.com> |
||||
# git log --all --reverse --format='%aN <%aE>' | perl -ne 'BEGIN{print "# Authors ordered by first contribution.\n"} print unless $h{$_}; $h{$_} = 1' > AUTHORS |
Bert Belder <bertbelder@gmail.com> <info@2bs.nl> |
||||
<rm@joyent.com> <rm@fingolfin.org> |
Bert Belder <bertbelder@gmail.com> <user@ChrUbuntu.(none)> |
||||
<ryan@joyent.com> <ry@tinyclouds.org> |
Brandon Philips <brandon.philips@rackspace.com> <brandon@ifup.org> |
||||
<bertbelder@gmail.com> <info@2bs.nl> |
Brian White <mscdex@mscdex.net> <mscdex@gmail.com> |
||||
<alan@prettyrobots.com> <alan@blogometer.com> |
|
||||
San-Tai Hsu <vanilla@fatpipi.com> |
|
||||
Isaac Z. Schlueter <i@izs.me> |
|
||||
Saúl Ibarra Corretgé <saghul@gmail.com> |
|
||||
Yuki OKUMURA <mjt@cltn.org> |
|
||||
Frank Denis <github@pureftpd.org> |
Frank Denis <github@pureftpd.org> |
||||
|
Isaac Z. Schlueter <i@izs.me> |
||||
|
Robert Mustacchi <rm@joyent.com> <rm@fingolfin.org> |
||||
|
Ryan Dahl <ryan@joyent.com> <ry@tinyclouds.org> |
||||
Ryan Emery <seebees@gmail.com> |
Ryan Emery <seebees@gmail.com> |
||||
|
San-Tai Hsu <vanilla@fatpipi.com> |
||||
|
Saúl Ibarra Corretgé <saghul@gmail.com> |
||||
|
Shigeki Ohtsu <ohtsu@iij.ad.jp> <ohtsu@ohtsu.org> |
||||
|
Timothy J. Fontaine <tjfontaine@gmail.com> |
||||
Yasuhiro Matsumoto <mattn.jp@gmail.com> |
Yasuhiro Matsumoto <mattn.jp@gmail.com> |
||||
|
Yuki Okumura <mjt@cltn.org> |
||||
|
@ -0,0 +1,45 @@ |
|||||
|
2013.02.04, Version 0.10.3 (Stable) |
||||
|
|
||||
|
Changes since version 0.10.2: |
||||
|
|
||||
|
* include: remove extraneous const from uv_version() (Ben Noordhuis) |
||||
|
|
||||
|
* doc: update README, replace `OS` by `PLATFORM` (Ben Noordhuis) |
||||
|
|
||||
|
* build: simplify .buildstamp rule (Ben Noordhuis) |
||||
|
|
||||
|
* build: disable -Wstrict-aliasing on darwin (Ben Noordhuis) |
||||
|
|
||||
|
* darwin: don't select(&exceptfds) in fallback path (Ben Noordhuis) |
||||
|
|
||||
|
* unix: don't clear flags after closing UDP handle (Saúl Ibarra Corretgé) |
||||
|
|
||||
|
|
||||
|
2013.03.25, Version 0.10.2 (Stable) |
||||
|
|
||||
|
This is the first officially versioned release of libuv. Starting now |
||||
|
libuv will make releases independently of Node.js. |
||||
|
|
||||
|
Changes since Node.js v0.10.0: |
||||
|
|
||||
|
* test: add tap output for windows (Timothy J. Fontaine) |
||||
|
|
||||
|
* unix: fix uv_tcp_simultaneous_accepts() logic (Ben Noordhuis) |
||||
|
|
||||
|
* include: bump UV_VERSION_MINOR (Ben Noordhuis) |
||||
|
|
||||
|
* unix: improve uv_guess_handle() implementation (Ben Noordhuis) |
||||
|
|
||||
|
* stream: run try_select only for pipes and ttys (Fedor Indutny) |
||||
|
|
||||
|
Changes since Node.js v0.10.1: |
||||
|
|
||||
|
* build: rename OS to PLATFORM (Ben Noordhuis) |
||||
|
|
||||
|
* unix: make uv_timer_init() initialize repeat (Brian Mazza) |
||||
|
|
||||
|
* unix: make timers handle large timeouts (Ben Noordhuis) |
||||
|
|
||||
|
* build: add OBJC makefile var (Ben Noordhuis) |
||||
|
|
||||
|
* Add `uv_version()` and `uv_version_string()` APIs (Bert Belder) |
@ -0,0 +1,60 @@ |
|||||
|
/* Copyright Joyent, Inc. and other Node contributors. All rights reserved.
|
||||
|
* |
||||
|
* Permission is hereby granted, free of charge, to any person obtaining a copy |
||||
|
* of this software and associated documentation files (the "Software"), to |
||||
|
* deal in the Software without restriction, including without limitation the |
||||
|
* rights to use, copy, modify, merge, publish, distribute, sublicense, and/or |
||||
|
* sell copies of the Software, and to permit persons to whom the Software is |
||||
|
* furnished to do so, subject to the following conditions: |
||||
|
* |
||||
|
* The above copyright notice and this permission notice shall be included in |
||||
|
* all copies or substantial portions of the Software. |
||||
|
* |
||||
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR |
||||
|
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, |
||||
|
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE |
||||
|
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER |
||||
|
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING |
||||
|
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS |
||||
|
* IN THE SOFTWARE. |
||||
|
*/ |
||||
|
|
||||
|
|
||||
|
/*
|
||||
|
* Versions with an even minor version (e.g. 0.6.1 or 1.0.4) are API and ABI |
||||
|
* stable. When the minor version is odd, the API can change between patch |
||||
|
* releases. |
||||
|
*/ |
||||
|
|
||||
|
#define UV_VERSION_MAJOR 0 |
||||
|
#define UV_VERSION_MINOR 10 |
||||
|
#define UV_VERSION_PATCH 3 |
||||
|
#define UV_VERSION_IS_RELEASE 1 |
||||
|
|
||||
|
|
||||
|
#define UV_VERSION ((UV_VERSION_MAJOR << 16) | \ |
||||
|
(UV_VERSION_MINOR << 8) | \ |
||||
|
(UV_VERSION_PATCH)) |
||||
|
|
||||
|
#define UV_STRINGIFY(v) UV_STRINGIFY_HELPER(v) |
||||
|
#define UV_STRINGIFY_HELPER(v) #v |
||||
|
|
||||
|
#define UV_VERSION_STRING_BASE UV_STRINGIFY(UV_VERSION_MAJOR) "." \ |
||||
|
UV_STRINGIFY(UV_VERSION_MINOR) "." \ |
||||
|
UV_STRINGIFY(UV_VERSION_PATCH) |
||||
|
|
||||
|
#if UV_VERSION_IS_RELEASE |
||||
|
# define UV_VERSION_STRING UV_VERSION_STRING_BASE |
||||
|
#else |
||||
|
# define UV_VERSION_STRING UV_VERSION_STRING_BASE "-pre" |
||||
|
#endif |
||||
|
|
||||
|
|
||||
|
unsigned int uv_version(void) { |
||||
|
return UV_VERSION; |
||||
|
} |
||||
|
|
||||
|
|
||||
|
const char* uv_version_string(void) { |
||||
|
return UV_VERSION_STRING; |
||||
|
} |
@ -0,0 +1,87 @@ |
|||||
|
date: Thu Mar 28 13:00:39 PDT 2013 |
||||
|
version: 0.10.2 |
||||
|
category: release |
||||
|
title: Node v0.10.2 (Stable) |
||||
|
slug: node-v0-10-2-stable |
||||
|
|
||||
|
2013.03.28, Version 0.10.2 (Stable) |
||||
|
|
||||
|
* npm: Upgrade to 1.2.15 |
||||
|
|
||||
|
* uv: Upgrade to 0.10.3 |
||||
|
|
||||
|
* tls: handle SSL_ERROR_ZERO_RETURN (Fedor Indutny) |
||||
|
|
||||
|
* tls: handle errors before calling C++ methods (Fedor Indutny) |
||||
|
|
||||
|
* tls: remove harmful unnecessary bounds checking (Marcel Laverdet) |
||||
|
|
||||
|
* crypto: make getCiphers() return non-SSL ciphers (Ben Noordhuis) |
||||
|
|
||||
|
* crypto: check randomBytes() size argument (Ben Noordhuis) |
||||
|
|
||||
|
* timers: do not calculate Timeout._when property (Alexey Kupershtokh) |
||||
|
|
||||
|
* timers: fix off-by-one ms error (Alexey Kupershtokh) |
||||
|
|
||||
|
* timers: handle signed int32 overflow in enroll() (Fedor Indutny) |
||||
|
|
||||
|
* stream: Fix stall in Transform under very specific conditions (Gil Pedersen) |
||||
|
|
||||
|
* stream: Handle late 'readable' event listeners (isaacs) |
||||
|
|
||||
|
* stream: Fix early end in Writables on zero-length writes (isaacs) |
||||
|
|
||||
|
* domain: fix domain callback from MakeCallback (Trevor Norris) |
||||
|
|
||||
|
* child_process: don't emit same handle twice (Ben Noordhuis) |
||||
|
|
||||
|
* child_process: fix sending utf-8 to child process (Ben Noordhuis) |
||||
|
|
||||
|
|
||||
|
Source Code: http://nodejs.org/dist/v0.10.2/node-v0.10.2.tar.gz |
||||
|
|
||||
|
Macintosh Installer (Universal): http://nodejs.org/dist/v0.10.2/node-v0.10.2.pkg |
||||
|
|
||||
|
Windows Installer: http://nodejs.org/dist/v0.10.2/node-v0.10.2-x86.msi |
||||
|
|
||||
|
Windows x64 Installer: http://nodejs.org/dist/v0.10.2/x64/node-v0.10.2-x64.msi |
||||
|
|
||||
|
Windows x64 Files: http://nodejs.org/dist/v0.10.2/x64/ |
||||
|
|
||||
|
Linux 32-bit Binary: http://nodejs.org/dist/v0.10.2/node-v0.10.2-linux-x86.tar.gz |
||||
|
|
||||
|
Linux 64-bit Binary: http://nodejs.org/dist/v0.10.2/node-v0.10.2-linux-x64.tar.gz |
||||
|
|
||||
|
Solaris 32-bit Binary: http://nodejs.org/dist/v0.10.2/node-v0.10.2-sunos-x86.tar.gz |
||||
|
|
||||
|
Solaris 64-bit Binary: http://nodejs.org/dist/v0.10.2/node-v0.10.2-sunos-x64.tar.gz |
||||
|
|
||||
|
Other release files: http://nodejs.org/dist/v0.10.2/ |
||||
|
|
||||
|
Website: http://nodejs.org/docs/v0.10.2/ |
||||
|
|
||||
|
Documentation: http://nodejs.org/docs/v0.10.2/api/ |
||||
|
|
||||
|
Shasums: |
||||
|
|
||||
|
``` |
||||
|
860ed25d3e77d4676b5512f87f3f98b6783ee258 node-v0.10.2-darwin-x64.tar.gz |
||||
|
811eb3b66651dfffeaf928496e8eecab5c9304fb node-v0.10.2-darwin-x86.tar.gz |
||||
|
0013be477da5d066471390c9964f796356b48948 node-v0.10.2-linux-x64.tar.gz |
||||
|
97c3a052d833bfc799bc9b748520a15cfb189a58 node-v0.10.2-linux-x86.tar.gz |
||||
|
17bc5bf26af7da790e6b0c4cbb2b73ea1c9f2ed5 node-v0.10.2-sunos-x64.tar.gz |
||||
|
5e02e35cc15ae56953921ad4c8e45b849c736e20 node-v0.10.2-sunos-x86.tar.gz |
||||
|
2adb1bf5919fb8adeaf96edd8a8ed16d71a3f8f8 node-v0.10.2-x86.msi |
||||
|
73ff97a4d2d3bb1f468db2654b5b59a28f868cce node-v0.10.2.pkg |
||||
|
759a05eff48ff0b54e55748012c5c45502f7cecd node-v0.10.2.tar.gz |
||||
|
6c1336a61395747fed20a12c8977a2b2ecf23354 node.exe |
||||
|
f0775d4f649ee9c3d5614fdb26e64bc7d000cd5d node.exp |
||||
|
9860c6eb9062fbdc50b515f4ccab179f74dd3ec8 node.lib |
||||
|
d41d99a3921022533c1760e15447ce3acf050a7d node.pdb |
||||
|
1dbd11a5278831356daca035fe5bbbe1062798b4 x64/node-v0.10.2-x64.msi |
||||
|
d36abd4ecf02c522e8c75fce24eab1ce800d6458 x64/node.exe |
||||
|
295a950fe3c1c3ceb04249474388b891bf2a39ed x64/node.exp |
||||
|
b64eabafc3f9498552b3ea97bd0d922db1f90f75 x64/node.lib |
||||
|
1f31d6c0079e9f2c9a6de3d956649d83ca6e7a25 x64/node.pdb |
||||
|
``` |
@ -0,0 +1,39 @@ |
|||||
|
// Copyright Joyent, Inc. and other Node contributors.
|
||||
|
//
|
||||
|
// Permission is hereby granted, free of charge, to any person obtaining a
|
||||
|
// copy of this software and associated documentation files (the
|
||||
|
// "Software"), to deal in the Software without restriction, including
|
||||
|
// without limitation the rights to use, copy, modify, merge, publish,
|
||||
|
// distribute, sublicense, and/or sell copies of the Software, and to permit
|
||||
|
// persons to whom the Software is furnished to do so, subject to the
|
||||
|
// following conditions:
|
||||
|
//
|
||||
|
// The above copyright notice and this permission notice shall be included
|
||||
|
// in all copies or substantial portions of the Software.
|
||||
|
//
|
||||
|
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
||||
|
// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
|
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
|
||||
|
// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
|
||||
|
// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
|
||||
|
// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
|
||||
|
// USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
|
||||
|
|
||||
|
// Simple tests of most basic domain functionality.
|
||||
|
|
||||
|
var common = require('../common'); |
||||
|
var assert = require('assert'); |
||||
|
|
||||
|
// timeouts call the callback directly from cc, so need to make sure the
|
||||
|
// domain will be used regardless
|
||||
|
setTimeout(function() { |
||||
|
var domain = require('domain'); |
||||
|
var d = domain.create(); |
||||
|
d.run(function() { |
||||
|
process.nextTick(function() { |
||||
|
console.trace('in nexttick', process.domain === d) |
||||
|
assert.equal(process.domain, d); |
||||
|
}); |
||||
|
}); |
||||
|
}); |
@ -0,0 +1,106 @@ |
|||||
|
// Copyright Joyent, Inc. and other Node contributors.
|
||||
|
//
|
||||
|
// Permission is hereby granted, free of charge, to any person obtaining a
|
||||
|
// copy of this software and associated documentation files (the
|
||||
|
// "Software"), to deal in the Software without restriction, including
|
||||
|
// without limitation the rights to use, copy, modify, merge, publish,
|
||||
|
// distribute, sublicense, and/or sell copies of the Software, and to permit
|
||||
|
// persons to whom the Software is furnished to do so, subject to the
|
||||
|
// following conditions:
|
||||
|
//
|
||||
|
// The above copyright notice and this permission notice shall be included
|
||||
|
// in all copies or substantial portions of the Software.
|
||||
|
//
|
||||
|
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
||||
|
// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
|
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
|
||||
|
// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
|
||||
|
// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
|
||||
|
// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
|
||||
|
// USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
|
||||
|
var common = require('../common'); |
||||
|
var assert = require('assert'); |
||||
|
|
||||
|
var Readable = require('stream').Readable; |
||||
|
|
||||
|
(function first() { |
||||
|
// First test, not reading when the readable is added.
|
||||
|
// make sure that read(0) triggers a readable event.
|
||||
|
var r = new Readable({ |
||||
|
highWaterMark: 3 |
||||
|
}); |
||||
|
|
||||
|
r._read = function(n) { |
||||
|
r.push(new Buffer(new Array(n + 1).join('x'))); |
||||
|
}; |
||||
|
|
||||
|
// This triggers a 'readable' event, which is lost.
|
||||
|
r.push(new Buffer('blerg')); |
||||
|
|
||||
|
var caughtReadable = false; |
||||
|
setTimeout(function() { |
||||
|
r.on('readable', function() { |
||||
|
caughtReadable = true; |
||||
|
}); |
||||
|
}); |
||||
|
|
||||
|
process.on('exit', function() { |
||||
|
assert(caughtReadable); |
||||
|
console.log('ok 1'); |
||||
|
}); |
||||
|
})(); |
||||
|
|
||||
|
(function second() { |
||||
|
// second test, make sure that readable is re-emitted if there's
|
||||
|
// already a length, while it IS reading.
|
||||
|
|
||||
|
var r = new Readable({ |
||||
|
highWaterMark: 3 |
||||
|
}); |
||||
|
|
||||
|
r._read = function(n) { |
||||
|
setTimeout(function() { |
||||
|
r.push(new Buffer(new Array(n + 1).join('x'))); |
||||
|
}); |
||||
|
}; |
||||
|
|
||||
|
// This triggers a 'readable' event, which is lost.
|
||||
|
r.push(new Buffer('blerg')); |
||||
|
|
||||
|
var caughtReadable = false; |
||||
|
process.nextTick(function() { |
||||
|
r.on('readable', function() { |
||||
|
caughtReadable = true; |
||||
|
}); |
||||
|
}); |
||||
|
|
||||
|
process.on('exit', function() { |
||||
|
assert(caughtReadable); |
||||
|
console.log('ok 2'); |
||||
|
}); |
||||
|
})(); |
||||
|
|
||||
|
(function third() { |
||||
|
// Third test, not reading when the stream has not passed
|
||||
|
// the highWaterMark but *has* reached EOF.
|
||||
|
var r = new Readable({ |
||||
|
highWaterMark: 30 |
||||
|
}); |
||||
|
|
||||
|
// This triggers a 'readable' event, which is lost.
|
||||
|
r.push(new Buffer('blerg')); |
||||
|
r.push(null); |
||||
|
|
||||
|
var caughtReadable = false; |
||||
|
setTimeout(function() { |
||||
|
r.on('readable', function() { |
||||
|
caughtReadable = true; |
||||
|
}); |
||||
|
}); |
||||
|
|
||||
|
process.on('exit', function() { |
||||
|
assert(caughtReadable); |
||||
|
console.log('ok 3'); |
||||
|
}); |
||||
|
})(); |
@ -0,0 +1,68 @@ |
|||||
|
// Copyright Joyent, Inc. and other Node contributors.
|
||||
|
//
|
||||
|
// Permission is hereby granted, free of charge, to any person obtaining a
|
||||
|
// copy of this software and associated documentation files (the
|
||||
|
// "Software"), to deal in the Software without restriction, including
|
||||
|
// without limitation the rights to use, copy, modify, merge, publish,
|
||||
|
// distribute, sublicense, and/or sell copies of the Software, and to permit
|
||||
|
// persons to whom the Software is furnished to do so, subject to the
|
||||
|
// following conditions:
|
||||
|
//
|
||||
|
// The above copyright notice and this permission notice shall be included
|
||||
|
// in all copies or substantial portions of the Software.
|
||||
|
//
|
||||
|
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
||||
|
// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
|
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
|
||||
|
// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
|
||||
|
// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
|
||||
|
// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
|
||||
|
// USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
|
||||
|
if (!process.versions.openssl) { |
||||
|
console.error('Skipping because node compiled without OpenSSL.'); |
||||
|
process.exit(0); |
||||
|
} |
||||
|
|
||||
|
var common = require('../common'); |
||||
|
var common = require('../common'); |
||||
|
var tls = require('tls'); |
||||
|
var fs = require('fs'); |
||||
|
var assert = require('assert'); |
||||
|
|
||||
|
var options = { |
||||
|
key: fs.readFileSync(common.fixturesDir + '/test_key.pem'), |
||||
|
cert: fs.readFileSync(common.fixturesDir + '/test_cert.pem') |
||||
|
}; |
||||
|
|
||||
|
var gotError = 0, |
||||
|
gotRequest = 0, |
||||
|
connected = 0; |
||||
|
|
||||
|
var server = tls.createServer(options, function(c) { |
||||
|
gotRequest++; |
||||
|
c.on('data', function(data) { |
||||
|
console.log(data.toString()); |
||||
|
}); |
||||
|
|
||||
|
c.on('close', function() { |
||||
|
server.close(); |
||||
|
}); |
||||
|
}).listen(common.PORT, function() { |
||||
|
var c = tls.connect(common.PORT, { rejectUnauthorized: false }, function() { |
||||
|
connected++; |
||||
|
c.pair.ssl.shutdown(); |
||||
|
c.write('123'); |
||||
|
c.destroy(); |
||||
|
}); |
||||
|
|
||||
|
c.once('error', function() { |
||||
|
gotError++; |
||||
|
}); |
||||
|
}); |
||||
|
|
||||
|
process.once('exit', function() { |
||||
|
assert.equal(gotError, 1); |
||||
|
assert.equal(gotRequest, 1); |
||||
|
assert.equal(connected, 1); |
||||
|
}); |
Loading…
Reference in new issue