forked from mirrors/nixpkgs
nixos/tests/ncdns: add test
This commit is contained in:
parent
e23c57c347
commit
14aa8d9b75
|
@ -216,6 +216,7 @@ in
|
||||||
nat.firewall = handleTest ./nat.nix { withFirewall = true; };
|
nat.firewall = handleTest ./nat.nix { withFirewall = true; };
|
||||||
nat.firewall-conntrack = handleTest ./nat.nix { withFirewall = true; withConntrackHelpers = true; };
|
nat.firewall-conntrack = handleTest ./nat.nix { withFirewall = true; withConntrackHelpers = true; };
|
||||||
nat.standalone = handleTest ./nat.nix { withFirewall = false; };
|
nat.standalone = handleTest ./nat.nix { withFirewall = false; };
|
||||||
|
ncdns = handleTest ./ncdns.nix {};
|
||||||
ndppd = handleTest ./ndppd.nix {};
|
ndppd = handleTest ./ndppd.nix {};
|
||||||
neo4j = handleTest ./neo4j.nix {};
|
neo4j = handleTest ./neo4j.nix {};
|
||||||
specialisation = handleTest ./specialisation.nix {};
|
specialisation = handleTest ./specialisation.nix {};
|
||||||
|
|
77
nixos/tests/ncdns.nix
Normal file
77
nixos/tests/ncdns.nix
Normal file
|
@ -0,0 +1,77 @@
|
||||||
|
import ./make-test-python.nix ({ pkgs, ... }:
|
||||||
|
let
|
||||||
|
fakeReply = pkgs.writeText "namecoin-reply.json" ''
|
||||||
|
{ "error": null,
|
||||||
|
"id": 1,
|
||||||
|
"result": {
|
||||||
|
"address": "T31q8ucJ4dI1xzhxQ5QispfECld5c7Xw",
|
||||||
|
"expired": false,
|
||||||
|
"expires_in": 2248,
|
||||||
|
"height": 438155,
|
||||||
|
"name": "d/test",
|
||||||
|
"txid": "db61c0b2540ba0c1a2c8cc92af703a37002e7566ecea4dbf8727c7191421edfb",
|
||||||
|
"value": "{\"ip\": \"1.2.3.4\", \"email\": \"root@test.bit\",\"info\": \"Fake record\"}",
|
||||||
|
"vout": 0
|
||||||
|
}
|
||||||
|
}
|
||||||
|
'';
|
||||||
|
in
|
||||||
|
|
||||||
|
{
|
||||||
|
name = "ncdns";
|
||||||
|
|
||||||
|
nodes.server = { ... }: {
|
||||||
|
networking.nameservers = [ "127.0.0.1" ];
|
||||||
|
|
||||||
|
services.namecoind.rpc = {
|
||||||
|
address = "127.0.0.1";
|
||||||
|
user = "namecoin";
|
||||||
|
password = "secret";
|
||||||
|
port = 8332;
|
||||||
|
};
|
||||||
|
|
||||||
|
# Fake namecoin RPC server because we can't
|
||||||
|
# run a full node in a test.
|
||||||
|
systemd.services.namecoind = {
|
||||||
|
wantedBy = [ "multi-user.target" ];
|
||||||
|
script = ''
|
||||||
|
while true; do
|
||||||
|
echo -e "HTTP/1.1 200 OK\n\n $(<${fakeReply})\n" \
|
||||||
|
| ${pkgs.netcat}/bin/nc -N -l 127.0.0.1 8332
|
||||||
|
done
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
services.ncdns = {
|
||||||
|
enable = true;
|
||||||
|
dnssec.enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
services.pdns-recursor = {
|
||||||
|
enable = true;
|
||||||
|
dns.allowFrom = [ "127.0.0.0/8" ];
|
||||||
|
settings.loglevel = 8;
|
||||||
|
resolveNamecoin = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
environment.systemPackages = [ pkgs.dnsutils ];
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
testScript = ''
|
||||||
|
with subtest("DNSSEC keys have been generated"):
|
||||||
|
server.wait_for_unit("ncdns")
|
||||||
|
server.wait_for_file("/var/lib/ncdns/bit.key")
|
||||||
|
server.wait_for_file("/var/lib/ncdns/bit-zone.key")
|
||||||
|
|
||||||
|
with subtest("DNSKEY bit record is present"):
|
||||||
|
server.wait_for_unit("pdns-recursor")
|
||||||
|
server.wait_for_open_port("53")
|
||||||
|
server.succeed("host -t DNSKEY bit")
|
||||||
|
|
||||||
|
with subtest("can resolve a .bit name"):
|
||||||
|
server.wait_for_unit("namecoind")
|
||||||
|
server.wait_for_open_port("8332")
|
||||||
|
assert "1.2.3.4" in server.succeed("host -t A test.bit")
|
||||||
|
'';
|
||||||
|
})
|
Loading…
Reference in a new issue