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
  • Loading branch information
ligurio committed Jun 29, 2023
1 parent 1d71379 commit 349cc45
Showing 1 changed file with 8 additions and 3 deletions.
11 changes: 8 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,15 @@ local function tarantool_path(arg)
return arg[index + 1]
end

-- Check presence of string 'msg' in a file 'file'.
-- Returns true when string found and false otherwise.
-- Function is not smart as grep_log in a luatest (luatest/server.lua)
-- and reads the whole log file every time, but our log file has a small size
-- so it is ok.
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 +36,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 349cc45

Please sign in to comment.