mirror of
https://github.com/NixOS/nixpkgs.git
synced 2025-01-19 03:14:03 +00:00
testers: convert to a format that is kind of compatible with nixdoc
Examples: support has to be added to https://github.com/nix-community/nixdoc 'nixdoc --category testers --description "nixpkgs testers" --file ./pkgs/build-support/testers/default.nix'
This commit is contained in:
parent
f1c7f19e49
commit
3cc2e86bab
@ -1,31 +1,47 @@
|
||||
{ pkgs, lib, callPackage, runCommand }:
|
||||
{
|
||||
|
||||
/* Checks that two packages produce the exact same build instructions.
|
||||
|
||||
This can be used to make sure that a certain difference of configuration,
|
||||
such as the presence of an overlay does not cause a cache miss.
|
||||
|
||||
When the derivations are equal, the return value is an empty file.
|
||||
Otherwise, the build log explains the difference via `nix-diff`.
|
||||
|
||||
Example:
|
||||
|
||||
testEqualDerivation
|
||||
"The hello package must stay the same when enabling checks."
|
||||
hello
|
||||
(hello.overrideAttrs(o: { doCheck = true; }))
|
||||
*/
|
||||
testEqualDerivation = callPackage ./test-equal-derivation.nix { };
|
||||
|
||||
/* Checks the command output contains the specified version
|
||||
*
|
||||
* Although simplistic, this test assures that the main program
|
||||
* can run. While there's no substitute for a real test case,
|
||||
* it does catch dynamic linking errors and such. It also provides
|
||||
* some protection against accidentally building the wrong version,
|
||||
* for example when using an 'old' hash in a fixed-output derivation.
|
||||
*
|
||||
* Examples:
|
||||
*
|
||||
* passthru.tests.version = testVersion { package = hello; };
|
||||
*
|
||||
* passthru.tests.version = testVersion {
|
||||
* package = seaweedfs;
|
||||
* command = "weed version";
|
||||
* };
|
||||
*
|
||||
* passthru.tests.version = testVersion {
|
||||
* package = key;
|
||||
* command = "KeY --help";
|
||||
* # Wrong '2.5' version in the code. Drop on next version.
|
||||
* version = "2.5";
|
||||
* };
|
||||
*/
|
||||
|
||||
Although simplistic, this test assures that the main program
|
||||
can run. While there's no substitute for a real test case,
|
||||
it does catch dynamic linking errors and such. It also provides
|
||||
some protection against accidentally building the wrong version,
|
||||
for example when using an 'old' hash in a fixed-output derivation.
|
||||
|
||||
Examples:
|
||||
|
||||
passthru.tests.version = testVersion { package = hello; };
|
||||
|
||||
passthru.tests.version = testVersion {
|
||||
package = seaweedfs;
|
||||
command = "weed version";
|
||||
};
|
||||
|
||||
passthru.tests.version = testVersion {
|
||||
package = key;
|
||||
command = "KeY --help";
|
||||
# Wrong '2.5' version in the code. Drop on next version.
|
||||
version = "2.5";
|
||||
};
|
||||
*/
|
||||
testVersion =
|
||||
{ package,
|
||||
command ? "${package.meta.mainProgram or package.pname or package.name} --version",
|
||||
|
@ -1,22 +1,5 @@
|
||||
{ lib, runCommand, emptyFile, nix-diff }:
|
||||
|
||||
/*
|
||||
Checks that two packages produce the exact same build instructions.
|
||||
|
||||
This can be used to make sure that a certain difference of configuration,
|
||||
such as the presence of an overlay does not cause a cache miss.
|
||||
|
||||
When the derivations are equal, the return value is an empty file.
|
||||
Otherwise, the build log explains the difference via `nix-diff`.
|
||||
|
||||
Example:
|
||||
|
||||
testEqualDerivation
|
||||
"The hello package must stay the same when enabling checks."
|
||||
hello
|
||||
(hello.overrideAttrs(o: { doCheck = true; }))
|
||||
|
||||
*/
|
||||
assertion: a: b:
|
||||
let
|
||||
drvA = builtins.unsafeDiscardOutputDependency a.drvPath or (throw "testEqualDerivation second argument must be a package");
|
||||
|
Loading…
Reference in New Issue
Block a user