From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-lj1-f180.google.com (mail-lj1-f180.google.com [209.85.208.180]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by dev.tarantool.org (Postfix) with ESMTPS id 24EDA45C310 for ; Wed, 3 Jun 2020 01:20:06 +0300 (MSK) Received: by mail-lj1-f180.google.com with SMTP id c17so181639lji.11 for ; Tue, 02 Jun 2020 15:20:06 -0700 (PDT) From: Cyrill Gorcunov Date: Wed, 3 Jun 2020 01:18:14 +0300 Message-Id: <20200602221817.645015-10-gorcunov@gmail.com> In-Reply-To: <20200602221817.645015-1-gorcunov@gmail.com> References: <20200602221817.645015-1-gorcunov@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Subject: [Tarantool-patches] [PATCH v8 09/12] test: logger -- use log module directly List-Id: Tarantool development patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: tml To test if we can setup logging module before the box.cfg{}. Part-of #689 Signed-off-by: Cyrill Gorcunov --- test/app-tap/logger.test.lua | 56 ++++++++++++++++++++++++++++++++++-- 1 file changed, 53 insertions(+), 3 deletions(-) diff --git a/test/app-tap/logger.test.lua b/test/app-tap/logger.test.lua index 222343908..bc301d720 100755 --- a/test/app-tap/logger.test.lua +++ b/test/app-tap/logger.test.lua @@ -1,7 +1,7 @@ #!/usr/bin/env tarantool local test = require('tap').test('log') -test:plan(25) +test:plan(34) -- gh-3946: Assertion failure when using log_format() before box.cfg() local log = require('log') @@ -10,16 +10,66 @@ _, err = pcall(log.log_format, 'json') test:ok(err:find("log_format: json can\'t be used") ~= nil) -- --- Check that Tarantool creates ADMIN session for #! script +-- gh-689: Operate with logger via log module without calling box.cfg{} -- +local json = require('json') local filename = "1.log" + +-- Test json output +log.cfg({log=filename, format='json', level=5}) +local m = "info message" + +local file = io.open(filename) +while file:read() do +end + +log.info(m) +local line = file:read() +local message = json.decode(line) +file:close() + +test:is(type(message), 'table', "(log) json valid in log.info") +test:is(message.level, "INFO", "(log) check type info") +test:is(message.message, m, "(log) check message content") + +-- Test runtime change to plain format +log.log_format('plain') +local file = io.open(filename) +while file:read() do +end +log.info(m) +local line = file:read() +file:close() +test:is(line:sub(-m:len()), m, m) + +-- Test wrong arguments +_, err = pcall(log.cfg, {format = 'unknown'}) +test:ok(err:find("log: \'format\' must be json,plain") ~= nil) + +-- Test that changes in log module are propagated +-- back to the box module correctly +box.cfg{ + log=filename, + log_format='json', + log_level=6, + memtx_memory=107374182, +} +test:is(box.cfg.log_format, 'json', 'box in json format') +test:is(box.cfg.log_level, 6, 'box level 6') +log.cfg({format='plain', level=5}) +test:is(box.cfg.log_format, 'plain', 'box sees plain format') +test:is(box.cfg.log_level, 5, 'box sees level change') + +-- +-- Check that Tarantool creates ADMIN session for #! script +-- local message = "Hello, World!" box.cfg{ log=filename, + log_format='plain', memtx_memory=107374182, } local fio = require('fio') -local json = require('json') local fiber = require('fiber') local file = io.open(filename) while file:read() do -- 2.26.2