diff options
author | Ryan Dahl <ry@tinyclouds.org> | 2011-09-27 12:52:48 -0700 |
---|---|---|
committer | Ryan Dahl <ry@tinyclouds.org> | 2011-09-27 12:52:48 -0700 |
commit | f5bdce9cc0abd5e49674ac5791ba623bc8fda085 (patch) | |
tree | 0b0496e6b49105de3a2d047a6d71e7bc255d2761 /test/disabled | |
parent | 95866a64457ae35b6c04f12dfae53194a431a4b1 (diff) | |
download | node-new-f5bdce9cc0abd5e49674ac5791ba623bc8fda085.tar.gz |
Disable test-dgram-unix.js test-dgram-unix-anon.js test-dgram-multicast.js
Diffstat (limited to 'test/disabled')
-rw-r--r-- | test/disabled/test-dgram-multicast.js | 119 | ||||
-rw-r--r-- | test/disabled/test-dgram-unix-anon.js | 81 | ||||
-rw-r--r-- | test/disabled/test-dgram-unix.js | 75 |
3 files changed, 275 insertions, 0 deletions
diff --git a/test/disabled/test-dgram-multicast.js b/test/disabled/test-dgram-multicast.js new file mode 100644 index 0000000000..f3a546fb20 --- /dev/null +++ b/test/disabled/test-dgram-multicast.js @@ -0,0 +1,119 @@ +// 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. + +// libuv-broken + + +var common = require('../common'); +var assert = require('assert'); + +var dgram = require('dgram'), + util = require('util'), + assert = require('assert'), + Buffer = require('buffer').Buffer; +var LOCAL_BROADCAST_HOST = '224.0.0.1'; +var sendMessages = [ + new Buffer('First message to send'), + new Buffer('Second message to send'), + new Buffer('Third message to send'), + new Buffer('Fourth message to send') +]; + +var listenSockets = []; + +var sendSocket = dgram.createSocket('udp4'); + +sendSocket.on('close', function() { + console.error('sendSocket closed'); +}); + +sendSocket.setBroadcast(true); +sendSocket.setMulticastTTL(1); +sendSocket.setMulticastLoopback(true); + +var i = 0; + +sendSocket.sendNext = function() { + var buf = sendMessages[i++]; + + if (!buf) { + try { sendSocket.close(); } catch (e) {} + return; + } + + sendSocket.send(buf, 0, buf.length, + common.PORT, LOCAL_BROADCAST_HOST, function(err) { + if (err) throw err; + console.error('sent %s to %s', util.inspect(buf.toString()), + LOCAL_BROADCAST_HOST + common.PORT); + process.nextTick(sendSocket.sendNext); + }); +}; + +var listener_count = 0; + +function mkListener() { + var receivedMessages = []; + var listenSocket = dgram.createSocket('udp4'); + listenSocket.addMembership(LOCAL_BROADCAST_HOST); + + listenSocket.on('message', function(buf, rinfo) { + console.error('received %s from %j', util.inspect(buf.toString()), rinfo); + receivedMessages.push(buf); + + if (receivedMessages.length == sendMessages.length) { + listenSocket.dropMembership(LOCAL_BROADCAST_HOST); + process.nextTick(function() { // TODO should be changed to below. + // listenSocket.dropMembership(LOCAL_BROADCAST_HOST, function() { + listenSocket.close(); + }); + } + }); + + listenSocket.on('close', function() { + console.error('listenSocket closed -- checking received messages'); + var count = 0; + receivedMessages.forEach(function(buf) { + for (var i = 0; i < sendMessages.length; ++i) { + if (buf.toString() === sendMessages[i].toString()) { + count++; + break; + } + } + }); + console.error('count %d', count); + //assert.strictEqual(count, sendMessages.length); + }); + + listenSocket.on('listening', function() { + listenSockets.push(listenSocket); + if (listenSockets.length == 3) { + sendSocket.sendNext(); + } + }); + + listenSocket.bind(common.PORT); +} + +mkListener(); +mkListener(); +mkListener(); + diff --git a/test/disabled/test-dgram-unix-anon.js b/test/disabled/test-dgram-unix-anon.js new file mode 100644 index 0000000000..860c68c251 --- /dev/null +++ b/test/disabled/test-dgram-unix-anon.js @@ -0,0 +1,81 @@ +// 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. + +// libuv-broken + + +var common = require('../common'); +var assert = require('assert'); + +var Buffer = require('buffer').Buffer, + fs = require('fs'), + dgram = require('dgram'), server, client, + server_path = '/tmp/dgram_server_sock', + messages_to_send = [ + new Buffer('First message to send'), + new Buffer('Second message to send'), + new Buffer('Third message to send'), + new Buffer('Fourth message to send') + ], + timer; + +server = dgram.createSocket('unix_dgram'); +server.bind(server_path); +server.messages = []; +server.on('message', function(msg, rinfo) { + console.log('server got: ' + msg); + assert.strictEqual(rinfo.address, ''); // anon client sending + server.messages.push(msg.toString()); + if (server.messages.length === messages_to_send.length) { + server.messages.forEach(function(m, i) { + assert.strictEqual(m, messages_to_send[i].toString()); + }); + server.close(); + client.close(); + } +}); +server.on('listening', function() { + console.log('server is listening'); + client = dgram.createSocket('unix_dgram'); + messages_to_send.forEach(function(m) { + client.send(m, 0, m.length, server_path, function(err, bytes) { + if (err) { + console.log('Caught error in client send.'); + throw err; + } + console.log('client wrote ' + bytes + ' bytes.'); + }); + }); + client.on('close', function() { + if (server.fd === null) { + clearTimeout(timer); + } + }); +}); +server.on('close', function() { + if (client.fd === null) { + clearTimeout(timer); + } +}); + +timer = setTimeout(function() { + throw new Error('Timeout'); +}, 500); diff --git a/test/disabled/test-dgram-unix.js b/test/disabled/test-dgram-unix.js new file mode 100644 index 0000000000..bb526696bd --- /dev/null +++ b/test/disabled/test-dgram-unix.js @@ -0,0 +1,75 @@ +// 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. + +// libuv-broken + + +var common = require('../common'); +var assert = require('assert'); + +var fs = require('fs'); +var dgram = require('dgram'); + +// TODO use common.tmpDir here +var serverPath = '/tmp/dgram_server_sock'; +var clientPath = '/tmp/dgram_client_sock'; + +var msgToSend = new Buffer('A message to send'); + +var server = dgram.createSocket('unix_dgram'); +server.on('message', function(msg, rinfo) { + console.log('server got: ' + msg + ' from ' + rinfo.address); + assert.strictEqual(rinfo.address, clientPath); + assert.strictEqual(msg.toString(), msgToSend.toString()); + server.send(msg, 0, msg.length, rinfo.address); +}); + +server.on('listening', function() { + console.log('server is listening'); + + var client = dgram.createSocket('unix_dgram'); + + client.on('message', function(msg, rinfo) { + console.log('client got: ' + msg + ' from ' + rinfo.address); + assert.strictEqual(rinfo.address, serverPath); + assert.strictEqual(msg.toString(), msgToSend.toString()); + client.close(); + server.close(); + }); + + client.on('listening', function() { + console.log('client is listening'); + client.send(msgToSend, 0, msgToSend.length, serverPath, + function(err, bytes) { + if (err) { + console.log('Caught error in client send.'); + throw err; + } + console.log('client wrote ' + bytes + ' bytes.'); + assert.strictEqual(bytes, msgToSend.length); + }); + }); + + + client.bind(clientPath); +}); + +server.bind(serverPath); |