tangled
alpha
login
or
join now
pyrox.dev
/
nixpkgs
0
fork
atom
lol
0
fork
atom
overview
issues
pulls
pipelines
nixos/tests/babeld: migrate to runTest
Part of #386873
Martin Weinelt
1 year ago
9b7b22af
c249dcf2
+179
-178
2 changed files
expand all
collapse all
unified
split
nixos
tests
all-tests.nix
babeld.nix
+1
-1
nixos/tests/all-tests.nix
reviewed
···
190
190
avahi = handleTest ./avahi.nix {};
191
191
avahi-with-resolved = handleTest ./avahi.nix { networkd = true; };
192
192
ayatana-indicators = runTest ./ayatana-indicators.nix;
193
193
-
babeld = handleTest ./babeld.nix {};
193
193
+
babeld = runTest ./babeld.nix;
194
194
bazarr = handleTest ./bazarr.nix {};
195
195
bcachefs = handleTestOn ["x86_64-linux" "aarch64-linux"] ./bcachefs.nix {};
196
196
beanstalkd = handleTest ./beanstalkd.nix {};
+178
-177
nixos/tests/babeld.nix
reviewed
···
1
1
-
import ./make-test-python.nix (
2
2
-
{ pkgs, lib, ... }:
3
3
-
{
4
4
-
name = "babeld";
5
5
-
meta = with pkgs.lib.maintainers; {
6
6
-
maintainers = [ hexa ];
7
7
-
};
1
1
+
{
2
2
+
pkgs,
3
3
+
...
4
4
+
}:
5
5
+
{
6
6
+
name = "babeld";
7
7
+
meta = with pkgs.lib.maintainers; {
8
8
+
maintainers = [ hexa ];
9
9
+
};
8
10
9
9
-
nodes = {
10
10
-
client =
11
11
-
{ pkgs, lib, ... }:
12
12
-
{
13
13
-
virtualisation.vlans = [ 10 ];
11
11
+
nodes = {
12
12
+
client =
13
13
+
{ lib, ... }:
14
14
+
{
15
15
+
virtualisation.vlans = [ 10 ];
14
16
15
15
-
networking = {
16
16
-
useDHCP = false;
17
17
-
interfaces."eth1" = {
18
18
-
ipv4.addresses = lib.mkForce [
19
19
-
{
20
20
-
address = "192.168.10.2";
21
21
-
prefixLength = 24;
22
22
-
}
23
23
-
];
24
24
-
ipv4.routes = lib.mkForce [
25
25
-
{
26
26
-
address = "0.0.0.0";
27
27
-
prefixLength = 0;
28
28
-
via = "192.168.10.1";
29
29
-
}
30
30
-
];
31
31
-
ipv6.addresses = lib.mkForce [
32
32
-
{
33
33
-
address = "2001:db8:10::2";
34
34
-
prefixLength = 64;
35
35
-
}
36
36
-
];
37
37
-
ipv6.routes = lib.mkForce [
38
38
-
{
39
39
-
address = "::";
40
40
-
prefixLength = 0;
41
41
-
via = "2001:db8:10::1";
42
42
-
}
43
43
-
];
44
44
-
};
17
17
+
networking = {
18
18
+
useDHCP = false;
19
19
+
interfaces."eth1" = {
20
20
+
ipv4.addresses = lib.mkForce [
21
21
+
{
22
22
+
address = "192.168.10.2";
23
23
+
prefixLength = 24;
24
24
+
}
25
25
+
];
26
26
+
ipv4.routes = lib.mkForce [
27
27
+
{
28
28
+
address = "0.0.0.0";
29
29
+
prefixLength = 0;
30
30
+
via = "192.168.10.1";
31
31
+
}
32
32
+
];
33
33
+
ipv6.addresses = lib.mkForce [
34
34
+
{
35
35
+
address = "2001:db8:10::2";
36
36
+
prefixLength = 64;
37
37
+
}
38
38
+
];
39
39
+
ipv6.routes = lib.mkForce [
40
40
+
{
41
41
+
address = "::";
42
42
+
prefixLength = 0;
43
43
+
via = "2001:db8:10::1";
44
44
+
}
45
45
+
];
45
46
};
46
47
};
48
48
+
};
47
49
48
48
-
local_router =
49
49
-
{ pkgs, lib, ... }:
50
50
-
{
51
51
-
virtualisation.vlans = [
52
52
-
10
53
53
-
20
54
54
-
];
50
50
+
local_router =
51
51
+
{ lib, ... }:
52
52
+
{
53
53
+
virtualisation.vlans = [
54
54
+
10
55
55
+
20
56
56
+
];
55
57
56
56
-
networking = {
57
57
-
useDHCP = false;
58
58
-
firewall.enable = false;
58
58
+
networking = {
59
59
+
useDHCP = false;
60
60
+
firewall.enable = false;
59
61
60
60
-
interfaces."eth1" = {
61
61
-
ipv4.addresses = lib.mkForce [
62
62
-
{
63
63
-
address = "192.168.10.1";
64
64
-
prefixLength = 24;
65
65
-
}
66
66
-
];
67
67
-
ipv6.addresses = lib.mkForce [
68
68
-
{
69
69
-
address = "2001:db8:10::1";
70
70
-
prefixLength = 64;
71
71
-
}
72
72
-
];
73
73
-
};
62
62
+
interfaces."eth1" = {
63
63
+
ipv4.addresses = lib.mkForce [
64
64
+
{
65
65
+
address = "192.168.10.1";
66
66
+
prefixLength = 24;
67
67
+
}
68
68
+
];
69
69
+
ipv6.addresses = lib.mkForce [
70
70
+
{
71
71
+
address = "2001:db8:10::1";
72
72
+
prefixLength = 64;
73
73
+
}
74
74
+
];
75
75
+
};
74
76
75
75
-
interfaces."eth2" = {
76
76
-
ipv4.addresses = lib.mkForce [
77
77
-
{
78
78
-
address = "192.168.20.1";
79
79
-
prefixLength = 24;
80
80
-
}
81
81
-
];
82
82
-
ipv6.addresses = lib.mkForce [
83
83
-
{
84
84
-
address = "2001:db8:20::1";
85
85
-
prefixLength = 64;
86
86
-
}
87
87
-
];
88
88
-
};
77
77
+
interfaces."eth2" = {
78
78
+
ipv4.addresses = lib.mkForce [
79
79
+
{
80
80
+
address = "192.168.20.1";
81
81
+
prefixLength = 24;
82
82
+
}
83
83
+
];
84
84
+
ipv6.addresses = lib.mkForce [
85
85
+
{
86
86
+
address = "2001:db8:20::1";
87
87
+
prefixLength = 64;
88
88
+
}
89
89
+
];
89
90
};
91
91
+
};
90
92
91
91
-
services.babeld = {
92
92
-
enable = true;
93
93
-
interfaces.eth2 = {
94
94
-
hello-interval = 1;
95
95
-
type = "wired";
96
96
-
};
97
97
-
extraConfig = ''
98
98
-
local-port-readwrite 33123
93
93
+
services.babeld = {
94
94
+
enable = true;
95
95
+
interfaces.eth2 = {
96
96
+
hello-interval = 1;
97
97
+
type = "wired";
98
98
+
};
99
99
+
extraConfig = ''
100
100
+
local-port-readwrite 33123
99
101
100
100
-
import-table 254 # main
101
101
-
export-table 254 # main
102
102
+
import-table 254 # main
103
103
+
export-table 254 # main
102
104
103
103
-
in ip 192.168.10.0/24 deny
104
104
-
in ip 192.168.20.0/24 deny
105
105
-
in ip 2001:db8:10::/64 deny
106
106
-
in ip 2001:db8:20::/64 deny
105
105
+
in ip 192.168.10.0/24 deny
106
106
+
in ip 192.168.20.0/24 deny
107
107
+
in ip 2001:db8:10::/64 deny
108
108
+
in ip 2001:db8:20::/64 deny
107
109
108
108
-
in ip 192.168.30.0/24 allow
109
109
-
in ip 2001:db8:30::/64 allow
110
110
+
in ip 192.168.30.0/24 allow
111
111
+
in ip 2001:db8:30::/64 allow
110
112
111
111
-
in deny
113
113
+
in deny
112
114
113
113
-
redistribute local proto 2
114
114
-
redistribute local deny
115
115
-
'';
116
116
-
};
115
115
+
redistribute local proto 2
116
116
+
redistribute local deny
117
117
+
'';
117
118
};
118
118
-
remote_router =
119
119
-
{ pkgs, lib, ... }:
120
120
-
{
121
121
-
virtualisation.vlans = [
122
122
-
20
123
123
-
30
124
124
-
];
119
119
+
};
120
120
+
remote_router =
121
121
+
{ lib, ... }:
122
122
+
{
123
123
+
virtualisation.vlans = [
124
124
+
20
125
125
+
30
126
126
+
];
125
127
126
126
-
networking = {
127
127
-
useDHCP = false;
128
128
-
firewall.enable = false;
128
128
+
networking = {
129
129
+
useDHCP = false;
130
130
+
firewall.enable = false;
129
131
130
130
-
interfaces."eth1" = {
131
131
-
ipv4.addresses = lib.mkForce [
132
132
-
{
133
133
-
address = "192.168.20.2";
134
134
-
prefixLength = 24;
135
135
-
}
136
136
-
];
137
137
-
ipv6.addresses = lib.mkForce [
138
138
-
{
139
139
-
address = "2001:db8:20::2";
140
140
-
prefixLength = 64;
141
141
-
}
142
142
-
];
143
143
-
};
132
132
+
interfaces."eth1" = {
133
133
+
ipv4.addresses = lib.mkForce [
134
134
+
{
135
135
+
address = "192.168.20.2";
136
136
+
prefixLength = 24;
137
137
+
}
138
138
+
];
139
139
+
ipv6.addresses = lib.mkForce [
140
140
+
{
141
141
+
address = "2001:db8:20::2";
142
142
+
prefixLength = 64;
143
143
+
}
144
144
+
];
145
145
+
};
144
146
145
145
-
interfaces."eth2" = {
146
146
-
ipv4.addresses = lib.mkForce [
147
147
-
{
148
148
-
address = "192.168.30.1";
149
149
-
prefixLength = 24;
150
150
-
}
151
151
-
];
152
152
-
ipv6.addresses = lib.mkForce [
153
153
-
{
154
154
-
address = "2001:db8:30::1";
155
155
-
prefixLength = 64;
156
156
-
}
157
157
-
];
158
158
-
};
147
147
+
interfaces."eth2" = {
148
148
+
ipv4.addresses = lib.mkForce [
149
149
+
{
150
150
+
address = "192.168.30.1";
151
151
+
prefixLength = 24;
152
152
+
}
153
153
+
];
154
154
+
ipv6.addresses = lib.mkForce [
155
155
+
{
156
156
+
address = "2001:db8:30::1";
157
157
+
prefixLength = 64;
158
158
+
}
159
159
+
];
159
160
};
160
160
-
161
161
-
services.babeld = {
162
162
-
enable = true;
163
163
-
interfaces.eth1 = {
164
164
-
hello-interval = 1;
165
165
-
type = "wired";
166
166
-
};
167
167
-
extraConfig = ''
168
168
-
local-port-readwrite 33123
161
161
+
};
169
162
170
170
-
import-table 254 # main
171
171
-
export-table 254 # main
163
163
+
services.babeld = {
164
164
+
enable = true;
165
165
+
interfaces.eth1 = {
166
166
+
hello-interval = 1;
167
167
+
type = "wired";
168
168
+
};
169
169
+
extraConfig = ''
170
170
+
local-port-readwrite 33123
172
171
173
173
-
in ip 192.168.20.0/24 deny
174
174
-
in ip 192.168.30.0/24 deny
175
175
-
in ip 2001:db8:20::/64 deny
176
176
-
in ip 2001:db8:30::/64 deny
172
172
+
import-table 254 # main
173
173
+
export-table 254 # main
177
174
178
178
-
in ip 192.168.10.0/24 allow
179
179
-
in ip 2001:db8:10::/64 allow
175
175
+
in ip 192.168.20.0/24 deny
176
176
+
in ip 192.168.30.0/24 deny
177
177
+
in ip 2001:db8:20::/64 deny
178
178
+
in ip 2001:db8:30::/64 deny
180
179
181
181
-
in deny
180
180
+
in ip 192.168.10.0/24 allow
181
181
+
in ip 2001:db8:10::/64 allow
182
182
183
183
-
redistribute local proto 2
184
184
-
redistribute local deny
185
185
-
'';
186
186
-
};
183
183
+
in deny
187
184
185
185
+
redistribute local proto 2
186
186
+
redistribute local deny
187
187
+
'';
188
188
};
189
189
-
};
190
189
191
191
-
testScript = ''
192
192
-
start_all()
190
190
+
};
191
191
+
};
193
192
194
194
-
local_router.wait_for_unit("babeld.service")
195
195
-
remote_router.wait_for_unit("babeld.service")
193
193
+
testScript = ''
194
194
+
start_all()
196
195
197
197
-
local_router.wait_until_succeeds("ip route get 192.168.30.1")
198
198
-
local_router.wait_until_succeeds("ip route get 2001:db8:30::1")
196
196
+
local_router.wait_for_unit("babeld.service")
197
197
+
remote_router.wait_for_unit("babeld.service")
199
198
200
200
-
remote_router.wait_until_succeeds("ip route get 192.168.10.1")
201
201
-
remote_router.wait_until_succeeds("ip route get 2001:db8:10::1")
199
199
+
local_router.wait_until_succeeds("ip route get 192.168.30.1")
200
200
+
local_router.wait_until_succeeds("ip route get 2001:db8:30::1")
202
201
203
203
-
client.succeed("ping -c1 192.168.30.1")
204
204
-
client.succeed("ping -c1 2001:db8:30::1")
202
202
+
remote_router.wait_until_succeeds("ip route get 192.168.10.1")
203
203
+
remote_router.wait_until_succeeds("ip route get 2001:db8:10::1")
205
204
206
206
-
remote_router.succeed("ping -c1 192.168.10.2")
207
207
-
remote_router.succeed("ping -c1 2001:db8:10::2")
208
208
-
'';
209
209
-
}
210
210
-
)
205
205
+
client.succeed("ping -c1 192.168.30.1")
206
206
+
client.succeed("ping -c1 2001:db8:30::1")
207
207
+
208
208
+
remote_router.succeed("ping -c1 192.168.10.2")
209
209
+
remote_router.succeed("ping -c1 2001:db8:10::2")
210
210
+
'';
211
211
+
}