* [tarantool-patches] [PATCH 0/3] box/console: Cleanup and bug fix @ 2019-07-26 22:17 Cyrill Gorcunov 2019-07-26 22:17 ` [tarantool-patches] [PATCH 1/3] box/console: Don't allow arguments in get_default_output Cyrill Gorcunov ` (3 more replies) 0 siblings, 4 replies; 12+ messages in thread From: Cyrill Gorcunov @ 2019-07-26 22:17 UTC (permalink / raw) To: tml; +Cc: Alexander Turenko, Konstantin Osipov, Cyrill Gorcunov In first two patches simply make code smaller and in third patch fix a real bug I catched when started to investigate test migration to lua output. --- The following changes since commit f21a9932293bbbb5f3b6a3c6fa69a5bb3953e4b1: LTO build fails on warning message (2019-07-26 20:52:43 +0300) are available in the Git repository at: git@github.com:cyrillos/tarantool.git console-repl-serpent-5 for you to fetch changes up to dfdfb6d9a67427c39b6f8403c111c61078f68909: box/console: Test for nil value in args directly (2019-07-27 01:13:00 +0300) ---------------------------------------------------------------- Cyrill Gorcunov (3): box/console: Don't allow arguments in get_default_output box/console: Drop redundant status parameter from return box/console: Test for nil value in args directly src/box/lua/console.lua | 33 ++++++++++++++++++--------------- 1 file changed, 18 insertions(+), 15 deletions(-) -- 2.20.1 ^ permalink raw reply [flat|nested] 12+ messages in thread
* [tarantool-patches] [PATCH 1/3] box/console: Don't allow arguments in get_default_output 2019-07-26 22:17 [tarantool-patches] [PATCH 0/3] box/console: Cleanup and bug fix Cyrill Gorcunov @ 2019-07-26 22:17 ` Cyrill Gorcunov 2019-07-28 18:44 ` [tarantool-patches] " Konstantin Osipov 2019-07-26 22:17 ` [tarantool-patches] [PATCH 2/3] box/console: Drop redundant status parameter from return Cyrill Gorcunov ` (2 subsequent siblings) 3 siblings, 1 reply; 12+ messages in thread From: Cyrill Gorcunov @ 2019-07-26 22:17 UTC (permalink / raw) To: tml; +Cc: Alexander Turenko, Konstantin Osipov, Cyrill Gorcunov The function | require('console').get_default_output() requires no arguments. Make it explcicit and print an error otherwise. Part-of #3834 --- src/box/lua/console.lua | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/box/lua/console.lua b/src/box/lua/console.lua index d4f61865c..9258e7bbb 100644 --- a/src/box/lua/console.lua +++ b/src/box/lua/console.lua @@ -115,7 +115,11 @@ local function set_default_output(value) default_output_format["opts"] = opts end -local function get_default_output() +local function get_default_output(...) + local args = ... + if args ~= nil then + error("Arguments provided while prohibited") + end return default_output_format end -- 2.20.1 ^ permalink raw reply [flat|nested] 12+ messages in thread
* [tarantool-patches] Re: [PATCH 1/3] box/console: Don't allow arguments in get_default_output 2019-07-26 22:17 ` [tarantool-patches] [PATCH 1/3] box/console: Don't allow arguments in get_default_output Cyrill Gorcunov @ 2019-07-28 18:44 ` Konstantin Osipov 2019-07-28 21:43 ` Cyrill Gorcunov 0 siblings, 1 reply; 12+ messages in thread From: Konstantin Osipov @ 2019-07-28 18:44 UTC (permalink / raw) To: Cyrill Gorcunov; +Cc: tml, Alexander Turenko * Cyrill Gorcunov <gorcunov@gmail.com> [19/07/27 01:21]: > -local function get_default_output() > +local function get_default_output(...) > + local args = ... I think it's enough to check for a single argument, variadic arguments introduce unnecessary overhead. > + if args ~= nil then > + error("Arguments provided while prohibited") error("This function accepts no arguments") > + end > return default_output_format > end Please add a test case. Otherwise lgtm. -- Konstantin Osipov, Moscow, Russia ^ permalink raw reply [flat|nested] 12+ messages in thread
* [tarantool-patches] Re: [PATCH 1/3] box/console: Don't allow arguments in get_default_output 2019-07-28 18:44 ` [tarantool-patches] " Konstantin Osipov @ 2019-07-28 21:43 ` Cyrill Gorcunov 0 siblings, 0 replies; 12+ messages in thread From: Cyrill Gorcunov @ 2019-07-28 21:43 UTC (permalink / raw) To: Konstantin Osipov; +Cc: tml, Alexander Turenko On Sun, Jul 28, 2019 at 09:44:22PM +0300, Konstantin Osipov wrote: > * Cyrill Gorcunov <gorcunov@gmail.com> [19/07/27 01:21]: > > -local function get_default_output() > > +local function get_default_output(...) > > + local args = ... > > I think it's enough to check for a single argument, variadic > arguments introduce unnecessary overhead. Good point, thanks! > > + if args ~= nil then > > + error("Arguments provided while prohibited") > > error("This function accepts no arguments") OK > > + end > > return default_output_format > > end > > Please add a test case. > Otherwise lgtm. Will rework and resend. ^ permalink raw reply [flat|nested] 12+ messages in thread
* [tarantool-patches] [PATCH 2/3] box/console: Drop redundant status parameter from return 2019-07-26 22:17 [tarantool-patches] [PATCH 0/3] box/console: Cleanup and bug fix Cyrill Gorcunov 2019-07-26 22:17 ` [tarantool-patches] [PATCH 1/3] box/console: Don't allow arguments in get_default_output Cyrill Gorcunov @ 2019-07-26 22:17 ` Cyrill Gorcunov 2019-07-28 18:44 ` [tarantool-patches] " Konstantin Osipov 2019-07-26 22:17 ` [tarantool-patches] [PATCH 3/3] box/console: Test for nil value in args directly Cyrill Gorcunov 2019-08-02 12:59 ` [tarantool-patches] Re: [PATCH 0/3] box/console: Cleanup and bug fix Kirill Yukhin 3 siblings, 1 reply; 12+ messages in thread From: Cyrill Gorcunov @ 2019-07-26 22:17 UTC (permalink / raw) To: tml; +Cc: Alexander Turenko, Konstantin Osipov, Cyrill Gorcunov In output_verify_opts and output_parse we return status variable to point if function processed without error. This is redundant we can simply return either error or nil, which is enough. Part-of #3834 --- src/box/lua/console.lua | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/src/box/lua/console.lua b/src/box/lua/console.lua index 9258e7bbb..0c521b44a 100644 --- a/src/box/lua/console.lua +++ b/src/box/lua/console.lua @@ -72,15 +72,15 @@ end local function output_verify_opts(fmt, opts) if opts == nil then - return true, nil + return nil end if fmt == "lua" then if opts ~= "line" and opts ~= "block" then local msg = 'Wrong option "%s", expecting: line or block.' - return false, msg:format(opts) + return msg:format(opts) end end - return true, nil + return nil end local function output_parse(value) @@ -92,23 +92,23 @@ local function output_parse(value) end for k, _ in pairs(output_handlers) do if k == fmt then - local status, err = output_verify_opts(fmt, opts) - if status ~= true then - return false, err + local err = output_verify_opts(fmt, opts) + if err then + return err end - return true, nil, fmt, opts + return nil, fmt, opts end end local msg = 'Invalid format "%s", supported languages: lua and yaml.' - return false, msg:format(value) + return msg:format(value) end local function set_default_output(value) if value == nil then error("Nil output value passed") end - local status, err, fmt, opts = output_parse(value) - if status ~= true then + local err, fmt, opts = output_parse(value) + if err then error(err) end default_output_format["fmt"] = fmt @@ -180,8 +180,8 @@ local function set_language(storage, value) end local function set_output(storage, value) - local status, err, fmt, opts = output_parse(value) - if status ~= true then + local err, fmt, opts = output_parse(value) + if err then return error(err) end output_save(fmt, opts) -- 2.20.1 ^ permalink raw reply [flat|nested] 12+ messages in thread
* [tarantool-patches] Re: [PATCH 2/3] box/console: Drop redundant status parameter from return 2019-07-26 22:17 ` [tarantool-patches] [PATCH 2/3] box/console: Drop redundant status parameter from return Cyrill Gorcunov @ 2019-07-28 18:44 ` Konstantin Osipov 0 siblings, 0 replies; 12+ messages in thread From: Konstantin Osipov @ 2019-07-28 18:44 UTC (permalink / raw) To: Cyrill Gorcunov; +Cc: tml, Alexander Turenko * Cyrill Gorcunov <gorcunov@gmail.com> [19/07/27 01:21]: > In output_verify_opts and output_parse we return status variable > to point if function processed without error. This is redundant > we can simply return either error or nil, which is enough. lgtm. -- Konstantin Osipov, Moscow, Russia ^ permalink raw reply [flat|nested] 12+ messages in thread
* [tarantool-patches] [PATCH 3/3] box/console: Test for nil value in args directly 2019-07-26 22:17 [tarantool-patches] [PATCH 0/3] box/console: Cleanup and bug fix Cyrill Gorcunov 2019-07-26 22:17 ` [tarantool-patches] [PATCH 1/3] box/console: Don't allow arguments in get_default_output Cyrill Gorcunov 2019-07-26 22:17 ` [tarantool-patches] [PATCH 2/3] box/console: Drop redundant status parameter from return Cyrill Gorcunov @ 2019-07-26 22:17 ` Cyrill Gorcunov 2019-07-28 18:46 ` [tarantool-patches] " Konstantin Osipov 2019-07-28 18:47 ` Konstantin Osipov 2019-08-02 12:59 ` [tarantool-patches] Re: [PATCH 0/3] box/console: Cleanup and bug fix Kirill Yukhin 3 siblings, 2 replies; 12+ messages in thread From: Cyrill Gorcunov @ 2019-07-26 22:17 UTC (permalink / raw) To: tml; +Cc: Alexander Turenko, Konstantin Osipov, Cyrill Gorcunov Instead of allocating a variable for optional args testing we should use dot notation instead. Otherwise it won't work for trivial test case as ``` require('console').set_default_output('lua,block') require('decimal').new('1234.5678') ``` | builtin/box/console.lua:47: expected decimal, number or string as 2 argument and program exits. Part-of #3834 --- src/box/lua/console.lua | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/box/lua/console.lua b/src/box/lua/console.lua index 0c521b44a..64086cf5b 100644 --- a/src/box/lua/console.lua +++ b/src/box/lua/console.lua @@ -41,10 +41,9 @@ output_handlers["yaml"] = function(status, opts, ...) end output_handlers["lua"] = function(status, opts, ...) - local data = ... -- -- Don't print nil if there is no data - if data == nil then + if not ... then return "" end -- -- 2.20.1 ^ permalink raw reply [flat|nested] 12+ messages in thread
* [tarantool-patches] Re: [PATCH 3/3] box/console: Test for nil value in args directly 2019-07-26 22:17 ` [tarantool-patches] [PATCH 3/3] box/console: Test for nil value in args directly Cyrill Gorcunov @ 2019-07-28 18:46 ` Konstantin Osipov 2019-07-28 18:47 ` Konstantin Osipov 1 sibling, 0 replies; 12+ messages in thread From: Konstantin Osipov @ 2019-07-28 18:46 UTC (permalink / raw) To: Cyrill Gorcunov; +Cc: tml, Alexander Turenko * Cyrill Gorcunov <gorcunov@gmail.com> [19/07/27 01:21]: > Instead of allocating a variable for optional args > testing we should use dot notation instead. Otherwise > it won't work for trivial test case as Please remove extra "instead" > > ``` > require('console').set_default_output('lua,block') > require('decimal').new('1234.5678') > ``` > > | builtin/box/console.lua:47: expected decimal, number or string as 2 argument > > and program exits. > > Part-of #3834 > --- > src/box/lua/console.lua | 3 +-- > 1 file changed, 1 insertion(+), 2 deletions(-) > > diff --git a/src/box/lua/console.lua b/src/box/lua/console.lua > index 0c521b44a..64086cf5b 100644 > --- a/src/box/lua/console.lua > +++ b/src/box/lua/console.lua > @@ -41,10 +41,9 @@ output_handlers["yaml"] = function(status, opts, ...) > end > > output_handlers["lua"] = function(status, opts, ...) > - local data = ... > -- > -- Don't print nil if there is no data > - if data == nil then > + if not ... then > return "" > end > -- lgtm -- Konstantin Osipov, Moscow, Russia ^ permalink raw reply [flat|nested] 12+ messages in thread
* [tarantool-patches] Re: [PATCH 3/3] box/console: Test for nil value in args directly 2019-07-26 22:17 ` [tarantool-patches] [PATCH 3/3] box/console: Test for nil value in args directly Cyrill Gorcunov 2019-07-28 18:46 ` [tarantool-patches] " Konstantin Osipov @ 2019-07-28 18:47 ` Konstantin Osipov 2019-07-28 21:42 ` Cyrill Gorcunov 1 sibling, 1 reply; 12+ messages in thread From: Konstantin Osipov @ 2019-07-28 18:47 UTC (permalink / raw) To: Cyrill Gorcunov; +Cc: tml, Alexander Turenko * Cyrill Gorcunov <gorcunov@gmail.com> [19/07/27 01:21]: > Instead of allocating a variable for optional args > testing we should use dot notation instead. Otherwise > it won't work for trivial test case as > > ``` > require('console').set_default_output('lua,block') > require('decimal').new('1234.5678') Actually, could you add a test? then lgtm :) -- Konstantin Osipov, Moscow, Russia ^ permalink raw reply [flat|nested] 12+ messages in thread
* [tarantool-patches] Re: [PATCH 3/3] box/console: Test for nil value in args directly 2019-07-28 18:47 ` Konstantin Osipov @ 2019-07-28 21:42 ` Cyrill Gorcunov 0 siblings, 0 replies; 12+ messages in thread From: Cyrill Gorcunov @ 2019-07-28 21:42 UTC (permalink / raw) To: Konstantin Osipov; +Cc: tml, Alexander Turenko On Sun, Jul 28, 2019 at 09:47:02PM +0300, Konstantin Osipov wrote: > * Cyrill Gorcunov <gorcunov@gmail.com> [19/07/27 01:21]: > > Instead of allocating a variable for optional args > > testing we should use dot notation instead. Otherwise > > it won't work for trivial test case as > > > > ``` > > require('console').set_default_output('lua,block') > > require('decimal').new('1234.5678') > > Actually, could you add a test? then lgtm :) Yes, tests are my first priority now. I've been reading test engine code (the process is not that fast as I thought of) and occasionally spotted the problem. Anyway I'll rework the series and resend together with test. Thanks for review! ^ permalink raw reply [flat|nested] 12+ messages in thread
* [tarantool-patches] Re: [PATCH 0/3] box/console: Cleanup and bug fix 2019-07-26 22:17 [tarantool-patches] [PATCH 0/3] box/console: Cleanup and bug fix Cyrill Gorcunov ` (2 preceding siblings ...) 2019-07-26 22:17 ` [tarantool-patches] [PATCH 3/3] box/console: Test for nil value in args directly Cyrill Gorcunov @ 2019-08-02 12:59 ` Kirill Yukhin 2019-08-02 13:26 ` Cyrill Gorcunov 3 siblings, 1 reply; 12+ messages in thread From: Kirill Yukhin @ 2019-08-02 12:59 UTC (permalink / raw) To: tarantool-patches; +Cc: Alexander Turenko, Konstantin Osipov, Cyrill Gorcunov Hello, On 27 Jul 01:17, Cyrill Gorcunov wrote: > In first two patches simply make code smaller and in > third patch fix a real bug I catched when started to > investigate test migration to lua output. > > --- > > The following changes since commit f21a9932293bbbb5f3b6a3c6fa69a5bb3953e4b1: > > LTO build fails on warning message (2019-07-26 20:52:43 +0300) > > are available in the Git repository at: > > git@github.com:cyrillos/tarantool.git console-repl-serpent-5 > > for you to fetch changes up to dfdfb6d9a67427c39b6f8403c111c61078f68909: > > box/console: Test for nil value in args directly (2019-07-27 01:13:00 +0300) > > ---------------------------------------------------------------- > Cyrill Gorcunov (3): > box/console: Don't allow arguments in get_default_output > box/console: Drop redundant status parameter from return > box/console: Test for nil value in args directly The patchset is pretty much important from stability point of view. So, checked it into master. Cyrill, I still hope you'll prepare tests. -- Regards, Kirill Yukhin ^ permalink raw reply [flat|nested] 12+ messages in thread
* [tarantool-patches] Re: [PATCH 0/3] box/console: Cleanup and bug fix 2019-08-02 12:59 ` [tarantool-patches] Re: [PATCH 0/3] box/console: Cleanup and bug fix Kirill Yukhin @ 2019-08-02 13:26 ` Cyrill Gorcunov 0 siblings, 0 replies; 12+ messages in thread From: Cyrill Gorcunov @ 2019-08-02 13:26 UTC (permalink / raw) To: Kirill Yukhin; +Cc: tarantool-patches, Alexander Turenko, Konstantin Osipov On Fri, Aug 02, 2019 at 03:59:26PM +0300, Kirill Yukhin wrote: > The patchset is pretty much important from stability point of view. So, > checked it into master. > > Cyrill, I still hope you'll prepare tests. Yes, patches are most priority for me now. ^ permalink raw reply [flat|nested] 12+ messages in thread
end of thread, other threads:[~2019-08-02 13:26 UTC | newest] Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2019-07-26 22:17 [tarantool-patches] [PATCH 0/3] box/console: Cleanup and bug fix Cyrill Gorcunov 2019-07-26 22:17 ` [tarantool-patches] [PATCH 1/3] box/console: Don't allow arguments in get_default_output Cyrill Gorcunov 2019-07-28 18:44 ` [tarantool-patches] " Konstantin Osipov 2019-07-28 21:43 ` Cyrill Gorcunov 2019-07-26 22:17 ` [tarantool-patches] [PATCH 2/3] box/console: Drop redundant status parameter from return Cyrill Gorcunov 2019-07-28 18:44 ` [tarantool-patches] " Konstantin Osipov 2019-07-26 22:17 ` [tarantool-patches] [PATCH 3/3] box/console: Test for nil value in args directly Cyrill Gorcunov 2019-07-28 18:46 ` [tarantool-patches] " Konstantin Osipov 2019-07-28 18:47 ` Konstantin Osipov 2019-07-28 21:42 ` Cyrill Gorcunov 2019-08-02 12:59 ` [tarantool-patches] Re: [PATCH 0/3] box/console: Cleanup and bug fix Kirill Yukhin 2019-08-02 13:26 ` Cyrill Gorcunov
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox