From 0aa34a03d000515370086d81686f4110a894751d Mon Sep 17 00:00:00 2001 From: Izorkin Date: Mon, 23 Nov 2020 17:13:22 +0300 Subject: [PATCH] nixos/tests/samba-wsdd: add check WSD Discovery --- nixos/tests/all-tests.nix | 1 + nixos/tests/samba-wsdd.nix | 44 +++++++++++++++++++++++++++++++++++ pkgs/servers/wsdd/default.nix | 6 ++++- 3 files changed, 50 insertions(+), 1 deletion(-) create mode 100644 nixos/tests/samba-wsdd.nix diff --git a/nixos/tests/all-tests.nix b/nixos/tests/all-tests.nix index 3c10d621518..899509696e3 100644 --- a/nixos/tests/all-tests.nix +++ b/nixos/tests/all-tests.nix @@ -315,6 +315,7 @@ in runInMachine = handleTest ./run-in-machine.nix {}; rxe = handleTest ./rxe.nix {}; samba = handleTest ./samba.nix {}; + samba-wsdd = handleTest ./samba-wsdd.nix {}; sanoid = handleTest ./sanoid.nix {}; sbt = handleTest ./sbt.nix {}; sbt-extras = handleTest ./sbt-extras.nix {}; diff --git a/nixos/tests/samba-wsdd.nix b/nixos/tests/samba-wsdd.nix new file mode 100644 index 00000000000..1edef6c0056 --- /dev/null +++ b/nixos/tests/samba-wsdd.nix @@ -0,0 +1,44 @@ +import ./make-test-python.nix ({ pkgs, ... }: + +{ + name = "samba-wsdd"; + meta.maintainers = with pkgs.stdenv.lib.maintainers; [ izorkin ]; + + nodes = { + client_wsdd = { pkgs, ... }: { + services.samba-wsdd = { + enable = true; + interface = "eth1"; + workgroup = "WORKGROUP"; + hostname = "CLIENT-WSDD"; + discovery = true; + extraOptions = [ "--no-host" ]; + }; + networking.firewall.allowedTCPPorts = [ 5357 ]; + networking.firewall.allowedUDPPorts = [ 3702 ]; + }; + + server_wsdd = { ... }: { + services.samba-wsdd = { + enable = true; + interface = "eth1"; + workgroup = "WORKGROUP"; + hostname = "SERVER-WSDD"; + }; + networking.firewall.allowedTCPPorts = [ 5357 ]; + networking.firewall.allowedUDPPorts = [ 3702 ]; + }; + }; + + testScript = '' + client_wsdd.start() + client_wsdd.wait_for_unit("samba-wsdd") + + server_wsdd.start() + server_wsdd.wait_for_unit("samba-wsdd") + + client_wsdd.wait_until_succeeds( + "echo list | ${pkgs.libressl.nc}/bin/nc -U /run/wsdd/wsdd.sock | grep -i SERVER-WSDD" + ) + ''; +}) diff --git a/pkgs/servers/wsdd/default.nix b/pkgs/servers/wsdd/default.nix index 059c401dead..1411b6f3adc 100644 --- a/pkgs/servers/wsdd/default.nix +++ b/pkgs/servers/wsdd/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchFromGitHub, makeWrapper, python3 }: +{ stdenv, fetchFromGitHub, makeWrapper, nixosTests, python3 }: stdenv.mkDerivation rec { pname = "wsdd"; @@ -20,6 +20,10 @@ stdenv.mkDerivation rec { wrapProgram $out/bin/wsdd --prefix PYTHONPATH : "$PYTHONPATH" ''; + passthru = { + tests.samba-wsdd = nixosTests.samba-wsdd; + }; + meta = with stdenv.lib; { homepage = "https://github.com/christgau/wsdd"; description = "A Web Service Discovery (WSD) host daemon for SMB/Samba";