]> git.ipfire.org Git - thirdparty/knot-resolver.git/commitdiff
tests: sanity check for net.listen() and net.list()
authorPetr Špaček <petr.spacek@nic.cz>
Fri, 20 Dec 2019 14:18:00 +0000 (15:18 +0100)
committerPetr Špaček <petr.spacek@nic.cz>
Fri, 20 Dec 2019 14:18:00 +0000 (15:18 +0100)
tests/config/net.test.lua

index 805d215aed8870dd9460431a33e2ce163aa9bf59..1b693eb8b2cff302641dbc54822ddccaa2e41cf4 100644 (file)
@@ -1,10 +1,33 @@
+local kr_table_len = require('kluautil').kr_table_len
+
+local function test_env_no_listen()
+       -- config tests are executed with env variable KRESD_NO_LISTEN=1
+       -- so net.list() should be an empty table
+       same(kr_table_len(net.list()), 0,
+               "env 'KRESD_NO_LISTEN=1' prevents kresd from listening")
+end
+
 local function test_freebind()
        boom(net.listen, {'192.0.2.1', 50049},
                'net.listen() without freebind should fail')
+       -- TODO: same(kr_table_len(net.list()), 0,
+       --      "net.listen() failure does not modify output from net.list()")
        ok(net.listen('192.0.2.1', 50049, { freebind=true }),
                'net.listen() with freebind succeeds')
+       local net_list = net.list()
+       -- same(list length == 2)
+       same(net_list[1].transport.protocol, 'udp',
+               'net.listen({freebind = true}) without kind starts UDP listener')
+       same(net_list[2].transport.protocol, 'tcp',
+               'net.listen({freebind = true}) without kind starts TCP listener')
+       same(net_list[1].transport.freebind, true,
+               'net.listen({freebind = true}) enables FREEBIND for UDP listener')
+       same(net_list[2].transport.freebind, true,
+               'net.listen({freebind = true}) enables FREEBIND for TCP listener')
+
 end
 
 return {
+       test_env_no_listen,
        test_freebind,
 }