Вторник, 17 июля 2018, 17:07 +03:00 от Vladimir Davydov <vdavydov.dev@gmail.com>:

On Tue, Jul 17, 2018 at 12:02:50PM +0300, Olga Arkhangelskaia wrote:
> Adds syslog remote destination test in app-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.
>

> Usage: test-run.py syslog

This line is pointless. We know how to run tests :-) Please remove.
ok


>
> Issue: #3487
> ---
> https://github.com/tarantool/tarantool/issues/3487
>
> Branch: OKriw/gh-3487-syslog-conf-dest
> ---
> https://github.com/tarantool/tarantool/tree/OKriw/gh-3487-syslog-conf-dest

Please see my reply to your other patch regarding patch formatting.

> test/app-tap/syslog_remote.test.lua | 37 +++++++++++++++++++++++++++++++++++++
> 1 file changed, 37 insertions(+)
> create mode 100755 test/app-tap/syslog_remote.test.lua

In review to v1 I asked you to fold this test in box-tap/cfg.
Any reason why this couldn't/shouldn't be done?
Sorry, I did not notice that comment. However, why in box-tap/cfg.test.lua and not separately?


>
> diff --git a/test/app-tap/syslog_remote.test.lua b/test/app-tap/syslog_remote.test.lua
> new file mode 100755
> index 000000000..01a75fa64
> --- /dev/null
> +++ b/test/app-tap/syslog_remote.test.lua
> @@ -0,0 +1,37 @@
> +#!/usr/bin/env tarantool
> +
> +local tap = require('tap')
> +local socket = require('socket')
> +local os = require('os')
> +local test = tap.test("syslog_remote")
> +local log = require('log')
> +local errno = require('errno')
> +
> +local addr = '127.0.0.1'
> +local port = 1000 + math.random(32768)

No, that's not what I meant. Using a random port like that won't save
your from conflicts. You should retry until 'bind' succeeds.
And how to choose number of attempts? Ten is enough?


> +
> +test:plan(1)
> +local function start_server()
> + test:diag("Starting server %s:%u", addr, port)
> + local sc = socket('AF_INET', 'SOCK_DGRAM', 'udp')
> + sc:bind(addr, port)
> + return sc
> +end
> +
> +local function find_log_str()

Nit: I'd just inlined both of these functions.

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

Bad indentation. We use 4 spaces in Lua, never tabs. Please configure
your editor appropriately and fix this test.

> +
> +sc = start_server()
> +test:test('syslog_remote',find_log_str(test))
> +sc:close()
> +os.exit(test:check() == true)


--
Olga Arkhangelskaia