[tarantool-patches] Re: [PATCH v2 2/3] Syslog remote destination test

  • From: Vladimir Davydov <vdavydov.dev@xxxxxxxxx>
  • To: Olga Arkhangelskaia <arkholga@xxxxxxxxxxxxx>
  • Date: Tue, 17 Jul 2018 17:07:55 +0300

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.


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?


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.

+
+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)

Other related posts: