From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <vdavydov.dev@gmail.com>
Date: Tue, 31 Jul 2018 16:57:51 +0300
From: Vladimir Davydov <vdavydov.dev@gmail.com>
Subject: Re: [tarantool-patches] [PATCH v4 4/4] box-tap:syslog remote
 destination test
Message-ID: <20180731135751.qa76tpmbpvatt3xq@esperanza>
References: <20180731101833.55671-1-arkholga@tarantool.org>
 <20180731101833.55671-5-arkholga@tarantool.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20180731101833.55671-5-arkholga@tarantool.org>
To: Olga Arkhangelskaia <arkholga@tarantool.org>
Cc: tarantool-patches@freelists.org
List-ID: <tarantool-patches.dev.tarantool.org>

On Tue, Jul 31, 2018 at 01:18:33PM +0300, Olga Arkhangelskaia wrote:
> Adds syslog remote destination test in box-tap.
> Test creates server, sets appropriate log level and redirects logs
> to it. If log level received by the server is the same - test passes.
> If syslogd is not running we use pcall.
> 
> Closes #3487
> ---
>  test/box-tap/cfg.test.lua | 38 +++++++++++++++++++++++++++++++++++++-
>  1 file changed, 37 insertions(+), 1 deletion(-)
> 
> diff --git a/test/box-tap/cfg.test.lua b/test/box-tap/cfg.test.lua
> index 2b1769395..34a6eaa66 100755
> --- a/test/box-tap/cfg.test.lua
> +++ b/test/box-tap/cfg.test.lua
> @@ -6,7 +6,7 @@ local socket = require('socket')
>  local fio = require('fio')
>  local uuid = require('uuid')
>  local msgpack = require('msgpack')
> -test:plan(97)
> +test:plan(98)
>  
>  --------------------------------------------------------------------------------
>  -- Invalid values
> @@ -499,5 +499,41 @@ os.exit(res)
>  ]]
>  test:is(run_script(code), 0, "unix socket syslog log configuration")
>  
> +--
> +-- Check syslog remote configuration
> +--
> +code = [[
> +local socket = require('socket')
> +local log = require('log')
> +
> +addr = '127.0.0.1'
> +port = 1000 + math.random(32768)
> +
> +sc = socket('AF_INET', 'SOCK_DGRAM', 'udp')
> +local attempt = 0
> +while attempt < 10 do
> +    if not sc:bind (addr, port) then
> +        port = 1000 + math.random(32768)
> +        attempt = attempt + 1
> +    else
> +	break

A tab instead of spaces. Please fix indentation.

> +    end
> +end
> +sc:bind(addr, port)
> +
> +local opt = string.format("syslog:server=%s:%u,identity=tarantool", addr, port)
> +local res = 1
> +box.cfg{log = opt, log_level = 5}
> +log.info('Test syslog destination')
> +while (sc:readable(1)) do

The parentheses are redundant.

> +    buf = sc:recv(1000)

I think that a message can get split (at least, theoretically).
Shouldn't you append the result to the buffer instead:

	buf = buf .. sc:recv(1000)

> +    if buf:match('Test syslog destination') then res = 0 end
> +end
> +
> +sc:close()
> +os.exit(res)
> +]]
> +test:is(run_script(code), 0, "remote syslog log configuration")
> +
>  test:check()
>  os.exit(0)