Files
rosenpass/tests/legacy-distro-packaging.nix
wucke13 22b980a61f chore: format everything
This implicates a change from nixpkgs-fmt to nixfmt. Nixfmt will become
the new standard on nix formatting, sanctioned by the nixpkgs. To verify
that these changes are purely in whitespace, but not semantic:

git diff --ignore-all-space -w HEAD^!

That will only show newline changes, make the diffing somewhat easier.

Signed-off-by: wucke13 <wucke13+github@gmail.com>
2025-05-09 18:22:07 +02:00

83 lines
2.4 KiB
Nix

{
pkgs,
rosenpass-deb,
rosenpass-rpm,
}:
let
wg-deb = pkgs.fetchurl {
url = "https://ftp.de.debian.org/debian/pool/main/w/wireguard/wireguard-tools_1.0.20210914-1.1_amd64.deb";
hash = "sha256-s/hCUisQLR19kEbV6d8JXzzTAWUPM+NV0APgHizRGA4=";
};
wg-rpm = pkgs.fetchurl {
url = "https://mirrors.n-ix.net/fedora/linux/releases/40/Everything/x86_64/os/Packages/w/wireguard-tools-1.0.20210914-6.fc40.x86_64.rpm";
hash = "sha256-lh6kCW5gh9bfuOwzjPv96ol1d6u1JTIr/oKH5QbAlK0=";
};
pkgsDirDeb = pkgs.runCommand "packages" { } ''
mkdir $out
cp ${rosenpass-deb} $out/rosenpass.deb
cp ${wg-deb} $out/wireguard.deb
cp ${./prepare-test.sh} $out/prepare-test.sh
'';
pkgsDirRpm = pkgs.runCommand "packages" { } ''
mkdir $out
cp ${rosenpass-rpm} $out/rosenpass.rpm
cp ${wg-rpm} $out/wireguard.rpm
cp ${./prepare-test.sh} $out/prepare-test.sh
'';
test =
{
tester,
installPrefix,
suffix,
source,
}:
(tester {
sharedDirs.share = {
inherit source;
target = "/mnt/share";
};
testScript = ''
vm.wait_for_unit("multi-user.target")
vm.succeed("${installPrefix} /mnt/share/wireguard.${suffix}")
vm.succeed("${installPrefix} /mnt/share/rosenpass.${suffix}")
vm.succeed("bash /mnt/share/prepare-test.sh")
vm.succeed(f"systemctl start rp@server")
vm.succeed(f"systemctl start rp@client")
vm.wait_for_unit("rp@server.service")
vm.wait_for_unit("rp@client.service")
vm.wait_until_succeeds("wg show all preshared-keys | grep --invert-match none", timeout=5);
psk_server = vm.succeed("wg show rp-server preshared-keys").strip().split()[-1]
psk_client = vm.succeed("wg show rp-client preshared-keys").strip().split()[-1]
assert psk_server == psk_client, "preshared-key exchange must be successful"
'';
}).sandboxed;
in
{
package-deb-debian-13 = test {
tester = pkgs.testers.nonNixOSDistros.debian."13";
installPrefix = "dpkg --install";
suffix = "deb";
source = pkgsDirDeb;
};
package-deb-ubuntu-23_10 = test {
tester = pkgs.testers.nonNixOSDistros.ubuntu."23_10";
installPrefix = "dpkg --install";
suffix = "deb";
source = pkgsDirDeb;
};
package-rpm-fedora_40 = test {
tester = pkgs.testers.nonNixOSDistros.fedora."40";
installPrefix = "rpm -i";
suffix = "rpm";
source = pkgsDirRpm;
};
}