diff options
author | Alyssa Ross <hi@alyssa.is> | 2020-06-04 10:19:13 +0000 |
---|---|---|
committer | Alyssa Ross <hi@alyssa.is> | 2020-06-04 22:45:31 +0000 |
commit | da8562f302a145605a3270114ea7063daa82a173 (patch) | |
tree | b27c6d509bad0ee5449f1fcf261a7ec3210df495 /nixpkgs/nixos/tests/hostname.nix | |
parent | 17df60ef482ef52b2088e1913de9cd436320612a (diff) | |
parent | 467ce5a9f45aaf96110b41eb863a56866e1c2c3c (diff) | |
download | nixlib-da8562f302a145605a3270114ea7063daa82a173.tar nixlib-da8562f302a145605a3270114ea7063daa82a173.tar.gz nixlib-da8562f302a145605a3270114ea7063daa82a173.tar.bz2 nixlib-da8562f302a145605a3270114ea7063daa82a173.tar.lz nixlib-da8562f302a145605a3270114ea7063daa82a173.tar.xz nixlib-da8562f302a145605a3270114ea7063daa82a173.tar.zst nixlib-da8562f302a145605a3270114ea7063daa82a173.zip |
Merge commit '467ce5a9f45aaf96110b41eb863a56866e1c2c3c'
Diffstat (limited to 'nixpkgs/nixos/tests/hostname.nix')
-rw-r--r-- | nixpkgs/nixos/tests/hostname.nix | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/nixpkgs/nixos/tests/hostname.nix b/nixpkgs/nixos/tests/hostname.nix new file mode 100644 index 000000000000..3b87303d73e7 --- /dev/null +++ b/nixpkgs/nixos/tests/hostname.nix @@ -0,0 +1,66 @@ +{ system ? builtins.currentSystem, + config ? {}, + pkgs ? import ../.. { inherit system config; } +}: + +with import ../lib/testing-python.nix { inherit system pkgs; }; +with pkgs.lib; + +let + makeHostNameTest = hostName: domain: + let + fqdn = hostName + (optionalString (domain != null) ".${domain}"); + in + makeTest { + name = "hostname-${fqdn}"; + meta = with pkgs.stdenv.lib.maintainers; { + maintainers = [ primeos blitz ]; + }; + + machine = { lib, ... }: { + networking.hostName = hostName; + networking.domain = domain; + + environment.systemPackages = with pkgs; [ + inetutils + ]; + }; + + testScript = '' + start_all() + + machine = ${hostName} + + machine.wait_for_unit("network-online.target") + + # The FQDN, domain name, and hostname detection should work as expected: + assert "${fqdn}" == machine.succeed("hostname --fqdn").strip() + assert "${optionalString (domain != null) domain}" == machine.succeed("dnsdomainname").strip() + assert ( + "${hostName}" + == machine.succeed( + 'hostnamectl status | grep "Static hostname" | cut -d: -f2' + ).strip() + ) + + # 127.0.0.1 and ::1 should resolve back to "localhost": + assert ( + "localhost" == machine.succeed("getent hosts 127.0.0.1 | awk '{print $2}'").strip() + ) + assert "localhost" == machine.succeed("getent hosts ::1 | awk '{print $2}'").strip() + + # 127.0.0.2 should resolve back to the FQDN and hostname: + fqdn_and_host_name = "${optionalString (domain != null) "${hostName}.${domain} "}${hostName}" + assert ( + fqdn_and_host_name + == machine.succeed("getent hosts 127.0.0.2 | awk '{print $2,$3}'").strip() + ) + ''; + }; + +in +{ + noExplicitDomain = makeHostNameTest "ahost" null; + + explicitDomain = makeHostNameTest "ahost" "adomain"; +} |