From: AKhatskevich <avkhatskevich@tarantool.org> To: v.shpilevoy@tarantool.org, tarantool-patches@freelists.org Subject: [tarantool-patches] [PATCH] Check self arg passed for router objects Date: Wed, 1 Aug 2018 17:30:46 +0300 [thread overview] Message-ID: <20180801143046.3527-1-avkhatskevich@tarantool.org> (raw) In-Reply-To: <cover.1533054045.git.avkhatskevich@tarantool.org> Raise an exception in case someone calls router like `router.info()` instead of `router:info()`. --- test/multiple_routers/multiple_routers.result | 5 +++++ test/multiple_routers/multiple_routers.test.lua | 3 +++ vshard/router/init.lua | 9 +++++++++ 3 files changed, 17 insertions(+) diff --git a/test/multiple_routers/multiple_routers.result b/test/multiple_routers/multiple_routers.result index 33f4034..389bf9a 100644 --- a/test/multiple_routers/multiple_routers.result +++ b/test/multiple_routers/multiple_routers.result @@ -201,6 +201,11 @@ routers[5]:call(1, 'read', 'do_select', {2}) --- - [[2, 2]] ... +-- Self checker. +util.check_error(router_2.info) +--- +- Use router:info(...) instead of router.info(...) +... _ = test_run:cmd("switch default") --- ... diff --git a/test/multiple_routers/multiple_routers.test.lua b/test/multiple_routers/multiple_routers.test.lua index 6d470e1..2f159c7 100644 --- a/test/multiple_routers/multiple_routers.test.lua +++ b/test/multiple_routers/multiple_routers.test.lua @@ -76,6 +76,9 @@ vshard.router.call(1, 'read', 'do_select', {1}) router_2:call(1, 'read', 'do_select', {2}) routers[5]:call(1, 'read', 'do_select', {2}) +-- Self checker. +util.check_error(router_2.info) + _ = test_run:cmd("switch default") test_run:cmd("stop server router_1") test_run:cmd("cleanup server router_1") diff --git a/vshard/router/init.lua b/vshard/router/init.lua index 128628b..e0a39b2 100644 --- a/vshard/router/init.lua +++ b/vshard/router/init.lua @@ -860,6 +860,15 @@ local router_mt = { } } +-- +-- Wrap self methods with a sanity checker. +-- +local mt_index = {} +for name, func in pairs(router_mt.__index) do + mt_index[name] = util.generate_self_checker("router", name, router_mt, func) +end +router_mt.__index = mt_index + -- Table which represents this module. local module = {} -- 2.14.1
next prev parent reply other threads:[~2018-08-01 14:31 UTC|newest] Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top 2018-07-31 16:25 [tarantool-patches] [PATCH 0/3] multiple routers AKhatskevich 2018-07-31 16:25 ` [tarantool-patches] [PATCH 1/3] Update only vshard part of a cfg on reload AKhatskevich 2018-08-01 18:43 ` [tarantool-patches] " Vladislav Shpilevoy 2018-08-03 20:03 ` Alex Khatskevich 2018-08-06 17:03 ` Vladislav Shpilevoy 2018-08-07 13:19 ` Alex Khatskevich 2018-08-08 11:17 ` Vladislav Shpilevoy 2018-07-31 16:25 ` [tarantool-patches] [PATCH 2/3] Move lua gc to a dedicated module AKhatskevich 2018-08-01 18:43 ` [tarantool-patches] " Vladislav Shpilevoy 2018-08-03 20:04 ` Alex Khatskevich 2018-08-06 17:03 ` Vladislav Shpilevoy 2018-08-08 11:17 ` Vladislav Shpilevoy 2018-07-31 16:25 ` [tarantool-patches] [PATCH 3/3] Introduce multiple routers feature AKhatskevich 2018-08-01 18:43 ` [tarantool-patches] " Vladislav Shpilevoy 2018-08-03 20:05 ` Alex Khatskevich 2018-08-06 17:03 ` Vladislav Shpilevoy 2018-08-07 13:18 ` Alex Khatskevich 2018-08-08 12:28 ` Vladislav Shpilevoy 2018-08-08 14:04 ` Alex Khatskevich 2018-08-08 15:37 ` Vladislav Shpilevoy 2018-08-01 14:30 ` AKhatskevich [this message] 2018-08-03 20:07 ` [tarantool-patches] [PATCH] Refactor config templates AKhatskevich 2018-08-06 15:49 ` [tarantool-patches] " Vladislav Shpilevoy -- strict thread matches above, loose matches on Subject: below -- 2018-07-30 8:56 [tarantool-patches] [PATCH v4] vshard module reload AKhatskevich 2018-08-01 14:07 ` [tarantool-patches] [PATCH] Check self arg passed for router objects AKhatskevich
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20180801143046.3527-1-avkhatskevich@tarantool.org \ --to=avkhatskevich@tarantool.org \ --cc=tarantool-patches@freelists.org \ --cc=v.shpilevoy@tarantool.org \ --subject='Re: [tarantool-patches] [PATCH] Check self arg passed for router objects' \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox