[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