[tarantool-patches] [PATCH v3 3/4] box-tap: syslog destination test unix socket

Vladimir Davydov vdavydov.dev at gmail.com
Wed Jul 25 19:40:57 MSK 2018


We fold tests in the patch that implements a feature or fixes a bug
whenever possible. Please fold patches 3 and 4 in patch 1.

On Tue, Jul 24, 2018 at 08:11:51PM +0300, Olga Arkhangelskaia wrote:
> @@ -472,5 +472,40 @@ code = [[pcall(box.cfg, {log = 'syslog:identity=tarantool'})
>  ]]
>  test:is(run_script(code), 0, "syslog log configuration")
>  
> +--
> +-- Check syslog socket configuration
> +--
> +code = [[

> +local tap = require('tap')

Not needed.

> +local socket = require('socket')
> +local os = require('os')

> +local test = tap.test("syslog_unix")

Not needed.

> +local log = require('log')
> +local fio = require('fio')
> +
> +path = fio.pathjoin(fio.cwd(), 'log_unix_socket_test.sock')
> +unix_socket = socket('AF_UNIX', 'SOCK_DGRAM',0)

Nit: a space missing between , and 0.

> +unix_socket:bind('unix/', path)

> +socket.tcp_connect('unix', path)

Why?

> +
> +opt = string.format("syslog:server=unix:%s,identity=tarantool", path)
> +res = 1
> +if pcall (box.cfg, {log = opt, log_level = 5}) then

You don't need pcall here - box.cfg() must succeed here.

Also, log_level = 5 by default so you don't need to specify it
explicitly.

> +    log.info("Test socket syslog destination")
> +    buf = unix_socket:read("Test socket syslog destination", 30)
> +    if buf ~= nil then
> +        if buf:match('Test socket syslog destination') then res = 0
> +        else res = 1 end
> +    else
> +        res = 1
> +    end

This looks over-complicated. Can we rewrite it like shown below?

buf = ...
if buf and buf:match(...) then
    res = 0
else
    res = 1
end

> +end
> +
> +unix_socket:close()                                                         
> +os.remove(path) 
> +os.exit(res)
> +]]
> +test:is(run_script(code), 0, "unix socket syslog log configuration")
> +
>  test:check()
>  os.exit(0)



More information about the Tarantool-patches mailing list