xtf: init at 0-unstable-2024-07-25 (#335855)
This commit is contained in:
@@ -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.
|
||||
|
||||
@@ -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;
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user