From 54bd77ad53ddcfc9fe6f6ff1a3baa98bcc760b7f Mon Sep 17 00:00:00 2001 From: Yaroslav Lobankov <y.lobankov@tarantool.org> Date: Fri, 28 Oct 2022 12:24:10 +0400 Subject: [PATCH] test: use luatest modules instead of internal ones Some internal modules have been recently copied to luatest repo [1,2,3] and now they can be safely removed, and the corresponding functionality from luatest can be used instead. Affected modules: - test/luatest_helpers/misc.lua - test/luatest_helpers/fiber.lua - test/luatest_helpers/proxy/* [1] https://github.com/tarantool/luatest/pull/247 [2] https://github.com/tarantool/luatest/pull/248 [3] https://github.com/tarantool/luatest/pull/255 Closes tarantool/luatest#238 Closes tarantool/luatest#251 NO_DOC=testing stuff NO_TEST=testing stuff NO_CHANGELOG=testing stuff --- .../gh_7166_wakeup_on_shutdown_fiber_test.lua | 3 +- .../alter_with_compression_test.lua | 5 +- .../error_on_dynamic_cfg_in_load_cfg_test.lua | 3 +- ...h_7005_session_on_commit_rollback_test.lua | 3 +- test/box-luatest/gh_7583_txn_stat_test.lua | 3 +- test/box-luatest/read_view_test.lua | 3 +- test/box-luatest/space_upgrade_test.lua | 5 +- test/box-luatest/transport_test.lua | 7 +- test/box-luatest/wal_ext_test.lua | 3 +- .../gh_6930_mvcc_net_box_iso_test.lua | 3 +- test/luatest_helpers/fiber.lua | 15 -- test/luatest_helpers/misc.lua | 28 ---- test/luatest_helpers/proxy/connection.lua | 145 ------------------ test/luatest_helpers/proxy/proxy.lua | 117 -------------- test/luatest_helpers/server.lua | 4 +- .../election_fencing_test.lua | 2 +- ...7377_bootstrap_connection_failure_test.lua | 2 +- .../replication-luatest/linearizable_test.lua | 5 +- .../gh_7240_abort_yielding_dml_test.lua | 3 +- 19 files changed, 20 insertions(+), 339 deletions(-) delete mode 100644 test/luatest_helpers/fiber.lua delete mode 100644 test/luatest_helpers/misc.lua delete mode 100644 test/luatest_helpers/proxy/connection.lua delete mode 100644 test/luatest_helpers/proxy/proxy.lua diff --git a/test/app-luatest/gh_7166_wakeup_on_shutdown_fiber_test.lua b/test/app-luatest/gh_7166_wakeup_on_shutdown_fiber_test.lua index 40e61a44e5..44cef74427 100644 --- a/test/app-luatest/gh_7166_wakeup_on_shutdown_fiber_test.lua +++ b/test/app-luatest/gh_7166_wakeup_on_shutdown_fiber_test.lua @@ -3,7 +3,6 @@ local g = t.group('gh-7166') -- Check that wake up of the shutdown fiber doesn't crash Tarantool g.test_wakeup_on_shutdown_fiber = function() - local lt_fiber = require('test.luatest_helpers.fiber') - local f = lt_fiber.find_by_name('on_shutdown') + local f = t.tarantool.find_fiber_by_name('on_shutdown') f:wakeup() end diff --git a/test/box-luatest/alter_with_compression_test.lua b/test/box-luatest/alter_with_compression_test.lua index 86338e2e43..307af60ffa 100644 --- a/test/box-luatest/alter_with_compression_test.lua +++ b/test/box-luatest/alter_with_compression_test.lua @@ -1,4 +1,3 @@ -local misc = require('test.luatest_helpers.misc') local server = require('test.luatest_helpers.server') local t = require('luatest') @@ -17,7 +16,7 @@ g.after_all(function(cg) end) g.test_invalid_compression_type_during_space_creation = function(cg) - misc.skip_if_enterprise() + t.tarantool.skip_if_enterprise() cg.server:exec(function(engine, compression) local t = require('luatest') local format = {{ @@ -36,7 +35,7 @@ g.before_test('test_invalid_compression_type_during_setting_format', function(cg end) g.test_invalid_compression_type_during_setting_format = function(cg) - misc.skip_if_enterprise() + t.tarantool.skip_if_enterprise() cg.server:exec(function(compression) local t = require('luatest') local format = {{ diff --git a/test/box-luatest/error_on_dynamic_cfg_in_load_cfg_test.lua b/test/box-luatest/error_on_dynamic_cfg_in_load_cfg_test.lua index 05d0f3bd20..68d8c57143 100644 --- a/test/box-luatest/error_on_dynamic_cfg_in_load_cfg_test.lua +++ b/test/box-luatest/error_on_dynamic_cfg_in_load_cfg_test.lua @@ -1,5 +1,4 @@ local server = require('test.luatest_helpers.server') -local misc = require('test.luatest_helpers.misc') local t = require('luatest') local fio = require('fio') local g = t.group() @@ -13,7 +12,7 @@ g.after_test("test_error_on_dynamic_cfg_in_load_cfg", function() end) g.test_error_on_dynamic_cfg_in_load_cfg = function() - misc.skip_if_enterprise() + t.tarantool.skip_if_enterprise() g.server:start{wait_for_readiness = false} t.helpers.retrying({}, function() local msg = "Community edition does not support WAL extensions" diff --git a/test/box-luatest/gh_7005_session_on_commit_rollback_test.lua b/test/box-luatest/gh_7005_session_on_commit_rollback_test.lua index cf09cfaee5..6714b21d3b 100644 --- a/test/box-luatest/gh_7005_session_on_commit_rollback_test.lua +++ b/test/box-luatest/gh_7005_session_on_commit_rollback_test.lua @@ -1,4 +1,3 @@ -local misc = require('test.luatest_helpers.misc') local server = require('test.luatest_helpers.server') local t = require('luatest') local g = t.group() @@ -63,7 +62,7 @@ end -- Checks session and user in box.on_rollback trigger callback in case -- transaction is rolled back on WAL error. g.test_session_on_wal_error_rollback = function() - misc.skip_if_not_debug() + t.tarantool.skip_if_not_debug() g.server:exec(function() local t = require('luatest') box.session.su('eve', function() diff --git a/test/box-luatest/gh_7583_txn_stat_test.lua b/test/box-luatest/gh_7583_txn_stat_test.lua index 4316f58545..ddbd93d001 100644 --- a/test/box-luatest/gh_7583_txn_stat_test.lua +++ b/test/box-luatest/gh_7583_txn_stat_test.lua @@ -1,4 +1,3 @@ -local misc = require('test.luatest_helpers.misc') local server = require('test.luatest_helpers.server') local t = require('luatest') @@ -131,7 +130,7 @@ g.after_test('test_wal_error', function(cg) end) g.test_wal_error = function(cg) - misc.skip_if_not_debug() + t.tarantool.skip_if_not_debug() cg.server:exec(function() local t = require('luatest') local function stat() diff --git a/test/box-luatest/read_view_test.lua b/test/box-luatest/read_view_test.lua index f95015d803..14c5c9befd 100644 --- a/test/box-luatest/read_view_test.lua +++ b/test/box-luatest/read_view_test.lua @@ -1,4 +1,3 @@ -local misc = require('test.luatest_helpers.misc') local server = require('test.luatest_helpers.server') local t = require('luatest') local g = t.group() @@ -13,7 +12,7 @@ g.after_all = function(cg) end g.test_read_view = function(cg) - misc.skip_if_enterprise() + t.tarantool.skip_if_enterprise() cg.server:exec(function() local t = require('luatest') t.assert_error_msg_equals( diff --git a/test/box-luatest/space_upgrade_test.lua b/test/box-luatest/space_upgrade_test.lua index 4e48dfd0a2..dceb4e75e7 100644 --- a/test/box-luatest/space_upgrade_test.lua +++ b/test/box-luatest/space_upgrade_test.lua @@ -1,4 +1,3 @@ -local misc = require('test.luatest_helpers.misc') local server = require('test.luatest_helpers.server') local t = require('luatest') local g = t.group() @@ -16,7 +15,7 @@ g.after_all = function() end g.test_low_level_api = function() - misc.skip_if_enterprise() + t.tarantool.skip_if_enterprise() g.server:exec(function() local t = require('luatest') t.assert_error_msg_equals( @@ -27,7 +26,7 @@ g.test_low_level_api = function() end g.test_high_level_api = function() - misc.skip_if_enterprise() + t.tarantool.skip_if_enterprise() g.server:exec(function() local t = require('luatest') t.assert_error_msg_equals( diff --git a/test/box-luatest/transport_test.lua b/test/box-luatest/transport_test.lua index a667d196ae..edadc68a02 100644 --- a/test/box-luatest/transport_test.lua +++ b/test/box-luatest/transport_test.lua @@ -1,4 +1,3 @@ -local misc = require('test.luatest_helpers.misc') local net = require('net.box') local server = require('test.luatest_helpers.server') local t = require('luatest') @@ -48,7 +47,7 @@ g.test_net_box = function() end g.test_listen_ssl = function() - misc.skip_if_enterprise() + t.tarantool.skip_if_enterprise() g.server:exec(function() local t = require('luatest') t.assert_error_msg_equals( @@ -58,7 +57,7 @@ g.test_listen_ssl = function() end g.test_replication_ssl = function() - misc.skip_if_enterprise() + t.tarantool.skip_if_enterprise() g.server:exec(function() local t = require('luatest') t.assert_error_msg_equals( @@ -68,7 +67,7 @@ g.test_replication_ssl = function() end g.test_net_box_ssl = function() - misc.skip_if_enterprise() + t.tarantool.skip_if_enterprise() t.assert_error_msg_equals( 'SSL is not available in this build', net.connect, {g.server.net_box_uri, params = {transport = 'ssl'}}) diff --git a/test/box-luatest/wal_ext_test.lua b/test/box-luatest/wal_ext_test.lua index cbaf0d662b..83166a4c37 100644 --- a/test/box-luatest/wal_ext_test.lua +++ b/test/box-luatest/wal_ext_test.lua @@ -1,10 +1,9 @@ -local misc = require('test.luatest_helpers.misc') local server = require('test.luatest_helpers.server') local t = require('luatest') local g = t.group() g.test_walext_unavailable = function() - misc.skip_if_enterprise() + t.tarantool.skip_if_enterprise() g.server = server:new({alias = 'master'}) g.server:start() g.server:exec(function() diff --git a/test/engine-luatest/gh_6930_mvcc_net_box_iso_test.lua b/test/engine-luatest/gh_6930_mvcc_net_box_iso_test.lua index a833c150d5..52e05fd04a 100644 --- a/test/engine-luatest/gh_6930_mvcc_net_box_iso_test.lua +++ b/test/engine-luatest/gh_6930_mvcc_net_box_iso_test.lua @@ -1,4 +1,3 @@ -local misc = require('test.luatest_helpers.misc') local server = require('test.luatest_helpers.server') local t = require('luatest') @@ -25,7 +24,7 @@ g.before_test('test_mvcc_netbox_isolation_level_basics', function(cg) end) g.test_mvcc_netbox_isolation_level_basics = function(cg) - misc.skip_if_not_debug() + t.tarantool.skip_if_not_debug() local t = require('luatest') diff --git a/test/luatest_helpers/fiber.lua b/test/luatest_helpers/fiber.lua deleted file mode 100644 index 9eefb5746a..0000000000 --- a/test/luatest_helpers/fiber.lua +++ /dev/null @@ -1,15 +0,0 @@ -local fiber = require('fiber') - --- Searches for a fiber with the specified name and returns the fiber object -local function find_by_name(name) - for id, f in pairs(fiber.info()) do - if f.name == name then - return fiber.find(id) - end - end - return nil -end - -return { - find_by_name = find_by_name -} diff --git a/test/luatest_helpers/misc.lua b/test/luatest_helpers/misc.lua deleted file mode 100644 index 4ba626039c..0000000000 --- a/test/luatest_helpers/misc.lua +++ /dev/null @@ -1,28 +0,0 @@ -local luatest = require('luatest') -local tarantool = require('tarantool') - --- Returns true if Tarantool build type is Debug. -local function is_debug_build() - return tarantool.build.target:endswith('-Debug') -end - --- Returns true if Tarantool package is Enterprise. -local function is_enterprise_package() - return tarantool.package == 'Tarantool Enterprise' -end - --- Skips a running test unless Tarantool build type is Debug. -local function skip_if_not_debug() - luatest.skip_if(not is_debug_build(), 'build type is not Debug') -end - --- Skips a running test if Tarantool package is Enterprise. -local function skip_if_enterprise() - luatest.skip_if(is_enterprise_package(), 'package is Enterprise') -end - -return { - is_debug_build = is_debug_build, - skip_if_not_debug = skip_if_not_debug, - skip_if_enterprise = skip_if_enterprise, -} diff --git a/test/luatest_helpers/proxy/connection.lua b/test/luatest_helpers/proxy/connection.lua deleted file mode 100644 index 1fd76d8c72..0000000000 --- a/test/luatest_helpers/proxy/connection.lua +++ /dev/null @@ -1,145 +0,0 @@ -local checks = require('checks') -local fiber = require('fiber') -local socket = require('socket') - -local TIMEOUT = 0.001 - -local Connection = { - constructor_checks = { - client_socket = '?table', - server_socket_path = 'string', - process_client = '?table', - process_server = '?table', - }, -} - -function Connection:inherit(object) - setmetatable(object, self) - self.__index = self - return object -end - -function Connection:new(object) - checks('table', self.constructor_checks) - self:inherit(object) - object:initialize() - return object -end - -function Connection:initialize() - self.running = false - self.client_connected = true - self.server_connected = false - self.client_fiber = nil - self.server_fiber = nil - - if self.process_client == nil then - self.process_client = { - pre = nil, - func = self.forward_to_server, - post = self.close_client_socket, - } - end - - if self.process_server == nil then - self.process_server = { - pre = nil, - func = self.forward_to_client, - post = self.close_server_socket, - } - end - - self:connect_server_socket() -end - -function Connection:connect_server_socket() - self.server_socket = socket('PF_UNIX', 'SOCK_STREAM', 0) - if self.server_socket:sysconnect('unix/',self.server_socket_path) == false - then - self.server_socket:close() - self.server_socket = nil - return - end - self.server_socket:nonblock(true) - self.server_connected = true - - self.server_fiber = self:process_socket(self.server_socket, - self.process_server) -end - -function Connection:process_socket(sock, process) - local f = fiber.new(function() - if process.pre ~= nil then process.pre(self) end - - while sock:peer() do - if not self.running then - fiber.sleep(TIMEOUT) - elseif sock:readable(TIMEOUT) then - local request = sock:recv() - if request == nil or #request == 0 then break end - if process.func ~= nil then process.func(self, request) end - end - end - - if process.post ~= nil then process.post(self) end - end) - f:set_joinable(true) - f:name('ProxyConnectionIO') - return f -end - -function Connection:start() - self.running = true - if self.client_fiber == nil or self.client_fiber:status() == 'dead' then - self.client_fiber = self:process_socket(self.client_socket, - self.process_client) - end -end - -function Connection:pause() - self.running = false -end - -function Connection:resume() - self.running = true -end - -function Connection:stop() - self:close_client_socket() - self:close_server_socket() -end - -function Connection:forward_to_server(data) - if not self.server_connected then - self:connect_server_socket() - end - if self.server_connected and self.server_socket:writable() then - self.server_socket:write(data) - end -end - -function Connection:forward_to_client(data) - if self.client_connected and self.client_socket:writable() then - self.client_socket:write(data) - end -end - -function Connection:close_server_socket() - if self.server_connected then - self.server_socket:shutdown(socket.SHUT_RW) - self.server_socket:close() - self.server_connected = false - self.server_fiber:join() - end -end - -function Connection:close_client_socket() - if self.client_connected then - self.client_socket:shutdown(socket.SHUT_RW) - self.client_socket:close() - self.client_connected = false - self.client_fiber:join() - end -end - -return Connection diff --git a/test/luatest_helpers/proxy/proxy.lua b/test/luatest_helpers/proxy/proxy.lua deleted file mode 100644 index a246a9c238..0000000000 --- a/test/luatest_helpers/proxy/proxy.lua +++ /dev/null @@ -1,117 +0,0 @@ -local socket = require('socket') -local fiber = require('fiber') -local checks = require('checks') -local Connection = require('test.luatest_helpers.proxy.connection') -local log = require('log') - -local TIMEOUT = 0.001 -local BACKLOG = 512 - -local Proxy = { - constructor_checks = { - client_socket_path = 'string', - server_socket_path = 'string', - process_client = '?table', - process_server = '?table', - }, -} - -function Proxy:inherit(object) - setmetatable(object, self) - self.__index = self - return object -end - -function Proxy:new(object) - checks('table', self.constructor_checks) - self:inherit(object) - object:initialize() - return object -end - -function Proxy:initialize() - self.connections = {} - self.accept_new_connections = true - self.running = false - - self.client_socket = socket('PF_UNIX', 'SOCK_STREAM', 0) -end - -function Proxy:stop() - self.running = false - self.worker:join() - for _, c in pairs(self.connections) do - c:stop() - end -end - -function Proxy:pause() - self.accept_new_connections = false - for _, c in pairs(self.connections) do - c:pause() - end -end - -function Proxy:resume() - for _, c in pairs(self.connections) do - c:resume() - end - self.accept_new_connections = true -end - -function Proxy:start(opts) - checks('table', {force = '?boolean'}) - if opts ~= nil and opts.force then - os.remove(self.client_socket_path) - end - - if not self.client_socket:bind('unix/', self.client_socket_path) then - log.error("Failed to bind client socket: %s", self.client_socket:error()) - return false - end - - self.client_socket:nonblock(true) - if not self.client_socket:listen(BACKLOG) then - log.error("Failed to listen on client socket: %s", - self.client_socket:error()) - return false - end - - self.running = true - self.worker = fiber.new(function() - while self.running do - if not self.accept_new_connections then - fiber.sleep(TIMEOUT) - goto continue - end - - if not self.client_socket:readable(TIMEOUT) then - goto continue - end - - local client = self.client_socket:accept() - if client == nil then goto continue end - client:nonblock(true) - - local conn = Connection:new({ - client_socket = client, - server_socket_path = self.server_socket_path, - process_client = self.process_client, - process_server = self.process_server, - }) - table.insert(self.connections, conn) - conn:start() - ::continue:: - end - - self.client_socket:shutdown(socket.SHUT_RW) - self.client_socket:close() - os.remove(self.client_socket_path) - end) - self.worker:set_joinable(true) - self.worker:name('ProxyWorker') - - return true -end - -return Proxy diff --git a/test/luatest_helpers/server.lua b/test/luatest_helpers/server.lua index 7c35ac1e03..d7ad6acf7f 100644 --- a/test/luatest_helpers/server.lua +++ b/test/luatest_helpers/server.lua @@ -6,8 +6,6 @@ local fio = require('fio') local fun = require('fun') local json = require('json') local errno = require('errno') --- Full name to avoid loading the built-in misc. -local misc = require('test.luatest_helpers.misc') local checks = require('checks') local luatest = require('luatest') @@ -170,7 +168,7 @@ end -- change in the future. -- WAL delay should already be started before the function is called. function Server:play_wal_until_synchro_queue_is_busy() - luatest.assert(misc.is_debug_build()) + luatest.assert(luatest.tarantool.is_debug_build()) return wait_cond('synchro queue is busy', self, self.exec, self, function() if not box.error.injection.get('ERRINJ_WAL_DELAY') then return false diff --git a/test/replication-luatest/election_fencing_test.lua b/test/replication-luatest/election_fencing_test.lua index 02610e27b6..aff2ea0c0d 100644 --- a/test/replication-luatest/election_fencing_test.lua +++ b/test/replication-luatest/election_fencing_test.lua @@ -299,7 +299,7 @@ g_mode.test_fencing_mode = function(g) replication_timeout = timeout, }) - local proxy = require('test.luatest_helpers.proxy.proxy'):new({ + local proxy = require('luatest.replica_proxy'):new({ client_socket_path = server.build_instance_uri('server_1_proxy'), server_socket_path = server.build_instance_uri('server_1'), }) diff --git a/test/replication-luatest/gh_7377_bootstrap_connection_failure_test.lua b/test/replication-luatest/gh_7377_bootstrap_connection_failure_test.lua index 00d2f209c2..06f9130667 100644 --- a/test/replication-luatest/gh_7377_bootstrap_connection_failure_test.lua +++ b/test/replication-luatest/gh_7377_bootstrap_connection_failure_test.lua @@ -1,7 +1,7 @@ local t = require('luatest') local cluster = require('test.luatest_helpers.cluster') local server = require('test.luatest_helpers.server') -local proxy = require('test.luatest_helpers.proxy.proxy') +local proxy = require('luatest.replica_proxy') local fio = require('fio') local fiber = require('fiber') diff --git a/test/replication-luatest/linearizable_test.lua b/test/replication-luatest/linearizable_test.lua index 5abd54e367..91eb693418 100644 --- a/test/replication-luatest/linearizable_test.lua +++ b/test/replication-luatest/linearizable_test.lua @@ -1,8 +1,7 @@ local t = require('luatest') -local misc = require('test.luatest_helpers.misc') local cluster = require('test.luatest_helpers.cluster') local server = require('test.luatest_helpers.server') -local proxy = require('test.luatest_helpers.proxy.proxy') +local proxy = require('luatest.replica_proxy') local g = t.group('linearizable-read') local fiber = require('fiber') @@ -84,7 +83,7 @@ g.test_wait_others = function(cg) end g.test_timeout = function(cg) - misc.skip_if_not_debug() + t.tarantool.skip_if_not_debug() cg.servers[1]:exec(function() local t = require('luatest') box.error.injection.set('ERRINJ_RELAY_FROM_TX_DELAY', true) diff --git a/test/vinyl-luatest/gh_7240_abort_yielding_dml_test.lua b/test/vinyl-luatest/gh_7240_abort_yielding_dml_test.lua index e78ac444b8..59e656f0dd 100644 --- a/test/vinyl-luatest/gh_7240_abort_yielding_dml_test.lua +++ b/test/vinyl-luatest/gh_7240_abort_yielding_dml_test.lua @@ -1,4 +1,3 @@ -local misc = require('test.luatest_helpers.misc') local server = require('test.luatest_helpers.server') local t = require('luatest') @@ -28,7 +27,7 @@ end) -- because it's in read view. -- g.test_abort_yielding_dml = function(cg) - misc.skip_if_not_debug() + t.tarantool.skip_if_not_debug() cg.server:exec(function() local fiber = require('fiber') local t = require('luatest') -- GitLab