]>
git.ipfire.org Git - thirdparty/pdns.git/blob - regression-tests.dnsdist/test_NetworkBindings.py
7 class TestNetworkEndpointConfig(unittest
.TestCase
):
9 def checkDNSDistExitCode(self
, configTemplate
, expectedCode
, clientMode
=False, verboseMode
=False):
10 conffile
= 'configs/dnsdist_TestNetworkEndpointConfig.conf'
11 with
open(conffile
, 'w') as conf
:
12 conf
.write("-- Autogenerated by dnsdisttests.py\n")
13 conf
.write(configTemplate
)
15 dnsdistcmd
= [os
.environ
['DNSDISTBIN'], '-C', conffile
, '--check-config']
17 dnsdistcmd
.append('-c')
19 dnsdistcmd
.append('-v')
24 output
= subprocess
.check_output(dnsdistcmd
, stderr
=subprocess
.STDOUT
, close_fds
=True)
26 except subprocess
.CalledProcessError
as exc
:
28 returnCode
= exc
.returncode
31 self
.assertEqual(returnCode
, expectedCode
)
33 def testNonExistingEndpoint(self
):
35 NetworkBindings: Non existing endpoint
38 newServer{address="127.0.0.1:53"}
39 local endpoint = newNetworkEndpoint('/this/path/does/not/exist')
40 if endpoint == nil then
43 if endpoint:isValid() then
46 if endpoint:send('test') then
52 self
.checkDNSDistExitCode(configTemplate
, 0)
54 def testClientMode(self
):
56 NetworkBindings: Client mode
59 newServer{address="127.0.0.1:53"}
60 local endpoint = newNetworkEndpoint('/this/path/does/not/exist')
61 if endpoint == nil then
64 if endpoint:isValid() then
67 if endpoint:send('test') then
70 local listener = newNetworkListener()
71 if listener == nil then
75 local function callback(_, _, _)
77 if listener:addUnixListeningEndpoint('/path', 1, callback) then
84 self
.checkDNSDistExitCode(configTemplate
, 0, clientMode
=True)
86 def testGetResolvers(self
):
88 NetworkBindings: getResolvers
91 newServer{address="127.0.0.1:53"}
92 local resolvers = getResolvers('resolv.conf.sample')
93 if #resolvers ~= 2 then
96 if resolvers[1] ~= '9.9.9.9' then
99 if resolvers[2] ~= '2620:fe::fe' then
105 self
.checkDNSDistExitCode(configTemplate
, 0, clientMode
=True)
107 def testCommunication(self
):
109 NetworkBindings: Communication
112 newServer{address="127.0.0.1:53"}
113 local listener = newNetworkListener()
114 if listener == nil then
119 local function callback(id, dgram, _)
120 -- this function will never get called because we are holding the Lua lock
123 if not listener:addUnixListeningEndpoint('/tmp/dnsdist.network-bindings.test', 1, callback) then
128 local endpoint = newNetworkEndpoint('/tmp/dnsdist.network-bindings.test')
129 if endpoint == nil then
132 if not endpoint:isValid() then
135 if not endpoint:send('test') then
141 self
.checkDNSDistExitCode(configTemplate
, 0)