summary refs log tree commit diff
path: root/nixos/tests/predictable-interface-names.nix
blob: b4c2039923cf02d5fea04768315ba7706d5c4a3a (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
{ system ? builtins.currentSystem
, pkgs ? import ../.. { inherit system; }
}:
with import ../lib/testing.nix { inherit system; };
let boolToString = x: if x then "yes" else "no"; in
let testWhenSetTo = predictable: withNetworkd:
makeTest {
  name = "${if predictable then "" else "un"}predictableInterfaceNames${if withNetworkd then "-with-networkd" else ""}";
  meta = {};

  machine = { config, pkgs, ... }: {
    networking.usePredictableInterfaceNames = pkgs.stdenv.lib.mkForce predictable;
    networking.useNetworkd = withNetworkd;
    networking.dhcpcd.enable = !withNetworkd;
  };

  testScript = ''
    print $machine->succeed("ip link");
    $machine->succeed("ip link show ${if predictable then "ens3" else "eth0"}");
    $machine->fail("ip link show ${if predictable then "eth0" else "ens3"}");
  '';
}; in
with pkgs.stdenv.lib.lists;
with pkgs.stdenv.lib.attrsets;
listToAttrs (map (drv: nameValuePair drv.name drv) (
crossLists testWhenSetTo [[true false] [true false]]
))