nix-bitcoin/test/lib/make-test-vm.nix
2020-12-11 13:27:05 +01:00

38 lines
1.3 KiB
Nix

testArgs:
let
pkgs = import <nixpkgs> { config = {}; overlays = []; };
test = (import "${pkgs.path}/nixos/tests/make-test-python.nix") (testArgs pkgs);
fixedTest = { ... }@args:
let
pkgsFixed = pkgs // {
# Fix the black Python code formatter that's used in the test to allow the test
# script to have longer lines. The default width of 88 chars is too restrictive for
# our script.
python3Packages = pkgs.python3Packages // {
black = pkgs.writeScriptBin "black" ''
fileToCheck=''${@:$#}
[[ $fileToCheck = *test-script ]] && extraArgs='--line-length 100'
exec ${pkgs.python3Packages.black}/bin/black $extraArgs "$@"
'';
};
};
test' = test (args // { pkgs = pkgsFixed; });
in
# See nixpkgs/nixos/lib/testing-python.nix for the original definition
test'.overrideAttrs (_: {
# 1. Save test output
# 2. Add link to driver so that a gcroot to a test prevents the driver from
# being garbage-collected
buildCommand = ''
mkdir $out
LOGFILE=$out/output.xml tests='exec(os.environ["testScript"])' ${test'.driver}/bin/nixos-test-driver
ln -s ${test'.driver} $out/driver
'';
}) // { inherit (test') nodes driver; } ;
in
fixedTest