at 15.09-beta 1.8 kB view raw
1import ./make-test.nix ({ pkgs, ...} : 2 3let 4 client = { config, pkgs, ... }: { 5 imports = [ ./common/x11.nix ]; 6 environment.systemPackages = [ pkgs.mumble ]; 7 }; 8in 9{ 10 name = "mumble"; 11 meta = with pkgs.stdenv.lib.maintainers; { 12 maintainers = [ thoughtpolice eelco chaoflow ]; 13 }; 14 15 nodes = { 16 server = { config, pkgs, ... }: { 17 services.murmur.enable = true; 18 services.murmur.registerName = "NixOS tests"; 19 networking.firewall.allowedTCPPorts = [ config.services.murmur.port ]; 20 }; 21 22 client1 = client; 23 client2 = client; 24 }; 25 26 testScript = '' 27 startAll; 28 29 $server->waitForUnit("murmur.service"); 30 $client1->waitForX; 31 $client2->waitForX; 32 33 $client1->execute("mumble mumble://client1\@server/test &"); 34 $client2->execute("mumble mumble://client2\@server/test &"); 35 36 # cancel client audio configuration 37 $client1->waitForWindow(qr/Audio Tuning Wizard/); 38 $client2->waitForWindow(qr/Audio Tuning Wizard/); 39 $client1->sendKeys("esc"); 40 $client2->sendKeys("esc"); 41 42 # cancel client cert configuration 43 $client1->waitForWindow(qr/Certificate Management/); 44 $client2->waitForWindow(qr/Certificate Management/); 45 $client1->sendKeys("esc"); 46 $client2->sendKeys("esc"); 47 48 # accept server certificate 49 $client1->waitForWindow(qr/^Mumble$/); 50 $client2->waitForWindow(qr/^Mumble$/); 51 $client1->sendChars("y"); 52 $client2->sendChars("y"); 53 54 # Find clients in logs 55 $server->waitUntilSucceeds("grep -q 'client1' /var/log/murmur/murmurd.log"); 56 $server->waitUntilSucceeds("grep -q 'client2' /var/log/murmur/murmurd.log"); 57 58 $server->sleep(5); # wait to get screenshot 59 $client1->screenshot("screen1"); 60 $client2->screenshot("screen2"); 61 ''; 62})