[tarantool-patches] [PATCH v4 4/4] box-tap:syslog remote destination test
Vladimir Davydov
vdavydov.dev at gmail.com
Tue Jul 31 16:57:51 MSK 2018
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)
More information about the Tarantool-patches
mailing list