Unverified Commit de739a1a authored by Robert Hensing's avatar Robert Hensing Committed by GitHub
Browse files

shellspec: Add `passthru` tests (#453348)

parents 811ff701 f3c573a4
Loading
Loading
Loading
Loading
+25 −1
Original line number Diff line number Diff line
@@ -3,6 +3,11 @@
  stdenv,
  fetchFromGitHub,
  bash,

  # Test-only
  dash,
  ksh,
  zsh,
}:

stdenv.mkDerivation (finalAttrs: {
@@ -22,12 +27,31 @@ stdenv.mkDerivation (finalAttrs: {

  checkPhase = ''
    ./shellspec --no-banner --task fixture:stat:prepare
    ./shellspec --no-banner spec --jobs "$(nproc)"
    ./shellspec --no-banner spec --jobs "$(nproc)" ${finalAttrs.extraTestArgs or ""}
  '';

  # "Building" the script happens in Docker
  dontBuild = true;

  passthru.tests =
    let
      # Tests are not enabled by default, so enable them.
      enabled = finalAttrs.overrideAttrs { doCheck = true; };
      # For adding variations. Use testWith (finalAttrs: prevAttrs: { }) if needed.
      testWith = enabled.overrideAttrs;
    in
    {
      # Enable tests in all variations
      # Some of these may log failures, which are later treated as SKIPPED.
      # This is normal. Look for "0 failures" and a successful derivation build.
      with-bin-sh = enabled;
      with-bash = testWith { extraTestArgs = "--shell ${lib.getExe bash}"; };
      # with-dash: Broken as of shellspec 0.28.1, dash 0.5.13.1
      # with-dash = testWith { extraTestArgs = "--shell ${lib.getExe dash}"; };
      with-ksh = testWith { extraTestArgs = "--shell ${lib.getExe ksh}"; };
      with-zsh = testWith { extraTestArgs = "--shell ${lib.getExe zsh}"; };
    };

  meta = {
    description = "Full-featured BDD unit testing framework for bash, ksh, zsh, dash and all POSIX shells";
    homepage = "https://shellspec.info/";