Skip to content

Commit

Permalink
test: fix flakiness in gh_6128_background_mode_test
Browse files Browse the repository at this point in the history
Test runs an external process with tarantool that writes to a log file.
Then test reads that log file and searches a string with required
message in it (see function check_err_msg). Test was flaky on macOS and
I suspect it was happening due to a high log level - timeout was not
enough to wait message in the log file.

Patch decreases a log level to a default value and replaces io
functions with the similar alternatives in a fio module. Using
fio functions allows to not block fibers.

NO_CHANGELOG=test fix
NO_DOC=test fix

(cherry picked from commit 47380bb)
  • Loading branch information
ligurio authored and igormunkin committed Jun 30, 2023
1 parent e874c47 commit 6381fc2
Showing 1 changed file with 9 additions and 3 deletions.
12 changes: 9 additions & 3 deletions test/app-luatest/gh_6128_background_mode_test.lua
Original file line number Diff line number Diff line change
Expand Up @@ -12,10 +12,16 @@ local function tarantool_path(arg)
return arg[index + 1]
end

-- Check presence of string 'msg' in file 'file'.
-- Returns true when string is found and false otherwise.
-- Function is not as smart as grep_log in a luatest (luatest/server.lua)
-- and reads the whole log file every time, but this log file has a small
-- size so it is ok.
-- https://github.com/tarantool/luatest/blob/89da427f8bb3bb66e01d2a7b5a9370d0428d8c52/luatest/server.lua#L660-L727
local function check_err_msg(file, msg)
local f = io.open(file, "rb")
local f = fio.open(file, {'O_RDONLY', 'O_NONBLOCK'})
t.assert_not_equals(f, nil)
local content = f:read("*all")
local content = f:read(2048)
f:close()
return (string.match(content, msg) and true) or false
end
Expand All @@ -31,7 +37,7 @@ g.before_test("test_background_mode_box_cfg", function()
t.assert_equals(fio.path.exists(g.pid_path), false)

local box_cfg = string.format([[-e box.cfg{
pid_file='%s', background=true, work_dir='%s', log='%s', log_level=7,
pid_file='%s', background=true, work_dir='%s', log='%s',
}]], g.pid_path, g.work_dir, g.log_path)
local cmd = {
TARANTOOL_PATH, box_cfg,
Expand Down

0 comments on commit 6381fc2

Please sign in to comment.