From 51518a5fd34ca9eb5e7aa203f89023b91f029028 Mon Sep 17 00:00:00 2001 From: Robert Hensing Date: Mon, 14 Nov 2022 19:03:35 +0100 Subject: [PATCH] stdenv.tests: Add succeedOnFailure --- pkgs/stdenv/generic/default.nix | 5 +++++ pkgs/stdenv/tests/succeedOnFailure.nix | 14 ++++++++++++++ 2 files changed, 19 insertions(+) create mode 100644 pkgs/stdenv/tests/succeedOnFailure.nix diff --git a/pkgs/stdenv/generic/default.nix b/pkgs/stdenv/generic/default.nix index 4fa9ad6de2ee..81255726284b 100644 --- a/pkgs/stdenv/generic/default.nix +++ b/pkgs/stdenv/generic/default.nix @@ -175,6 +175,11 @@ let # without running any commands. Because this will also skip `shopt -s extglob` # commands and extglob affects the Bash parser, we enable extglob always. shellDryRun = "${stdenv.shell} -n -O extglob"; + + tests = { + succeedOnFailure = import ../tests/succeedOnFailure.nix { inherit stdenv; }; + }; + passthru.tests = lib.warn "Use `stdenv.tests` instead. `passthru` is a `mkDerivation` detail." stdenv.tests; } # Propagate any extra attributes. For instance, we use this to diff --git a/pkgs/stdenv/tests/succeedOnFailure.nix b/pkgs/stdenv/tests/succeedOnFailure.nix new file mode 100644 index 000000000000..fef7f1786997 --- /dev/null +++ b/pkgs/stdenv/tests/succeedOnFailure.nix @@ -0,0 +1,14 @@ +{ stdenv }: + +stdenv.mkDerivation { + name = "stdenv-test-succeedOnFailure"; + + succeedOnFailure = true; + + passAsFile = [ "buildCommand" ]; + buildCommand = '' + mkdir $out + echo foo > $out/foo + exit 1 + ''; +}