Add a simple test for Samba

This commit is contained in:
Eelco Dolstra 2016-09-30 21:24:18 +02:00
parent e993506d4c
commit 328c2f0081
2 changed files with 49 additions and 0 deletions

View file

@ -284,6 +284,7 @@ in rec {
tests.quagga = callTest tests/quagga.nix {};
tests.quake3 = callTest tests/quake3.nix {};
tests.runInMachine = callTest tests/run-in-machine.nix {};
tests.samba = callTest tests/samba.nix {};
tests.sddm = callTest tests/sddm.nix {};
tests.simple = callTest tests/simple.nix {};
tests.smokeping = callTest tests/smokeping.nix {};

48
nixos/tests/samba.nix Normal file
View file

@ -0,0 +1,48 @@
import ./make-test.nix ({ pkgs, ... }:
{
name = "samba";
meta.maintainers = [ pkgs.lib.maintainers.eelco ];
nodes =
{ client =
{ config, pkgs, ... }:
{ fileSystems = pkgs.lib.mkVMOverride
{ "/public" = {
fsType = "cifs";
device = "//server/public";
options = [ "guest" ];
};
};
};
server =
{ config, pkgs, ... }:
{ services.samba.enable = true;
services.samba.shares.public =
{ path = "/public";
"read only" = true;
browseable = "yes";
"guest ok" = "yes";
comment = "Public samba share.";
};
networking.firewall.allowedTCPPorts = [ 139 445 ];
networking.firewall.allowedUDPPorts = [ 137 138 ];
};
};
# client# [ 4.542997] mount[777]: sh: systemd-ask-password: command not found
testScript =
''
$server->start;
$server->waitForUnit("samba-smbd");
$server->waitForUnit("samba-nmbd");
$server->succeed("mkdir -p /public; echo bar > /public/foo");
$client->start;
$client->waitForUnit("network.target");
$client->succeed("[[ \$(cat /public/foo) = bar ]]");
'';
})