66 lines
1.8 KiB
Nix
66 lines
1.8 KiB
Nix
{
|
|
description = "Tests for SelfPrivacy";
|
|
|
|
inputs.nixpkgs.url = github:nixos/nixpkgs;
|
|
|
|
outputs = { self, nixpkgs }:
|
|
let
|
|
system = "x86_64-linux";
|
|
pkgs = nixpkgs.legacyPackages.${system};
|
|
lib = nixpkgs.lib;
|
|
|
|
# Generate a user-friendly version number. TODO
|
|
version = (builtins.substring 0 8 self.lastModifiedDate) + self.shortRev;
|
|
|
|
makeTestProgram = { name, script, env-vars }:
|
|
pkgs.runCommandLocal name
|
|
{
|
|
nativeBuildInputs = [ pkgs.makeWrapper ];
|
|
} ''
|
|
ls -l
|
|
install -m755 ${script} \
|
|
-D $out/bin/${name}
|
|
patchShebangs $out/bin/${name}
|
|
wrapProgram $out/bin/${name} \
|
|
${lib.strings.concatMapStringsSep "\n"
|
|
({name, value}: "--prefix ${name} : ${value}") env-vars} \
|
|
--prefix PATH : ${with pkgs; lib.makeBinPath [
|
|
curl
|
|
diffutils
|
|
gzip
|
|
jd-diff-patch
|
|
jq
|
|
openssh
|
|
gnutar
|
|
]}
|
|
'';
|
|
in
|
|
{
|
|
packages.${system} = lib.attrsets.listToAttrs (map
|
|
(a@{ name, ... }: lib.attrsets.nameValuePair name (makeTestProgram a))
|
|
[
|
|
{
|
|
name = "query-minimum-services";
|
|
script = ./query-services-state.sh;
|
|
env-vars = [{
|
|
name = "EXPECTED_RESPONSE_FILE";
|
|
value = ./minimal-services-expected-response.json;
|
|
}];
|
|
}
|
|
{
|
|
name = "query-all-services";
|
|
script = ./query-services-state.sh;
|
|
env-vars = [{
|
|
name = "EXPECTED_RESPONSE_FILE";
|
|
value = ./all-services-expected-response.json;
|
|
}];
|
|
}
|
|
{
|
|
name = "enable-service";
|
|
script = ./enable-service.sh;
|
|
env-vars = [ ];
|
|
}
|
|
]);
|
|
};
|
|
}
|