0
0
Fork 0
mirror of https://github.com/NixOS/nixpkgs.git synced 2025-07-14 14:10:33 +03:00
nixpkgs/nixos/tests/getaddrinfo.nix
2025-06-10 20:08:58 +08:00

68 lines
1.5 KiB
Nix

{ lib, ... }:
let
ip4 = "192.0.2.1";
ip6 = "2001:db8::1";
precedence = {
"::1/128" = 50;
"::/0" = 40;
"2002::/16" = 30;
"::/96" = 20;
"::ffff:0:0/96" = 100;
};
in
{
name = "getaddrinfo";
meta.maintainers = with lib.maintainers; [ moraxyc ];
nodes.server = _: {
networking.firewall.enable = false;
networking.useDHCP = false;
services.dnsmasq = {
enable = true;
settings = {
address = [
"/nixos.test/${ip4}"
"/nixos.test/${ip6}"
];
};
};
};
nodes.client =
{ pkgs, nodes, ... }:
{
networking.nameservers = [
(lib.head nodes.server.networking.interfaces.eth1.ipv4.addresses).address
];
networking.getaddrinfo = {
reload = true;
inherit precedence;
};
networking.useDHCP = false;
environment.systemPackages = [
(pkgs.writers.writePython3Bin "request-addr" { } ''
import socket
results = socket.getaddrinfo("nixos.test", None)
print(results[0][4][0])
'')
];
};
testScript =
{ ... }:
''
server.wait_for_unit("dnsmasq.service")
client.wait_for_unit("network.target")
assert "${ip4}" in client.succeed("request-addr")
client.succeed("""
sed 's/100/10/' /etc/gai.conf > /etc/gai.conf.new && \
mv /etc/gai.conf.new /etc/gai.conf
""")
assert "${ip6}" in client.succeed("request-addr")
'';
}