···
1
-
import ../make-test-python.nix ({ pkgs, lib, ...} :
3
-
wg-snakeoil-keys = import ./snakeoil-keys.nix;
4
-
peer = (import ./make-peer.nix) { inherit lib; };
8
-
meta = with pkgs.stdenv.lib.maintainers; {
9
-
maintainers = [ ma27 ];
14
-
ip4 = "192.168.0.1";
17
-
networking.firewall.allowedUDPPorts = [ 23542 ];
18
-
networking.wireguard.interfaces.wg0 = {
19
-
ips = [ "10.23.42.1/32" "fc00::1/128" ];
22
-
inherit (wg-snakeoil-keys.peer0) privateKey;
24
-
peers = lib.singleton {
25
-
allowedIPs = [ "10.23.42.2/32" "fc00::2/128" ];
27
-
inherit (wg-snakeoil-keys.peer1) publicKey;
34
-
ip4 = "192.168.0.2";
37
-
networking.wireguard.interfaces.wg0 = {
38
-
ips = [ "10.23.42.2/32" "fc00::2/128" ];
40
-
allowedIPsAsRoutes = false;
42
-
inherit (wg-snakeoil-keys.peer1) privateKey;
44
-
peers = lib.singleton {
45
-
allowedIPs = [ "0.0.0.0/0" "::/0" ];
46
-
endpoint = "192.168.0.1:23542";
47
-
persistentKeepalive = 25;
1
+
{ system ? builtins.currentSystem
3
+
, pkgs ? import ../../.. { inherit system config; }
4
+
, kernelVersionsToTest ? [ "5.4" "latest" ]
49
-
inherit (wg-snakeoil-keys.peer0) publicKey;
52
-
postSetup = let inherit (pkgs) iproute; in ''
53
-
${iproute}/bin/ip route replace 10.23.42.1/32 dev wg0
54
-
${iproute}/bin/ip route replace fc00::1/128 dev wg0
10
+
tests = let callTest = p: flip (import p) { inherit system pkgs; }; in {
11
+
basic = callTest ./basic.nix;
12
+
namespaces = callTest ./namespaces.nix;
13
+
wg-quick = callTest ./wg-quick.nix;
14
+
generated = callTest ./generated.nix;
64
-
peer0.wait_for_unit("wireguard-wg0.service")
65
-
peer1.wait_for_unit("wireguard-wg0.service")
67
-
peer1.succeed("ping -c5 fc00::1")
68
-
peer1.succeed("ping -c5 10.23.42.1")
19
+
flip concatMap kernelVersionsToTest (version:
21
+
v' = replaceStrings [ "." ] [ "_" ] version;
23
+
flip mapAttrsToList tests (name: test:
24
+
nameValuePair "wireguard-${name}-linux-${v'}" (test { kernelPackages = pkgs."linuxPackages_${v'}"; })