55 lines
960 B
Nix
55 lines
960 B
Nix
lib: testProgram:
|
|
let
|
|
fs = mode: dir: data: {
|
|
mode = lib.fromHexString mode;
|
|
inherit
|
|
dir
|
|
data
|
|
;
|
|
};
|
|
|
|
ignore = "//ignore";
|
|
|
|
ent = root: target: vfs_optstr: fstype: source: fs_optstr: {
|
|
id = -1;
|
|
parent = -1;
|
|
inherit
|
|
root
|
|
target
|
|
vfs_optstr
|
|
fstype
|
|
source
|
|
fs_optstr
|
|
;
|
|
};
|
|
|
|
callTestCase =
|
|
path:
|
|
let
|
|
tc = import path {
|
|
inherit
|
|
fs
|
|
ent
|
|
ignore
|
|
;
|
|
};
|
|
in
|
|
{
|
|
name = "check-sandbox-${tc.name}";
|
|
verbose = true;
|
|
inherit (tc) tty mapRealUid;
|
|
share = testProgram;
|
|
packages = [ ];
|
|
path = "${testProgram}/bin/fortify-test";
|
|
args = [
|
|
"test"
|
|
(toString (builtins.toFile "fortify-${tc.name}-want.json" (builtins.toJSON tc.want)))
|
|
];
|
|
};
|
|
in
|
|
{
|
|
preset = callTestCase ./preset.nix;
|
|
tty = callTestCase ./tty.nix;
|
|
mapuid = callTestCase ./mapuid.nix;
|
|
}
|