28 lines
988 B
Nix
28 lines
988 B
Nix
{ 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]]
|
|
))
|