diff options
author | Timo Kaufmann <timokau@zoho.com> | 2018-11-07 00:05:22 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-11-07 00:05:22 +0100 |
commit | 6141939d6e0a77c84905efd560c03c3032164ef1 (patch) | |
tree | 57930c5d117d67174ca6ba7f2219549eb4c2c116 /pkgs | |
parent | 13892da3e76351e0a280fa390e8cb49b1b8b9265 (diff) | |
parent | 02e1f00ffdd0c1a74fbc0be5f314b8921b0c9165 (diff) | |
download | nixlib-6141939d6e0a77c84905efd560c03c3032164ef1.tar nixlib-6141939d6e0a77c84905efd560c03c3032164ef1.tar.gz nixlib-6141939d6e0a77c84905efd560c03c3032164ef1.tar.bz2 nixlib-6141939d6e0a77c84905efd560c03c3032164ef1.tar.lz nixlib-6141939d6e0a77c84905efd560c03c3032164ef1.tar.xz nixlib-6141939d6e0a77c84905efd560c03c3032164ef1.tar.zst nixlib-6141939d6e0a77c84905efd560c03c3032164ef1.zip |
Merge pull request #44439 from Ekleog/meta-tests
[RFC] Use `meta.tests` to link from packages to the tests that test them
Diffstat (limited to 'pkgs')
-rw-r--r-- | pkgs/servers/mail/dovecot/default.nix | 4 | ||||
-rw-r--r-- | pkgs/servers/mail/opensmtpd/default.nix | 5 | ||||
-rw-r--r-- | pkgs/stdenv/generic/check-meta.nix | 12 | ||||
-rw-r--r-- | pkgs/top-level/all-packages.nix | 20 |
4 files changed, 38 insertions, 3 deletions
diff --git a/pkgs/servers/mail/dovecot/default.nix b/pkgs/servers/mail/dovecot/default.nix index 3e628f876dd7..638393bd356a 100644 --- a/pkgs/servers/mail/dovecot/default.nix +++ b/pkgs/servers/mail/dovecot/default.nix @@ -1,6 +1,7 @@ { stdenv, lib, fetchurl, perl, pkgconfig, systemd, openssl , bzip2, zlib, lz4, inotify-tools, pam, libcap , clucene_core_2, icu, openldap, libsodium, libstemmer, cyrus_sasl +, nixosTests # Auth modules , withMySQL ? false, mysql , withPgSQL ? false, postgresql @@ -74,5 +75,8 @@ stdenv.mkDerivation rec { description = "Open source IMAP and POP3 email server written with security primarily in mind"; maintainers = with stdenv.lib.maintainers; [ peti rickynils fpletz ]; platforms = stdenv.lib.platforms.unix; + tests = { + opensmtpd-interaction = nixosTests.opensmtpd; + }; }; } diff --git a/pkgs/servers/mail/opensmtpd/default.nix b/pkgs/servers/mail/opensmtpd/default.nix index d55804504442..236e1dba181e 100644 --- a/pkgs/servers/mail/opensmtpd/default.nix +++ b/pkgs/servers/mail/opensmtpd/default.nix @@ -1,5 +1,5 @@ { stdenv, lib, fetchurl, fetchpatch, autoconf, automake, libtool, bison -, libasr, libevent, zlib, libressl, db, pam +, libasr, libevent, zlib, libressl, db, pam, nixosTests }: stdenv.mkDerivation rec { @@ -61,5 +61,8 @@ stdenv.mkDerivation rec { license = licenses.isc; platforms = platforms.linux; maintainers = with maintainers; [ rickynils obadz ekleog ]; + tests = { + basic-functionality-and-dovecot-interaction = nixosTests.opensmtpd; + }; }; } diff --git a/pkgs/stdenv/generic/check-meta.nix b/pkgs/stdenv/generic/check-meta.nix index 26cd9f8beb96..0e93df855471 100644 --- a/pkgs/stdenv/generic/check-meta.nix +++ b/pkgs/stdenv/generic/check-meta.nix @@ -165,6 +165,16 @@ let platforms = listOf (either str lib.systems.parsedPlatform.types.system); hydraPlatforms = listOf str; broken = bool; + # TODO: refactor once something like Profpatsch's types-simple will land + tests = attrsOf (mkOptionType { + name = "test"; + check = x: isDerivation x && + x ? meta.timeout && + x ? meta.needsVMSupport; + merge = lib.options.mergeOneOption; + }); + needsVMSupport = bool; + timeout = int; # Weirder stuff that doesn't appear in the documentation? knownVulnerabilities = listOf str; @@ -184,8 +194,6 @@ let isIbusEngine = bool; isGutenprint = bool; badPlatforms = platforms; - # Hydra build timeout - timeout = int; }; checkMetaAttr = k: v: diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 5a1b72ff1b38..9e9ee8797ff1 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -71,6 +71,26 @@ with pkgs; common-updater-scripts = callPackage ../common-updater/scripts.nix { }; + ### Push NixOS tests inside the fixed point + + nixosTests = + let + # TODO(Ericson2314,ekleog): Check this will work correctly with cross- + system = builtins.currentSystem; + rawTests = (import ../../nixos/release.nix { + nixpkgs = pkgs; + }).tests; + testNames = builtins.attrNames rawTests; + filteredList = builtins.filter + (test: rawTests.${test} ? ${system}) + testNames; + finalList = map + (test: { name = test; value = rawTests.${test}.${system}; }) + filteredList; + finalTests = builtins.listToAttrs finalList; + in + finalTests; + ### BUILD SUPPORT autoreconfHook = makeSetupHook |