|
|
@ -1,4 +1,5 @@ |
|
|
|
require("../common"); |
|
|
|
|
|
|
|
var sys = require("sys"), |
|
|
|
net = require("net"), |
|
|
|
repl = require("repl"), |
|
|
@ -7,8 +8,8 @@ var sys = require("sys"), |
|
|
|
prompt_unix = "node via Unix socket> ", |
|
|
|
prompt_tcp = "node via TCP socket> ", |
|
|
|
server_tcp, server_unix, client_tcp, client_unix, timer; |
|
|
|
|
|
|
|
debug('repl test'); |
|
|
|
|
|
|
|
error('repl test'); |
|
|
|
|
|
|
|
// function for REPL to run
|
|
|
|
invoke_me = function (arg) { |
|
|
@ -19,6 +20,8 @@ function send_expect(list) { |
|
|
|
if (list.length > 0) { |
|
|
|
var cur = list.shift(); |
|
|
|
|
|
|
|
error("sending " + JSON.stringify(cur.send)); |
|
|
|
|
|
|
|
cur.client.expect = cur.expect; |
|
|
|
cur.client.list = list; |
|
|
|
if (cur.send.length > 0) { |
|
|
@ -31,7 +34,7 @@ function tcp_test() { |
|
|
|
server_tcp = net.createServer(function (socket) { |
|
|
|
assert.strictEqual(server_tcp, socket.server); |
|
|
|
assert.strictEqual(server_tcp.type, 'tcp4'); |
|
|
|
|
|
|
|
|
|
|
|
socket.addListener("end", function () { |
|
|
|
socket.end(); |
|
|
|
}); |
|
|
@ -41,7 +44,7 @@ function tcp_test() { |
|
|
|
|
|
|
|
server_tcp.addListener('listening', function () { |
|
|
|
var read_buffer = ""; |
|
|
|
|
|
|
|
|
|
|
|
client_tcp = net.createConnection(PORT); |
|
|
|
|
|
|
|
client_tcp.addListener('connect', function () { |
|
|
@ -50,14 +53,14 @@ function tcp_test() { |
|
|
|
|
|
|
|
send_expect([ |
|
|
|
{ client: client_tcp, send: "", expect: prompt_tcp }, |
|
|
|
{ client: client_tcp, send: "invoke_me(333)", expect: ('\'' + "invoked 333" + '\'\n' + prompt_tcp) }, |
|
|
|
{ client: client_tcp, send: "a += 1", expect: ("12346" + '\n' + prompt_tcp) } |
|
|
|
{ client: client_tcp, send: "invoke_me(333)\n", expect: ('\'' + "invoked 333" + '\'\n' + prompt_tcp) }, |
|
|
|
{ client: client_tcp, send: "a += 1\n", expect: ("12346" + '\n' + prompt_tcp) } |
|
|
|
]); |
|
|
|
}); |
|
|
|
|
|
|
|
client_tcp.addListener('data', function (data) { |
|
|
|
read_buffer += data.asciiSlice(0, data.length); |
|
|
|
sys.puts("TCP data: " + read_buffer + ", expecting " + client_tcp.expect); |
|
|
|
error("TCP data: " + JSON.stringify(read_buffer) + ", expecting " + JSON.stringify(client_tcp.expect)); |
|
|
|
if (read_buffer.indexOf(prompt_tcp) !== -1) { |
|
|
|
assert.strictEqual(client_tcp.expect, read_buffer); |
|
|
|
read_buffer = ""; |
|
|
@ -65,21 +68,21 @@ function tcp_test() { |
|
|
|
send_expect(client_tcp.list); |
|
|
|
} |
|
|
|
else { |
|
|
|
sys.puts("End of TCP test."); |
|
|
|
error("End of TCP test."); |
|
|
|
client_tcp.end(); |
|
|
|
client_unix.end(); |
|
|
|
clearTimeout(timer); |
|
|
|
} |
|
|
|
} |
|
|
|
else { |
|
|
|
sys.puts("didn't see prompt yet, buffering"); |
|
|
|
error("didn't see prompt yet, buffering"); |
|
|
|
} |
|
|
|
}); |
|
|
|
|
|
|
|
|
|
|
|
client_tcp.addListener("error", function (e) { |
|
|
|
throw e; |
|
|
|
}); |
|
|
|
|
|
|
|
|
|
|
|
client_tcp.addListener("close", function () { |
|
|
|
server_tcp.close(); |
|
|
|
}); |
|
|
@ -102,7 +105,7 @@ function unix_test() { |
|
|
|
|
|
|
|
server_unix.addListener('listening', function () { |
|
|
|
var read_buffer = ""; |
|
|
|
|
|
|
|
|
|
|
|
client_unix = net.createConnection(unix_socket_path); |
|
|
|
|
|
|
|
client_unix.addListener('connect', function () { |
|
|
@ -111,31 +114,31 @@ function unix_test() { |
|
|
|
|
|
|
|
send_expect([ |
|
|
|
{ client: client_unix, send: "", expect: prompt_unix }, |
|
|
|
{ client: client_unix, send: "message", expect: ('\'' + message + '\'\n' + prompt_unix) }, |
|
|
|
{ client: client_unix, send: "invoke_me(987)", expect: ('\'' + "invoked 987" + '\'\n' + prompt_unix) }, |
|
|
|
{ client: client_unix, send: "a = 12345", expect: ("12345" + '\n' + prompt_unix) } |
|
|
|
{ client: client_unix, send: "message\n", expect: ('\'' + message + '\'\n' + prompt_unix) }, |
|
|
|
{ client: client_unix, send: "invoke_me(987)\n", expect: ('\'' + "invoked 987" + '\'\n' + prompt_unix) }, |
|
|
|
{ client: client_unix, send: "a = 12345\n", expect: ("12345" + '\n' + prompt_unix) } |
|
|
|
]); |
|
|
|
}); |
|
|
|
|
|
|
|
client_unix.addListener('data', function (data) { |
|
|
|
read_buffer += data.asciiSlice(0, data.length); |
|
|
|
sys.puts("Unix data: " + read_buffer + ", expecting " + client_unix.expect); |
|
|
|
error("Unix data: " + JSON.stringify(read_buffer) + ", expecting " + JSON.stringify(client_unix.expect)); |
|
|
|
if (read_buffer.indexOf(prompt_unix) !== -1) { |
|
|
|
assert.strictEqual(client_unix.expect, read_buffer); |
|
|
|
error("match"); |
|
|
|
read_buffer = ""; |
|
|
|
if (client_unix.list && client_unix.list.length > 0) { |
|
|
|
send_expect(client_unix.list); |
|
|
|
} |
|
|
|
else { |
|
|
|
sys.puts("End of Unix test, running TCP test."); |
|
|
|
} else { |
|
|
|
error("End of Unix test, running TCP test."); |
|
|
|
tcp_test(); |
|
|
|
} |
|
|
|
} |
|
|
|
else { |
|
|
|
sys.puts("didn't see prompt yet, bufering."); |
|
|
|
error("didn't see prompt yet, bufering."); |
|
|
|
} |
|
|
|
}); |
|
|
|
|
|
|
|
|
|
|
|
client_unix.addListener("error", function (e) { |
|
|
|
throw e; |
|
|
|
}); |
|
|
|