xtf: init at 0-unstable-2024-07-25 (#335855)

This commit is contained in:
Pol Dellaiera
2024-09-09 10:00:57 +02:00
committed by GitHub
2 changed files with 81 additions and 0 deletions
@@ -26,6 +26,7 @@ Some other notable packages that compose the Xen Ecosystem include:
- `ocamlPackages.xenstore-tool`: XAPI's `oxenstore` utilities.
- `xen-guest-agent`: Guest drivers for UNIX domUs.
- `win-pvdrivers`: Guest drivers for Windows domUs.
- `xtf`: The Xen Test Framework.
## Updating
@@ -100,6 +101,8 @@ open a PR fixing the script, and update Xen manually:
```
Change the value of `xenToEvaluate` to evaluate all relevant Xen packages.
1. Run `xtf --all --host` as root when booted into the Xen update, and make
sure no tests fail.
1. Clean up your changes and commit them, making sure to follow the
[Nixpkgs Contribution Guidelines](../../../../CONTRIBUTING.md).
1. Open a PR and await a review from the current maintainers.
+78
View File
@@ -0,0 +1,78 @@
{
lib,
fetchgit,
unstableGitUpdater,
stdenv,
doxygen,
graphviz,
python3Packages,
}:
stdenv.mkDerivation {
pname = "xtf";
version = "0-unstable-2024-07-25";
outputs = [
"out" # xtf-runner and test suite.
"doc" # Autogenerated HTML documentation website.
"dev" # Development headers.
];
src = fetchgit {
url = "https://xenbits.xenproject.org/git-http/xtf.git";
rev = "f37c4574dd79d058c035be989ac6648508556a1a";
hash = "sha256-3eOKQXdyFX0iY90UruK8lLfnXQt+cOlvyW/KMj2hczQ=";
};
nativeBuildInputs =
(with python3Packages; [
python
wrapPython
])
++ [
doxygen
graphviz
];
buildFlags = [ "doxygen" ];
installFlags = [
"xtfdir=$(out)/share/xtf"
];
postInstall =
# Much like Xen, XTF installs its files to dist/nix/store/*/*,
# so we need to copy them to the right place.
''
mkdir -p ''${!outputBin}/share
cp -prvd dist/nix/store/*/* ''${!outputBin}
''
# The documentation and development headers aren't in the dist/
# folder, so we copy those too.
+ ''
mkdir -p ''${!outputDoc}/share/doc/xtf
cp -prvd docs/autogenerated/html ''${!outputDoc}/share/doc/xtf
mkdir -p ''${!outputDev}/include
cp -prvd include ''${!outputDev}
''
# Wrap xtf-runner, and link it to $out/bin.
# This is necessary because the real xtf-runner should
# be in the same directory as the tests/ directory.
+ ''
wrapPythonProgramsIn "''${!outputBin}/share/xtf" "''${!outputBin} $pythonPath"
mkdir -p ''${!outputBin}/bin
ln -s ''${!outputBin}/share/xtf/xtf-runner ''${!outputBin}/bin/xtf-runner
'';
passthru.updateScript = unstableGitUpdater { };
meta = {
description = "Xen Test Framework and Suite for creating microkernel-based tests";
homepage = "https://xenbits.xenproject.org/docs/xtf/index.html";
license = lib.licenses.bsd2;
maintainers = with lib.maintainers; [ sigmasquadron ];
mainProgram = "xtf-runner";
platforms = lib.lists.intersectLists lib.platforms.linux lib.platforms.x86_64;
};
}