Tarantool development patches archive
 help / color / mirror / Atom feed
From: Olga Arkhangelskaia <arkholga@tarantool.org>
To: tarantool-patches@dev.tarantool.org
Subject: [Tarantool-patches] [PATCH] test: use grep_log in tests
Date: Wed, 19 Feb 2020 09:44:11 +0300	[thread overview]
Message-ID: <20200219064411.37542-1-arkholga@tarantool.org> (raw)

Refactoring: replace grep_for_broken_lsn with grep_log from test_run.
---
 test/xlog/panic_on_broken_lsn.result   | 50 +++++++++-----------------
 test/xlog/panic_on_broken_lsn.test.lua | 29 ++++-----------
 2 files changed, 22 insertions(+), 57 deletions(-)

diff --git a/test/xlog/panic_on_broken_lsn.result b/test/xlog/panic_on_broken_lsn.result
index 1e62680eb..15b229c76 100644
--- a/test/xlog/panic_on_broken_lsn.result
+++ b/test/xlog/panic_on_broken_lsn.result
@@ -12,36 +12,6 @@ test_run:cleanup_cluster()
 fio = require('fio')
 ---
 ...
-test_run:cmd("setopt delimiter ';'")
----
-- true
-...
-function grep_file_tail(filepath, bytes, pattern)
-    local fh = fio.open(filepath, {'O_RDONLY'})
-    local size = fh:seek(0, 'SEEK_END')
-    if size < bytes then
-        bytes = size
-    end
-    fh:seek(-bytes, 'SEEK_END')
-    local line = fh:read(bytes)
-    fh:close()
-    return string.match(line, pattern)
-end;
----
-...
-function grep_broken_lsn(logpath, lsn)
-    local msg = grep_file_tail(logpath, 256,
-        string.format("LSN for 1 is used twice or COMMIT order is broken: " ..
-                      "confirmed: %d, new: %d, req: ({.*})", lsn, lsn))
-    msg = string.gsub(msg, string.format('lsn: %d, ', lsn), '')
-    return msg
-end;
----
-...
-test_run:cmd("setopt delimiter ''");
----
-- true
-...
 -- Testing case of panic on recovery
 test_run:cmd('create server panic with script="xlog/panic.lua"')
 ---
@@ -97,9 +67,15 @@ test_run:cmd('start server panic with crash_expected=True')
 - false
 ...
 -- Check that log contains the mention of broken LSN and the request printout
-grep_broken_lsn(fio.pathjoin(fio.cwd(), 'panic.log'), 1)
+path = fio.pathjoin(fio.cwd(), 'panic.log')
+---
+...
+str = "LSN for 1 is used twice or COMMIT order is broken: confirmed: 1, new: 1"
 ---
-- '{type: ''REPLACE'', replica_id: 1, space_id: 272, index_id: 0, tuple: ["t0", "v1"]}'
+...
+test_run:grep_log(nil, str, nil, {path = path})~= nil
+---
+- true
 ...
 test_run:cmd('cleanup server panic')
 ---
@@ -164,9 +140,15 @@ box.error.injection.set("ERRINJ_RELAY_BREAK_LSN", -1)
 - ok
 ...
 -- Check that log contains the mention of broken LSN and the request printout
-grep_broken_lsn(fio.pathjoin(fio.cwd(), 'replica.log'), lsn)
+path = fio.pathjoin(fio.cwd(), 'replica.log')
 ---
-- '{type: ''INSERT'', replica_id: 1, space_id: 9000, index_id: 0, tuple: [2, "v1"]}'
+...
+str = string.format("LSN for 1 is used twice or COMMIT order is broken: confirmed: %d, new: %d", lsn, lsn)
+---
+...
+test_run:grep_log(nil, str, nil, {path = path}) ~= nil
+---
+- true
 ...
 test_run:cmd('cleanup server replica')
 ---
diff --git a/test/xlog/panic_on_broken_lsn.test.lua b/test/xlog/panic_on_broken_lsn.test.lua
index 80cccd918..002223ac9 100644
--- a/test/xlog/panic_on_broken_lsn.test.lua
+++ b/test/xlog/panic_on_broken_lsn.test.lua
@@ -5,26 +5,6 @@ test_run = env.new()
 test_run:cleanup_cluster()
 
 fio = require('fio')
-test_run:cmd("setopt delimiter ';'")
-function grep_file_tail(filepath, bytes, pattern)
-    local fh = fio.open(filepath, {'O_RDONLY'})
-    local size = fh:seek(0, 'SEEK_END')
-    if size < bytes then
-        bytes = size
-    end
-    fh:seek(-bytes, 'SEEK_END')
-    local line = fh:read(bytes)
-    fh:close()
-    return string.match(line, pattern)
-end;
-function grep_broken_lsn(logpath, lsn)
-    local msg = grep_file_tail(logpath, 256,
-        string.format("LSN for 1 is used twice or COMMIT order is broken: " ..
-                      "confirmed: %d, new: %d, req: ({.*})", lsn, lsn))
-    msg = string.gsub(msg, string.format('lsn: %d, ', lsn), '')
-    return msg
-end;
-test_run:cmd("setopt delimiter ''");
 
 -- Testing case of panic on recovery
 test_run:cmd('create server panic with script="xlog/panic.lua"')
@@ -47,8 +27,9 @@ fio.unlink(xlogs[#xlogs])
 test_run:cmd('start server panic with crash_expected=True')
 
 -- Check that log contains the mention of broken LSN and the request printout
-grep_broken_lsn(fio.pathjoin(fio.cwd(), 'panic.log'), 1)
-
+path = fio.pathjoin(fio.cwd(), 'panic.log')
+str = "LSN for 1 is used twice or COMMIT order is broken: confirmed: 1, new: 1"
+test_run:grep_log(nil, str, nil, {path = path})~= nil
 test_run:cmd('cleanup server panic')
 test_run:cmd('delete server panic')
 
@@ -78,7 +59,9 @@ test_run:cmd('start server replica with crash_expected=True')
 box.error.injection.set("ERRINJ_RELAY_BREAK_LSN", -1)
 
 -- Check that log contains the mention of broken LSN and the request printout
-grep_broken_lsn(fio.pathjoin(fio.cwd(), 'replica.log'), lsn)
+path = fio.pathjoin(fio.cwd(), 'replica.log')
+str = string.format("LSN for 1 is used twice or COMMIT order is broken: confirmed: %d, new: %d", lsn, lsn)
+test_run:grep_log(nil, str, nil, {path = path}) ~= nil
 
 test_run:cmd('cleanup server replica')
 test_run:cmd('delete server replica')
-- 
2.20.1 (Apple Git-117)

             reply	other threads:[~2020-02-19  6:44 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-02-19  6:44 Olga Arkhangelskaia [this message]
2020-03-04 15:31 ` Alexander Turenko
2020-03-10 11:35   ` Olga Arkhangelskaia
2020-03-16  9:42     ` Alexander Turenko

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=20200219064411.37542-1-arkholga@tarantool.org \
    --to=arkholga@tarantool.org \
    --cc=tarantool-patches@dev.tarantool.org \
    --subject='Re: [Tarantool-patches] [PATCH] test: use grep_log in tests' \
    /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