From 2b2b7820a9fc3c80c8c60e55c86bc357c5edd765 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Thu, 7 Oct 2010 16:58:07 +0000 Subject: [PATCH] Add an Avahi (mDNS/DNS-SD) and NSS-mDNS test. svn path=/nixos/trunk/; revision=24148 --- tests/avahi.nix | 60 +++++++++++++++++++++++++++++++++++++++++++++++ tests/default.nix | 1 + 2 files changed, 61 insertions(+) create mode 100644 tests/avahi.nix diff --git a/tests/avahi.nix b/tests/avahi.nix new file mode 100644 index 000000000000..fe50edc28584 --- /dev/null +++ b/tests/avahi.nix @@ -0,0 +1,60 @@ +{ pkgs, ... }: + +with pkgs; + +{ + nodes = { + one = + { config, pkgs, ... }: { + services.avahi.enable = true; + services.avahi.nssmdns = true; + }; + + two = + { config, pkgs, ... }: { + services.avahi.enable = true; + services.avahi.nssmdns = true; + }; + }; + + # Test whether `avahi-daemon' and `libnss-mdns' work as expected. + testScript = + '' startAll; + + # mDNS. + print STDERR + $one->mustSucceed("avahi-resolve-host-name one.local | tee out"); + $one->mustSucceed("test \"`cut -f1 < out`\" = one.local"); + print STDERR + $one->mustSucceed("avahi-resolve-host-name two.local | tee out"); + $one->mustSucceed("test \"`cut -f1 < out`\" = two.local"); + + print STDERR + $two->mustSucceed("avahi-resolve-host-name one.local | tee out"); + $two->mustSucceed("test \"`cut -f1 < out`\" = one.local"); + print STDERR + $two->mustSucceed("avahi-resolve-host-name two.local | tee out"); + $two->mustSucceed("test \"`cut -f1 < out`\" = two.local"); + + # Basic DNS-SD. + print STDERR + $one->mustSucceed("avahi-browse -r -t _workstation._tcp | tee out"); + $one->mustSucceed("test `wc -l < out` -gt 0"); + print STDERR + $two->mustSucceed("avahi-browse -r -t _workstation._tcp | tee out"); + $two->mustSucceed("test `wc -l < out` -gt 0"); + + # More DNS-SD. + $one->execute("avahi-publish -s \"This is a test\" _test._tcp 123 one=1 &"); + sleep 5; + print STDERR + $two->mustSucceed("avahi-browse -r -t _test._tcp | tee out"); + $two->mustSucceed("test `wc -l < out` -gt 0"); + + # NSS-mDNS. + print STDERR $one->mustSucceed("ping -c1 one.local"); + print STDERR $one->mustSucceed("ping -c1 two.local"); + print STDERR $two->mustSucceed("ping -c1 one.local"); + print STDERR $two->mustSucceed("ping -c1 two.local"); + ''; +} diff --git a/tests/default.nix b/tests/default.nix index 37ca37e0728a..12a7244d6e10 100644 --- a/tests/default.nix +++ b/tests/default.nix @@ -6,6 +6,7 @@ with import ../lib/testing.nix { inherit nixpkgs services system; }; { + avahi = makeTest (import ./avahi.nix); bittorrent = makeTest (import ./bittorrent.nix); firefox = makeTest (import ./firefox.nix); installer = makeTests (import ./installer.nix);