diff --git a/nixos/tests/slimserver.nix b/nixos/tests/slimserver.nix index ac166b109c84..b9821a7b1c33 100644 --- a/nixos/tests/slimserver.nix +++ b/nixos/tests/slimserver.nix @@ -15,36 +15,35 @@ import ./make-test-python.nix ( boot.kernelModules = [ "snd-dummy" ]; }; - testScript = '' - import json - rpc_get_player = { - "id": 1, - "method": "slim.request", - "params":[0,["player", "id", "0", "?"]] - } + testScript = # python + '' + import json + rpc_get_player = { + "id": 1, + "method": "slim.request", + "params":[0,["player", "id", "0", "?"]] + } - with subtest("slimserver is started"): - machine.wait_for_unit("slimserver.service") - # give slimserver a moment to report errors - machine.sleep(2) + with subtest("slimserver is started"): + machine.wait_for_unit("slimserver.service") + # give slimserver a moment to report errors + machine.sleep(2) + machine.wait_until_succeeds("journalctl -u slimserver.service | grep 'Starting Lyrion Music'", timeout=120) + machine.wait_for_open_port(9000) - with subtest('slimserver module errors are not reported'): - machine.fail("journalctl -u slimserver.service | grep 'throw_exception'") - machine.fail("journalctl -u slimserver.service | grep 'not installed'") - machine.fail("journalctl -u slimserver.service | grep 'not found'") - machine.fail("journalctl -u slimserver.service | grep 'The following CPAN modules were found but cannot work with Logitech Media Server'") - machine.fail("journalctl -u slimserver.service | grep 'please use the buildme.sh'") + with subtest('slimserver module errors are not reported'): + machine.fail("journalctl -u slimserver.service | grep 'throw_exception'") + machine.fail("journalctl -u slimserver.service | grep 'not installed'") + machine.fail("journalctl -u slimserver.service | grep 'not found'") + machine.fail("journalctl -u slimserver.service | grep 'The following CPAN modules were found but cannot work with Logitech Media Server'") + machine.fail("journalctl -u slimserver.service | grep 'please use the buildme.sh'") - with subtest('slimserver is ready'): - machine.wait_for_open_port(9000) - machine.wait_until_succeeds("journalctl -u slimserver.service | grep 'Completed dbOptimize Scan'") - - with subtest("squeezelite player successfully connects to slimserver"): - machine.wait_for_unit("squeezelite.service") - machine.wait_until_succeeds("journalctl -u squeezelite.service | grep -E 'slimproto:[0-9]+ connected'") - player_mac = machine.wait_until_succeeds("journalctl -eu squeezelite.service | grep -E 'sendHELO:[0-9]+ mac:'").strip().split(" ")[-1] - player_id = machine.succeed(f"curl http://localhost:9000/jsonrpc.js -g -X POST -d '{json.dumps(rpc_get_player)}'") - assert player_mac == json.loads(player_id)["result"]["_id"], "squeezelite player not found" - ''; + with subtest("squeezelite player successfully connects to slimserver"): + machine.wait_for_unit("squeezelite.service") + machine.wait_until_succeeds("journalctl -u squeezelite.service | grep -E 'slimproto:[0-9]+ connected'", timeout=120) + player_mac = machine.wait_until_succeeds("journalctl -eu squeezelite.service | grep -E 'sendHELO:[0-9]+ mac:'", timeout=120).strip().split(" ")[-1] + player_id = machine.succeed(f"curl http://localhost:9000/jsonrpc.js -g -X POST -d '{json.dumps(rpc_get_player)}'") + assert player_mac == json.loads(player_id)["result"]["_id"], "squeezelite player not found" + ''; } ) diff --git a/pkgs/by-name/sl/slimserver/package.nix b/pkgs/by-name/sl/slimserver/package.nix index 3beb20677690..fe6e18c54940 100644 --- a/pkgs/by-name/sl/slimserver/package.nix +++ b/pkgs/by-name/sl/slimserver/package.nix @@ -33,13 +33,13 @@ let in perlPackages.buildPerlPackage rec { pname = "slimserver"; - version = "9.0.1"; + version = "9.0.2"; src = fetchFromGitHub { owner = "LMS-Community"; repo = "slimserver"; rev = version; - hash = "sha256-BIWTsF9SVGBkFaZF/QYFsgATglaORhnFT/2/qRe4emg="; + hash = "sha256-rwaHlNM5KGqvk8SAdinvCGT5+UUAU8I2jiN5Ine/eds="; }; nativeBuildInputs = [ makeWrapper ];