1{
2 runTest,
3 lib,
4 pkgs,
5 # Test current default (LTS) and latest kernel
6 kernelVersionsToTest ? [
7 (lib.versions.majorMinor pkgs.linuxPackages.kernel.version)
8 "latest"
9 ],
10}:
11
12let
13 tests =
14 let
15 callTest =
16 p: args:
17 runTest {
18 imports = [ p ];
19 _module = { inherit args; };
20 };
21 in
22 {
23 basic = callTest ./basic.nix;
24 amneziawg = callTest ./amneziawg.nix;
25 namespaces = callTest ./namespaces.nix;
26 networkd = callTest ./networkd.nix;
27 wg-quick = args: callTest ./wg-quick.nix ({ nftables = false; } // args);
28 wg-quick-nftables = args: callTest ./wg-quick.nix ({ nftables = true; } // args);
29 amneziawg-quick = args: callTest ./amneziawg-quick.nix ({ nftables = false; } // args);
30 generated = callTest ./generated.nix;
31 dynamic-refresh = args: callTest ./dynamic-refresh.nix ({ useNetworkd = false; } // args);
32 dynamic-refresh-networkd = args: callTest ./dynamic-refresh.nix ({ useNetworkd = true; } // args);
33 };
34in
35
36lib.listToAttrs (
37 lib.flip lib.concatMap kernelVersionsToTest (
38 version:
39 let
40 v' = lib.replaceString "." "_" version;
41 in
42 lib.flip lib.mapAttrsToList tests (
43 name: test:
44 lib.nameValuePair "wireguard-${name}-linux-${v'}" (test {
45 kernelPackages =
46 pkgs: if v' == "latest" then pkgs.linuxPackages_latest else pkgs.linuxKernel.packages."linux_${v'}";
47 })
48 )
49 )
50)