Add tests for some device & address variables
[tinc] / test / integration / net.py
1 #!/usr/bin/env python3
2
3 """Test various network-related configuration variables."""
4
5 from testlib import check, cmd
6 from testlib.test import Test
7
8
9 def test_tunnel_server(ctx: Test, enabled: bool) -> None:
10     """Test TunnelServer."""
11
12     foo, mid, bar = (
13         ctx.node(init=True),
14         ctx.node(init=f"set TunnelServer {'yes' if enabled else 'no'}"),
15         ctx.node(init=True),
16     )
17
18     mid.start()
19
20     for peer in foo, bar:
21         cmd.exchange(peer, mid)
22         peer.cmd("add", "ConnectTo", mid.name)
23         peer.add_script(mid.script_up)
24         peer.start()
25
26     foo[mid.script_up].wait()
27     bar[mid.script_up].wait()
28
29     edge_peers = 2 if enabled else 3
30
31     check.nodes(foo, edge_peers)
32     check.nodes(mid, 3)
33     check.nodes(bar, edge_peers)
34
35
36 with Test("test TunnelServer = yes") as context:
37     test_tunnel_server(context, True)
38
39 with Test("test TunnelServer = no") as context:
40     test_tunnel_server(context, False)