at 15.09-beta 1.9 kB view raw
1# Test whether `avahi-daemon' and `libnss-mdns' work as expected. 2import ./make-test.nix ({ pkgs, ... } : { 3 name = "avahi"; 4 meta = with pkgs.stdenv.lib.maintainers; { 5 maintainers = [ eelco chaoflow ]; 6 }; 7 8 nodes = { 9 one = 10 { config, pkgs, ... }: { 11 services.avahi.enable = true; 12 services.avahi.nssmdns = true; 13 }; 14 15 two = 16 { config, pkgs, ... }: { 17 services.avahi.enable = true; 18 services.avahi.nssmdns = true; 19 }; 20 }; 21 22 testScript = 23 '' startAll; 24 25 # mDNS. 26 $one->waitForUnit("network.target"); 27 $two->waitForUnit("network.target"); 28 29 $one->succeed("avahi-resolve-host-name one.local | tee out >&2"); 30 $one->succeed("test \"`cut -f1 < out`\" = one.local"); 31 $one->succeed("avahi-resolve-host-name two.local | tee out >&2"); 32 $one->succeed("test \"`cut -f1 < out`\" = two.local"); 33 34 $two->succeed("avahi-resolve-host-name one.local | tee out >&2"); 35 $two->succeed("test \"`cut -f1 < out`\" = one.local"); 36 $two->succeed("avahi-resolve-host-name two.local | tee out >&2"); 37 $two->succeed("test \"`cut -f1 < out`\" = two.local"); 38 39 # Basic DNS-SD. 40 $one->succeed("avahi-browse -r -t _workstation._tcp | tee out >&2"); 41 $one->succeed("test `wc -l < out` -gt 0"); 42 $two->succeed("avahi-browse -r -t _workstation._tcp | tee out >&2"); 43 $two->succeed("test `wc -l < out` -gt 0"); 44 45 # More DNS-SD. 46 $one->execute("avahi-publish -s \"This is a test\" _test._tcp 123 one=1 &"); 47 $one->sleep(5); 48 $two->succeed("avahi-browse -r -t _test._tcp | tee out >&2"); 49 $two->succeed("test `wc -l < out` -gt 0"); 50 51 # NSS-mDNS. 52 $one->succeed("getent hosts one.local >&2"); 53 $one->succeed("getent hosts two.local >&2"); 54 $two->succeed("getent hosts one.local >&2"); 55 $two->succeed("getent hosts two.local >&2"); 56 ''; 57})