chore(tests): Move generation of integration test checks into an own module

This commit is contained in:
David Niehues
2025-08-12 11:18:59 +02:00
parent 66c71c7990
commit e3fe9bdb95
2 changed files with 124 additions and 102 deletions

View File

@@ -9,7 +9,6 @@
rosenpass-old.url = "github:rosenpass/rosenpass/main";
rosenpass-new.url = "github:rosenpass/rosenpass/main";
};
outputs =
inputs:
inputs.flake-parts.lib.mkFlake { inherit inputs; } {
@@ -23,115 +22,25 @@
perSystem =
{ system, lib, ... }:
let
# Since other parts of the CI are already doing the unit tests, we deactivate them here.
rosenpass-old = inputs.rosenpass-old.packages.${system}.default.overrideAttrs (old: {
rosenpassOld = inputs.rosenpass-old.packages.${system}.default.overrideAttrs (old: {
doCheck = false;
});
rosenpass-new = inputs.rosenpass-new.packages.${system}.default.overrideAttrs (old: {
rosenpassNew = inputs.rosenpass-old.packages.${system}.default.overrideAttrs (old: {
doCheck = false;
});
basicConnectivityOverlay = final: prev: {
rosenpass-peer-a = rosenpass-new;
rosenpass-peer-b = rosenpass-new;
defaultChecks = import ./integration-checks.nix {
inherit
system
lib
rosenpassNew
rosenpassOld
;
pkgs = inputs.nixpkgs;
};
backwardServerOverlay = final: prev: {
rosenpass-peer-a = rosenpass-old;
rosenpass-peer-b = rosenpass-new;
};
backwardClientOverlay = final: prev: {
rosenpass-peer-a = rosenpass-new;
rosenpass-peer-b = rosenpass-old;
};
multiPeerOverlay = final: prev: {
rosenpass-peer-a = rosenpass-new;
rosenpass-peer-b = rosenpass-new;
rosenpass-peer-c = rosenpass-new;
};
# The current version of ipython fails to build on i686 linux.
# We therefore pin an older version that works for the time beeing.
ipythonOverlay = final: prev: {
python313 = prev.python313.override {
packageOverrides = python-final: python-prev: {
ipython = python-prev.ipython.overridePythonAttrs (old: {
version = "8.37.0";
src = python-final.fetchPypi {
pname = "ipython";
version = "8.37.0";
hash = "sha256-yoFYQeGkGh5rc6CwjzA4r5siUlZNAfxAU1bTQDMBIhY=";
};
});
};
};
};
pkgsBasicConnectivity = import inputs.nixpkgs {
inherit system;
overlays = [
basicConnectivityOverlay
ipythonOverlay
];
};
pkgsBackwardServer = import inputs.nixpkgs {
inherit system;
overlays = [
backwardServerOverlay
ipythonOverlay
];
};
pkgsBackwardClient = import inputs.nixpkgs {
inherit system;
overlays = [
backwardClientOverlay
ipythonOverlay
];
};
pkgsMultiPeer = import inputs.nixpkgs {
inherit system;
overlays = [
multiPeerOverlay
ipythonOverlay
];
};
in
{
checks.basicConnectivity = pkgsBasicConnectivity.testers.runNixOSTest (
import ./rpsc-test.nix {
pkgs = pkgsBasicConnectivity;
inherit lib;
}
);
checks.backwardServer = pkgsBackwardServer.testers.runNixOSTest (
import ./rpsc-test.nix {
pkgs = pkgsBackwardServer;
inherit lib;
}
);
checks.backwardClient = pkgsBackwardClient.testers.runNixOSTest (
import ./rpsc-test.nix {
pkgs = pkgsBackwardClient;
inherit lib;
}
);
checks.multiPeer = pkgsMultiPeer.testers.runNixOSTest (
import ./rpsc-test.nix {
pkgs = pkgsMultiPeer;
inherit lib;
multiPeer = true;
}
);
checks = defaultChecks;
};
};
}

View File

@@ -0,0 +1,113 @@
{
pkgs,
lib,
system,
rosenpassOld,
rosenpassNew,
...
}:
let
# The current version of ipython fails to build on i686 linux.
# We therefore pin an older version that works for the time beeing.
ipythonOverlay = final: prev: {
python313 = prev.python313.override {
packageOverrides = python-final: python-prev: {
ipython = python-prev.ipython.overridePythonAttrs (old: {
version = "8.37.0";
src = python-final.fetchPypi {
pname = "ipython";
version = "8.37.0";
hash = "sha256-yoFYQeGkGh5rc6CwjzA4r5siUlZNAfxAU1bTQDMBIhY=";
};
});
};
};
};
# Since other parts of the CI are already doing the unit tests, we deactivate them here.
basicConnectivityOverlay = final: prev: {
rosenpass-peer-a = rosenpassNew;
rosenpass-peer-b = rosenpassNew;
};
backwardServerOverlay = final: prev: {
rosenpass-peer-a = rosenpassOld;
rosenpass-peer-b = rosenpassNew;
};
backwardClientOverlay = final: prev: {
rosenpass-peer-a = rosenpassNew;
rosenpass-peer-b = rosenpassOld;
};
multiPeerOverlay = final: prev: {
rosenpass-peer-a = rosenpassNew;
rosenpass-peer-b = rosenpassNew;
rosenpass-peer-c = rosenpassNew;
};
pkgsBasicConnectivity = import pkgs {
inherit system;
overlays = [
basicConnectivityOverlay
ipythonOverlay
];
};
pkgsBackwardServer = import pkgs {
inherit system;
overlays = [
backwardServerOverlay
ipythonOverlay
];
};
pkgsBackwardClient = import pkgs {
inherit system;
overlays = [
backwardClientOverlay
ipythonOverlay
];
};
pkgsMultiPeer = import pkgs {
inherit system;
overlays = [
multiPeerOverlay
ipythonOverlay
];
};
generatedChecks = {
basicConnectivity = pkgsBasicConnectivity.testers.runNixOSTest (
import ./rpsc-test.nix {
pkgs = pkgsBasicConnectivity;
inherit lib;
}
);
backwardServer = pkgsBackwardServer.testers.runNixOSTest (
import ./rpsc-test.nix {
pkgs = pkgsBackwardServer;
inherit lib;
}
);
backwardClient = pkgsBackwardClient.testers.runNixOSTest (
import ./rpsc-test.nix {
pkgs = pkgsBackwardClient;
inherit lib;
}
);
multiPeer = pkgsMultiPeer.testers.runNixOSTest (
import ./rpsc-test.nix {
pkgs = pkgsMultiPeer;
inherit lib;
multiPeer = true;
}
);
};
in
generatedChecks