Files
nixpkgs/nixos/tests/getaddrinfo.nix
Dark Steveneq 646b892680
Some checks failed
Periodic Merges (6h) / master → staging-nixos (push) Failing after 12m50s
Periodic Merges (6h) / master → staging-next (push) Failing after 12m54s
Periodic Merges (24h) / merge-base(master,staging) → haskell-updates (push) Failing after 11m54s
Periodic Merges (6h) / staging-next → staging (push) Failing after 12m13s
Periodic Merges (24h) / staging-next-25.05 → staging-25.05 (push) Failing after 13m24s
Periodic Merges (24h) / release-25.05 → staging-next-25.05 (push) Failing after 14m28s
push sheeet
2025-10-09 14:15:47 +02:00

69 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")
'';
}