summaryrefslogtreecommitdiff
path: root/test/parallel/test-repl.js
diff options
context:
space:
mode:
authorEvan Lucas <evanlucas@me.com>2016-08-17 09:47:13 -0500
committerEvan Lucas <evanlucas@me.com>2016-08-19 11:48:52 -0500
commit76007079ec866317c0119b1f4526d0f67b3998fc (patch)
tree5dc37255008e8f7de9514e4a7087b5b99839411e /test/parallel/test-repl.js
parent8ff3d61d8ba90fde01827643db3d87ee97f502e6 (diff)
downloadandroid-node-v8-76007079ec866317c0119b1f4526d0f67b3998fc.tar.gz
android-node-v8-76007079ec866317c0119b1f4526d0f67b3998fc.tar.bz2
android-node-v8-76007079ec866317c0119b1f4526d0f67b3998fc.zip
Revert "repl,util: insert carriage returns in output"
This reverts commit fce4b981eacbce0b85a2418d042f1f67d40e9834. This was a breaking change and should have been marked semver-major. The change that was made altered the output of util.format() and util.inspect(). With how much those are used in the wild, this type of change deserves more justification. Fixes: https://github.com/nodejs/node/issues/8138 PR-URL: https://github.com/nodejs/node/pull/8143 Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: James M Snell <jasnell@gmail.com>
Diffstat (limited to 'test/parallel/test-repl.js')
-rw-r--r--test/parallel/test-repl.js147
1 files changed, 71 insertions, 76 deletions
diff --git a/test/parallel/test-repl.js b/test/parallel/test-repl.js
index 5984340b8a..495125f6dc 100644
--- a/test/parallel/test-repl.js
+++ b/test/parallel/test-repl.js
@@ -12,8 +12,8 @@ const prompt_unix = 'node via Unix socket> ';
const prompt_tcp = 'node via TCP socket> ';
const prompt_multiline = '... ';
const prompt_npm = 'npm should be run outside of the ' +
- 'node repl, in your normal shell.\r\n' +
- '(Press Control-D to exit.)\r\n';
+ 'node repl, in your normal shell.\n' +
+ '(Press Control-D to exit.)\n';
const expect_npm = prompt_npm + prompt_unix;
var server_tcp, server_unix, client_tcp, client_unix, replServer;
@@ -37,7 +37,7 @@ function send_expect(list) {
cur.client.expect = cur.expect;
cur.client.list = list;
if (cur.send.length > 0) {
- cur.client.write(cur.send + '\r\n');
+ cur.client.write(cur.send + '\n');
}
}
}
@@ -99,7 +99,7 @@ function error_test() {
run_strict_test = false;
strict_mode_error_test();
} else {
- console.error('End of Error test, running TCP test.\r\n');
+ console.error('End of Error test, running TCP test.\n');
tcp_test();
}
@@ -109,11 +109,6 @@ function error_test() {
});
send_expect([
- // Can handle carriage returns
- { client: client_unix, send: '(function(){return "JungMinu";})()',
- expect: "'JungMinu'\r\n" + prompt_unix },
- { client: client_unix, send: 'const JungMinu="\\r\\nMinwooJung";JungMinu',
- expect: 'MinwooJung' },
// Uncaught error throws and prints out
{ client: client_unix, send: 'throw new Error(\'test error\');',
expect: /^Error: test error/ },
@@ -136,12 +131,12 @@ function error_test() {
{ client: client_unix, send: '`io.js ${"1.0"',
expect: prompt_multiline },
{ client: client_unix, send: '+ ".2"}`',
- expect: `'io.js 1.0.2'\r\n${prompt_unix}` },
+ expect: `'io.js 1.0.2'\n${prompt_unix}` },
// Dot prefix in multiline commands aren't treated as commands
{ client: client_unix, send: '("a"',
expect: prompt_multiline },
{ client: client_unix, send: '.charAt(0))',
- expect: `'a'\r\n${prompt_unix}` },
+ expect: `'a'\n${prompt_unix}` },
// Floating point numbers are not interpreted as REPL commands.
{ client: client_unix, send: '.1234',
expect: '0.1234' },
@@ -187,7 +182,7 @@ function error_test() {
{ client: client_unix, send: 'function blah() { return 1; }',
expect: prompt_unix },
{ client: client_unix, send: 'blah()',
- expect: '1\r\n' + prompt_unix },
+ expect: '1\n' + prompt_unix },
// Functions should not evaluate twice (#2773)
{ client: client_unix, send: 'var I = [1,2,3,function() {}]; I.pop()',
expect: '[Function]' },
@@ -211,13 +206,13 @@ function error_test() {
{ client: client_unix, send: '2)',
expect: prompt_multiline },
{ client: client_unix, send: ')',
- expect: 'undefined\r\n' + prompt_unix },
+ expect: 'undefined\n' + prompt_unix },
// npm prompt error message
{ client: client_unix, send: 'npm install foobar',
expect: expect_npm },
- { client: client_unix, send: '(function() {\r\n\r\nreturn 1;\r\n})()',
+ { client: client_unix, send: '(function() {\n\nreturn 1;\n})()',
expect: '1' },
- { client: client_unix, send: '{\r\n\r\na: 1\r\n}',
+ { client: client_unix, send: '{\n\na: 1\n}',
expect: '{ a: 1 }' },
{ client: client_unix, send: 'url.format("http://google.com")',
expect: 'http://google.com/' },
@@ -226,18 +221,18 @@ function error_test() {
// this makes sure that we don't print `undefined` when we actually print
// the error message
{ client: client_unix, send: '.invalid_repl_command',
- expect: 'Invalid REPL keyword\r\n' + prompt_unix },
+ expect: 'Invalid REPL keyword\n' + prompt_unix },
// this makes sure that we don't crash when we use an inherited property as
// a REPL command
{ client: client_unix, send: '.toString',
- expect: 'Invalid REPL keyword\r\n' + prompt_unix },
+ expect: 'Invalid REPL keyword\n' + prompt_unix },
// fail when we are not inside a String and a line continuation is used
{ client: client_unix, send: '[] \\',
expect: /\bSyntaxError: Invalid or unexpected token/ },
// do not fail when a String is created with line continuation
- { client: client_unix, send: '\'the\\\r\nfourth\\\r\neye\'',
+ { client: client_unix, send: '\'the\\\nfourth\\\neye\'',
expect: prompt_multiline + prompt_multiline +
- '\'thefourtheye\'\r\n' + prompt_unix },
+ '\'thefourtheye\'\n' + prompt_unix },
// Don't fail when a partial String is created and line continuation is used
// with whitespace characters at the end of the string. We are to ignore it.
// This test is to make sure that we properly remove the whitespace
@@ -245,99 +240,99 @@ function error_test() {
{ client: client_unix, send: ' \t .break \t ',
expect: prompt_unix },
// multiline strings preserve whitespace characters in them
- { client: client_unix, send: '\'the \\\r\n fourth\t\t\\\r\n eye \'',
+ { client: client_unix, send: '\'the \\\n fourth\t\t\\\n eye \'',
expect: prompt_multiline + prompt_multiline +
- '\'the fourth\\t\\t eye \'\r\n' + prompt_unix },
+ '\'the fourth\\t\\t eye \'\n' + prompt_unix },
// more than one multiline strings also should preserve whitespace chars
- { client: client_unix, send: '\'the \\\r\n fourth\' + \'\t\t\\\r\n eye \'',
+ { client: client_unix, send: '\'the \\\n fourth\' + \'\t\t\\\n eye \'',
expect: prompt_multiline + prompt_multiline +
- '\'the fourth\\t\\t eye \'\r\n' + prompt_unix },
+ '\'the fourth\\t\\t eye \'\n' + prompt_unix },
// using REPL commands within a string literal should still work
- { client: client_unix, send: '\'\\\r\n.break',
+ { client: client_unix, send: '\'\\\n.break',
expect: prompt_unix },
// using REPL command "help" within a string literal should still work
- { client: client_unix, send: '\'thefourth\\\r\n.help\r\neye\'',
+ { client: client_unix, send: '\'thefourth\\\n.help\neye\'',
expect: /'thefourtheye'/ },
// empty lines in the REPL should be allowed
- { client: client_unix, send: '\r\n\r\r\n\r\r\n',
+ { client: client_unix, send: '\n\r\n\r\n',
expect: prompt_unix + prompt_unix + prompt_unix },
// empty lines in the string literals should not affect the string
- { client: client_unix, send: '\'the\\\r\n\\\r\nfourtheye\'\r\n',
+ { client: client_unix, send: '\'the\\\n\\\nfourtheye\'\n',
expect: prompt_multiline + prompt_multiline +
- '\'thefourtheye\'\r\n' + prompt_unix },
+ '\'thefourtheye\'\n' + prompt_unix },
// Regression test for https://github.com/nodejs/node/issues/597
{ client: client_unix,
- send: '/(.)(.)(.)(.)(.)(.)(.)(.)(.)/.test(\'123456789\')\r\n',
- expect: `true\r\n${prompt_unix}` },
+ send: '/(.)(.)(.)(.)(.)(.)(.)(.)(.)/.test(\'123456789\')\n',
+ expect: `true\n${prompt_unix}` },
// the following test's result depends on the RegEx's match from the above
{ client: client_unix,
- send: 'RegExp.$1\r\nRegExp.$2\r\nRegExp.$3\r\nRegExp.$4\r\nRegExp.$5\r\n' +
- 'RegExp.$6\r\nRegExp.$7\r\nRegExp.$8\r\nRegExp.$9\r\n',
- expect: ['\'1\'\r\n', '\'2\'\r\n', '\'3\'\r\n', '\'4\'\r\n', '\'5\'\r\n', '\'6\'\r\n',
- '\'7\'\r\n', '\'8\'\r\n', '\'9\'\r\n'].join(`${prompt_unix}`) },
+ send: 'RegExp.$1\nRegExp.$2\nRegExp.$3\nRegExp.$4\nRegExp.$5\n' +
+ 'RegExp.$6\nRegExp.$7\nRegExp.$8\nRegExp.$9\n',
+ expect: ['\'1\'\n', '\'2\'\n', '\'3\'\n', '\'4\'\n', '\'5\'\n', '\'6\'\n',
+ '\'7\'\n', '\'8\'\n', '\'9\'\n'].join(`${prompt_unix}`) },
// regression tests for https://github.com/nodejs/node/issues/2749
- { client: client_unix, send: 'function x() {\r\nreturn \'\\r\\n\';\r\n }',
+ { client: client_unix, send: 'function x() {\nreturn \'\\n\';\n }',
expect: prompt_multiline + prompt_multiline +
- 'undefined\r\n' + prompt_unix },
- { client: client_unix, send: 'function x() {\r\nreturn \'\\\\\';\r\n }',
+ 'undefined\n' + prompt_unix },
+ { client: client_unix, send: 'function x() {\nreturn \'\\\\\';\n }',
expect: prompt_multiline + prompt_multiline +
- 'undefined\r\n' + prompt_unix },
+ 'undefined\n' + prompt_unix },
// regression tests for https://github.com/nodejs/node/issues/3421
- { client: client_unix, send: 'function x() {\r\n//\'\r\n }',
+ { client: client_unix, send: 'function x() {\n//\'\n }',
expect: prompt_multiline + prompt_multiline +
- 'undefined\r\n' + prompt_unix },
- { client: client_unix, send: 'function x() {\r\n//"\r\n }',
+ 'undefined\n' + prompt_unix },
+ { client: client_unix, send: 'function x() {\n//"\n }',
expect: prompt_multiline + prompt_multiline +
- 'undefined\r\n' + prompt_unix },
- { client: client_unix, send: 'function x() {//\'\r\n }',
- expect: prompt_multiline + 'undefined\r\n' + prompt_unix },
- { client: client_unix, send: 'function x() {//"\r\n }',
- expect: prompt_multiline + 'undefined\r\n' + prompt_unix },
- { client: client_unix, send: 'function x() {\r\nvar i = "\'";\r\n }',
+ 'undefined\n' + prompt_unix },
+ { client: client_unix, send: 'function x() {//\'\n }',
+ expect: prompt_multiline + 'undefined\n' + prompt_unix },
+ { client: client_unix, send: 'function x() {//"\n }',
+ expect: prompt_multiline + 'undefined\n' + prompt_unix },
+ { client: client_unix, send: 'function x() {\nvar i = "\'";\n }',
expect: prompt_multiline + prompt_multiline +
- 'undefined\r\n' + prompt_unix },
+ 'undefined\n' + prompt_unix },
{ client: client_unix, send: 'function x(/*optional*/) {}',
- expect: 'undefined\r\n' + prompt_unix },
+ expect: 'undefined\n' + prompt_unix },
{ client: client_unix, send: 'function x(/* // 5 */) {}',
- expect: 'undefined\r\n' + prompt_unix },
+ expect: 'undefined\n' + prompt_unix },
{ client: client_unix, send: '// /* 5 */',
- expect: 'undefined\r\n' + prompt_unix },
+ expect: 'undefined\n' + prompt_unix },
{ client: client_unix, send: '"//"',
- expect: '\'//\'\r\n' + prompt_unix },
+ expect: '\'//\'\n' + prompt_unix },
{ client: client_unix, send: '"data /*with*/ comment"',
- expect: '\'data /*with*/ comment\'\r\n' + prompt_unix },
+ expect: '\'data /*with*/ comment\'\n' + prompt_unix },
{ client: client_unix, send: 'function x(/*fn\'s optional params*/) {}',
- expect: 'undefined\r\n' + prompt_unix },
- { client: client_unix, send: '/* \'\r\n"\r\n\'"\'\r\n*/',
- expect: 'undefined\r\n' + prompt_unix },
+ expect: 'undefined\n' + prompt_unix },
+ { client: client_unix, send: '/* \'\n"\n\'"\'\n*/',
+ expect: 'undefined\n' + prompt_unix },
// REPL should get a normal require() function, not one that allows
// access to internal modules without the --expose_internals flag.
{ client: client_unix, send: 'require("internal/repl")',
expect: /^Error: Cannot find module 'internal\/repl'/ },
// REPL should handle quotes within regexp literal in multiline mode
- { client: client_unix, send: "function x(s) {\r\nreturn s.replace(/'/,'');\r\n}",
+ { client: client_unix, send: "function x(s) {\nreturn s.replace(/'/,'');\n}",
expect: prompt_multiline + prompt_multiline +
- 'undefined\r\n' + prompt_unix },
- { client: client_unix, send: "function x(s) {\r\nreturn s.replace(/\'/,'');\r\n}",
+ 'undefined\n' + prompt_unix },
+ { client: client_unix, send: "function x(s) {\nreturn s.replace(/\'/,'');\n}",
expect: prompt_multiline + prompt_multiline +
- 'undefined\r\n' + prompt_unix },
- { client: client_unix, send: 'function x(s) {\r\nreturn s.replace(/"/,"");\r\n}',
+ 'undefined\n' + prompt_unix },
+ { client: client_unix, send: 'function x(s) {\nreturn s.replace(/"/,"");\n}',
expect: prompt_multiline + prompt_multiline +
- 'undefined\r\n' + prompt_unix },
- { client: client_unix, send: 'function x(s) {\r\nreturn s.replace(/.*/,"");\r\n}',
+ 'undefined\n' + prompt_unix },
+ { client: client_unix, send: 'function x(s) {\nreturn s.replace(/.*/,"");\n}',
expect: prompt_multiline + prompt_multiline +
- 'undefined\r\n' + prompt_unix },
+ 'undefined\n' + prompt_unix },
{ client: client_unix, send: '{ var x = 4; }',
- expect: 'undefined\r\n' + prompt_unix },
+ expect: 'undefined\n' + prompt_unix },
// Illegal token is not recoverable outside string literal, RegExp literal,
// or block comment. https://github.com/nodejs/node/issues/3611
{ client: client_unix, send: 'a = 3.5e',
expect: /\bSyntaxError: Invalid or unexpected token/ },
// Mitigate https://github.com/nodejs/node/issues/548
{ client: client_unix, send: 'function name(){ return "node"; };name()',
- expect: "'node'\r\n" + prompt_unix },
+ expect: "'node'\n" + prompt_unix },
{ client: client_unix, send: 'function name(){ return "nodejs"; };name()',
- expect: "'nodejs'\r\n" + prompt_unix },
+ expect: "'nodejs'\n" + prompt_unix },
// Avoid emitting repl:line-number for SyntaxError
{ client: client_unix, send: 'a = 3.5e',
expect: /^(?!repl)/ },
@@ -371,12 +366,12 @@ function tcp_test() {
{ client: client_tcp, send: '',
expect: prompt_tcp },
{ client: client_tcp, send: 'invoke_me(333)',
- expect: ('\'' + 'invoked 333' + '\'\r\n' + prompt_tcp) },
+ expect: ('\'' + 'invoked 333' + '\'\n' + prompt_tcp) },
{ client: client_tcp, send: 'a += 1',
- expect: ('12346' + '\r\n' + prompt_tcp) },
+ expect: ('12346' + '\n' + prompt_tcp) },
{ client: client_tcp,
send: 'require(' + JSON.stringify(moduleFilename) + ').number',
- expect: ('42' + '\r\n' + prompt_tcp) }
+ expect: ('42' + '\n' + prompt_tcp) }
]);
});
@@ -391,7 +386,7 @@ function tcp_test() {
if (client_tcp.list && client_tcp.list.length > 0) {
send_expect(client_tcp.list);
} else {
- console.error('End of TCP test.\r\n');
+ console.error('End of TCP test.\n');
clean_up();
}
} else {
@@ -440,13 +435,13 @@ function unix_test() {
{ client: client_unix, send: '',
expect: prompt_unix },
{ client: client_unix, send: 'message',
- expect: ('\'' + message + '\'\r\n' + prompt_unix) },
+ expect: ('\'' + message + '\'\n' + prompt_unix) },
{ client: client_unix, send: 'invoke_me(987)',
- expect: ('\'' + 'invoked 987' + '\'\r\n' + prompt_unix) },
+ expect: ('\'' + 'invoked 987' + '\'\n' + prompt_unix) },
{ client: client_unix, send: 'a = 12345',
- expect: ('12345' + '\r\n' + prompt_unix) },
+ expect: ('12345' + '\n' + prompt_unix) },
{ client: client_unix, send: '{a:1}',
- expect: ('{ a: 1 }' + '\r\n' + prompt_unix) }
+ expect: ('{ a: 1 }' + '\n' + prompt_unix) }
]);
});
@@ -461,7 +456,7 @@ function unix_test() {
if (client_unix.list && client_unix.list.length > 0) {
send_expect(client_unix.list);
} else {
- console.error('End of Unix test, running Error test.\r\n');
+ console.error('End of Unix test, running Error test.\n');
process.nextTick(error_test);
}
} else {