meta.tests: rename into passthru.tests

Nix currently rejects derivations in `meta` values. This works around
that limitation by using `passthru` instead.

Closes https://github.com/NixOS/nixpkgs/issues/50230
This commit is contained in:
Léo Gaspard 2018-11-11 22:55:23 +09:00
parent cae5598611
commit 2986ce16a8
No known key found for this signature in database
GPG Key ID: 8A55848B6090F9CF
5 changed files with 20 additions and 14 deletions

View File

@ -255,6 +255,17 @@ meta.platforms = stdenv.lib.platforms.linux;
<varname>tests</varname> <varname>tests</varname>
</term> </term>
<listitem> <listitem>
<warning>
<para>
This attribute is special in that it is not actually under the
<literal>meta</literal> attribute set but rather under the
<literal>passthru</literal> attribute set. This is due to a current
limitation of Nix, and will change as soon as Nixpkgs will be able to
depend on a new enough version of Nix. See
<link xlink:href="https://github.com/NixOS/nix/issues/2532">the relevant
issue</link> for more details.
</para>
</warning>
<para> <para>
An attribute set with as values tests. A test is a derivation, which An attribute set with as values tests. A test is a derivation, which
builds successfully when the test passes, and fails to build otherwise. A builds successfully when the test passes, and fails to build otherwise. A
@ -269,7 +280,7 @@ meta.platforms = stdenv.lib.platforms.linux;
{ /* ... */, nixosTests }: { /* ... */, nixosTests }:
{ {
# ... # ...
meta.tests = { passthru.tests = {
basic-functionality-and-dovecot-integration = nixosTests.opensmtpd; basic-functionality-and-dovecot-integration = nixosTests.opensmtpd;
}; };
} }

View File

@ -2,7 +2,7 @@
# The return value of this function will be an attrset with arbitrary depth and # The return value of this function will be an attrset with arbitrary depth and
# the `anything` returned by callTest at its test leafs. # the `anything` returned by callTest at its test leafs.
# The tests not supported by `system` will be replaced with `{}`, so that # The tests not supported by `system` will be replaced with `{}`, so that
# `meta.tests` can contain links to those without breaking on architectures # `passthru.tests` can contain links to those without breaking on architectures
# where said tests are unsupported. # where said tests are unsupported.
# Example callTest that just extracts the derivation from the test: # Example callTest that just extracts the derivation from the test:
# callTest = t: t.test; # callTest = t: t.test;

View File

@ -68,11 +68,8 @@ stdenv.mkDerivation rec {
description = "Open source IMAP and POP3 email server written with security primarily in mind"; description = "Open source IMAP and POP3 email server written with security primarily in mind";
maintainers = with stdenv.lib.maintainers; [ peti rickynils fpletz ]; maintainers = with stdenv.lib.maintainers; [ peti rickynils fpletz ];
platforms = stdenv.lib.platforms.unix; platforms = stdenv.lib.platforms.unix;
# https://github.com/NixOS/nixpkgs/issues/50230 must be resolved before };
# this can be enabled. passthru.tests = {
# opensmtpd-interaction = nixosTests.opensmtpd;
# tests = {
# opensmtpd-interaction = nixosTests.opensmtpd;
# };
}; };
} }

View File

@ -61,11 +61,8 @@ stdenv.mkDerivation rec {
license = licenses.isc; license = licenses.isc;
platforms = platforms.linux; platforms = platforms.linux;
maintainers = with maintainers; [ rickynils obadz ekleog ]; maintainers = with maintainers; [ rickynils obadz ekleog ];
# https://github.com/NixOS/nixpkgs/issues/50230 must be resolved before };
# this can be enabled. passthru.tests = {
# basic-functionality-and-dovecot-interaction = nixosTests.opensmtpd;
# tests = {
# basic-functionality-and-dovecot-interaction = nixosTests.opensmtpd;
# };
}; };
} }

View File

@ -166,6 +166,7 @@ let
hydraPlatforms = listOf str; hydraPlatforms = listOf str;
broken = bool; broken = bool;
# TODO: refactor once something like Profpatsch's types-simple will land # TODO: refactor once something like Profpatsch's types-simple will land
# This is currently dead code due to https://github.com/NixOS/nix/issues/2532
tests = attrsOf (mkOptionType { tests = attrsOf (mkOptionType {
name = "test"; name = "test";
check = x: x == {} || ( # Accept {} for tests that are unsupported check = x: x == {} || ( # Accept {} for tests that are unsupported