 0a9dd49634
			
		
	
	
		0a9dd49634
		
			
		
	
	
	
	
		
			
			Checks - if all configured ports are listened on - if all pipes for multiple streams get set up - if rpc interaction is possible
		
			
				
	
	
		
			59 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
			
		
		
	
	
			59 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
| import ./make-test-python.nix ({ pkgs, ...} :
 | |
| 
 | |
| let
 | |
|   port = 10004;
 | |
|   tcpPort = 10005;
 | |
|   httpPort = 10080;
 | |
| in {
 | |
|   name = "snapcast";
 | |
|   meta = with pkgs.stdenv.lib.maintainers; {
 | |
|     maintainers = [ hexa ];
 | |
|   };
 | |
| 
 | |
|   nodes = {
 | |
|     server = {
 | |
|       services.snapserver = {
 | |
|         enable = true;
 | |
|         port = port;
 | |
|         tcp.port = tcpPort;
 | |
|         http.port = httpPort;
 | |
|         streams = {
 | |
|           mpd = {
 | |
|             type = "pipe";
 | |
|             location = "/run/snapserver/mpd";
 | |
|           };
 | |
|           bluetooth = {
 | |
|             type = "pipe";
 | |
|             location = "/run/snapserver/bluetooth";
 | |
|           };
 | |
|         };
 | |
|       };
 | |
|     };
 | |
|   };
 | |
| 
 | |
|   testScript = ''
 | |
|     import json
 | |
| 
 | |
|     get_rpc_version = {"id": "1", "jsonrpc": "2.0", "method": "Server.GetRPCVersion"}
 | |
| 
 | |
|     start_all()
 | |
| 
 | |
|     server.wait_for_unit("snapserver.service")
 | |
|     server.wait_until_succeeds("ss -ntl | grep -q ${toString port}")
 | |
|     server.wait_until_succeeds("ss -ntl | grep -q ${toString tcpPort}")
 | |
|     server.wait_until_succeeds("ss -ntl | grep -q ${toString httpPort}")
 | |
| 
 | |
|     with subtest("check that pipes are created"):
 | |
|         server.succeed("test -p /run/snapserver/mpd")
 | |
|         server.succeed("test -p /run/snapserver/bluetooth")
 | |
| 
 | |
|     with subtest("test tcp json-rpc"):
 | |
|         server.succeed(f"echo '{json.dumps(get_rpc_version)}' | nc -w 1 localhost ${toString tcpPort}")
 | |
| 
 | |
|     with subtest("test http json-rpc"):
 | |
|         server.succeed(
 | |
|             "curl --fail http://localhost:${toString httpPort}/jsonrpc -d '{json.dumps(get_rpc_version)}'"
 | |
|         )
 | |
|   '';
 | |
| })
 |