[Tarantool-patches] [PATCH] Add console.print() alias for box.session.push()
Sergey Voinov
sergeiv at tarantool.org
Thu Dec 5 18:53:06 MSK 2019
Currently, lack of a function like console.print() often confuses users.
This change adds such alias.
Closes: #4393
---
issue: https://github.com/tarantool/tarantool/issues/4393
branch: https://github.com/tarantool/tarantool/compare/servoin/gh-4393-console_print
src/box/lua/console.lua | 11 +++++++++++
test/app-tap/console.test.lua | 25 ++++++++++++++++++++++++-
2 files changed, 35 insertions(+), 1 deletion(-)
diff --git a/src/box/lua/console.lua b/src/box/lua/console.lua
index d4d8ec984..05f8016c4 100644
--- a/src/box/lua/console.lua
+++ b/src/box/lua/console.lua
@@ -821,6 +821,16 @@ local function listen(uri)
return s
end
+--
+-- Alias for box.session.push
+--
+local function print(message, sync)
+ if message == nil then
+ error('Usage: console.print(message, sync)')
+ end
+ return box.session.push(message, sync or box.session.sync())
+end
+
package.loaded['console'] = {
start = start;
eval = eval;
@@ -834,4 +844,5 @@ package.loaded['console'] = {
on_start = on_start;
on_client_disconnect = on_client_disconnect;
completion_handler = internal.completion_handler;
+ print = print;
}
diff --git a/test/app-tap/console.test.lua b/test/app-tap/console.test.lua
index da5c1e71e..e8a4c39d0 100755
--- a/test/app-tap/console.test.lua
+++ b/test/app-tap/console.test.lua
@@ -21,7 +21,7 @@ local EOL = "\n...\n"
test = tap.test("console")
-test:plan(73)
+test:plan(78)
-- Start console and connect to it
local server = console.listen(CONSOLE_SOCKET)
@@ -306,6 +306,29 @@ local res = yaml.decode(client:read(EOL))[1]
test:is_deeply(res, exp_res, 'unknown command')
client:close()
+--
+-- gh-4393: console.print() alias for box.session.push()
+--
+client = socket.tcp_connect("unix/", CONSOLE_SOCKET)
+
+-- console.print, no arguments.
+client:write('console.print()\n')
+test:isnt(string.match(client:read(EOL), 'Usage: console%.print%(message, sync%)'), nil,
+ "error message")
+
+-- console.print, one argument.
+client:write('console.print(200)\n')
+test:is(client:read(EOL), '%TAG !push! tag:tarantool.io/push,2018\n--- 200\n...\n',
+ "pushed message")
+test:is(client:read(EOL), '---\n- true\n...\n', "pushed message")
+
+-- console.print, two arguments.
+client:write('console.print(1, 9223372036854775808ULL)\n')
+test:is(client:read(EOL), '%TAG !push! tag:tarantool.io/push,2018\n--- 1\n...\n',
+ "pushed message")
+test:is(client:read(EOL), '---\n- true\n...\n', "pushed message")
+client:close()
+
server:close()
box.schema.user.drop('test')
--
2.17.1
More information about the Tarantool-patches
mailing list