nixos/iodine: add test

Changed files
+69 -1
nixos
pkgs
tools
networking
iodine
+1
nixos/tests/all-tests.nix
···
initrd-network-ssh = handleTest ./initrd-network-ssh {};
initrdNetwork = handleTest ./initrd-network.nix {};
installer = handleTest ./installer.nix {};
ipv6 = handleTest ./ipv6.nix {};
jackett = handleTest ./jackett.nix {};
jellyfin = handleTest ./jellyfin.nix {};
···
initrd-network-ssh = handleTest ./initrd-network-ssh {};
initrdNetwork = handleTest ./initrd-network.nix {};
installer = handleTest ./installer.nix {};
+
iodine = handleTest ./iodine.nix {};
ipv6 = handleTest ./ipv6.nix {};
jackett = handleTest ./jackett.nix {};
jellyfin = handleTest ./jellyfin.nix {};
+63
nixos/tests/iodine.nix
···
···
+
import ./make-test-python.nix (
+
{ pkgs, ... }: let
+
domain = "whatever.example.com";
+
in
+
{
+
name = "iodine";
+
nodes = {
+
server =
+
{ ... }:
+
+
{
+
networking.firewall = {
+
allowedUDPPorts = [ 53 ];
+
trustedInterfaces = [ "dns0" ];
+
};
+
boot.kernel.sysctl = {
+
"net.ipv4.ip_forward" = 1;
+
"net.ipv6.ip_forward" = 1;
+
};
+
+
services.iodine.server = {
+
enable = true;
+
ip = "10.53.53.1/24";
+
passwordFile = "${builtins.toFile "password" "foo"}";
+
inherit domain;
+
};
+
+
# test resource: accessible only via tunnel
+
services.openssh = {
+
enable = true;
+
openFirewall = false;
+
};
+
};
+
+
client =
+
{ ... }: {
+
services.iodine.clients.testClient = {
+
# test that ProtectHome is "read-only"
+
passwordFile = "/root/pw";
+
relay = "server";
+
server = domain;
+
};
+
systemd.tmpfiles.rules = [
+
"f /root/pw 0666 root root - foo"
+
];
+
environment.systemPackages = [
+
pkgs.nagiosPluginsOfficial
+
];
+
};
+
+
};
+
+
testScript = ''
+
start_all()
+
+
server.wait_for_unit("sshd")
+
server.wait_for_unit("iodined")
+
client.wait_for_unit("iodine-testClient")
+
+
client.succeed("check_ssh -H 10.53.53.1")
+
'';
+
}
+
)
+5 -1
pkgs/tools/networking/iodine/default.nix
···
-
{ stdenv, fetchFromGitHub, zlib, nettools }:
stdenv.mkDerivation rec {
pname = "iodine";
···
NIX_CFLAGS_COMPILE = "-DIFCONFIGPATH=\"${nettools}/bin/\"";
installFlags = [ "prefix=\${out}" ];
meta = {
homepage = http://code.kryo.se/iodine/;
···
+
{ stdenv, fetchFromGitHub, zlib, nettools, nixosTests }:
stdenv.mkDerivation rec {
pname = "iodine";
···
NIX_CFLAGS_COMPILE = "-DIFCONFIGPATH=\"${nettools}/bin/\"";
installFlags = [ "prefix=\${out}" ];
+
+
passthru.tests = {
+
inherit (nixosTests) iodine;
+
};
meta = {
homepage = http://code.kryo.se/iodine/;