diff --git a/pkgs/development/interpreters/bats/default.nix b/pkgs/development/interpreters/bats/default.nix index afffef1d1f68..3828ed8a0968 100644 --- a/pkgs/development/interpreters/bats/default.nix +++ b/pkgs/development/interpreters/bats/default.nix @@ -134,78 +134,80 @@ resholve.mkDerivation rec { ''; }; - passthru.tests.libraries = runCommand "${bats.name}-with-libraries-test" { - testScript = '' - setup() { - bats_load_library bats-support - bats_load_library bats-assert - bats_load_library bats-file - bats_load_library bats-detik/detik.bash + passthru.tests = { + libraries = runCommand "${bats.name}-with-libraries-test" { + testScript = '' + setup() { + bats_load_library bats-support + bats_load_library bats-assert + bats_load_library bats-file + bats_load_library bats-detik/detik.bash - bats_require_minimum_version 1.5.0 + bats_require_minimum_version 1.5.0 - TEST_TEMP_DIR="$(temp_make --prefix 'nixpkgs-bats-test')" - } + TEST_TEMP_DIR="$(temp_make --prefix 'nixpkgs-bats-test')" + } - teardown() { - temp_del "$TEST_TEMP_DIR" - } + teardown() { + temp_del "$TEST_TEMP_DIR" + } - @test echo_hi { - run -0 echo hi - assert_output "hi" - } + @test echo_hi { + run -0 echo hi + assert_output "hi" + } - @test cp_failure { - run ! cp - assert_line --index 0 "cp: missing file operand" - assert_line --index 1 "Try 'cp --help' for more information." - } + @test cp_failure { + run ! cp + assert_line --index 0 "cp: missing file operand" + assert_line --index 1 "Try 'cp --help' for more information." + } - @test file_exists { - echo "hi" > "$TEST_TEMP_DIR/hello.txt" - assert_file_exist "$TEST_TEMP_DIR/hello.txt" - run cat "$TEST_TEMP_DIR/hello.txt" - assert_output "hi" - } + @test file_exists { + echo "hi" > "$TEST_TEMP_DIR/hello.txt" + assert_file_exist "$TEST_TEMP_DIR/hello.txt" + run cat "$TEST_TEMP_DIR/hello.txt" + assert_output "hi" + } + ''; + passAsFile = [ "testScript" ]; + } '' + ${bats.withLibraries (p: [ p.bats-support p.bats-assert p.bats-file p.bats-detik ])}/bin/bats "$testScriptPath" + touch "$out" ''; - passAsFile = [ "testScript" ]; - } '' - ${bats.withLibraries (p: [ p.bats-support p.bats-assert p.bats-file p.bats-detik ])}/bin/bats "$testScriptPath" - touch "$out" - ''; - passthru.tests.upstream = bats.unresholved.overrideAttrs (old: { - name = "${bats.name}-tests"; - dontInstall = true; # just need the build directory - nativeInstallCheckInputs = [ - ncurses - parallel # skips some tests if it can't detect - flock # skips some tests if it can't detect - procps - ] ++ lib.optionals stdenv.isDarwin [ lsof ]; - inherit doInstallCheck; - installCheckPhase = '' - # TODO: cut if https://github.com/bats-core/bats-core/issues/418 allows - sed -i '/test works even if PATH is reset/a skip "disabled for nix build"' test/bats.bats + upstream = bats.unresholved.overrideAttrs (old: { + name = "${bats.name}-tests"; + dontInstall = true; # just need the build directory + nativeInstallCheckInputs = [ + ncurses + parallel # skips some tests if it can't detect + flock # skips some tests if it can't detect + procps + ] ++ lib.optionals stdenv.isDarwin [ lsof ]; + inherit doInstallCheck; + installCheckPhase = '' + # TODO: cut if https://github.com/bats-core/bats-core/issues/418 allows + sed -i '/test works even if PATH is reset/a skip "disabled for nix build"' test/bats.bats - # skip tests that assume bats `install.sh` will be in BATS_ROOT - rm test/root.bats + # skip tests that assume bats `install.sh` will be in BATS_ROOT + rm test/root.bats - '' + (lib.optionalString stdenv.hostPlatform.isDarwin '' - # skip new timeout tests which are failing on macOS for unclear reasons - # This might relate to procps not having a pkill? - rm test/timeout.bats - '') + '' + '' + (lib.optionalString stdenv.hostPlatform.isDarwin '' + # skip new timeout tests which are failing on macOS for unclear reasons + # This might relate to procps not having a pkill? + rm test/timeout.bats + '') + '' - # test generates file with absolute shebang dynamically - substituteInPlace test/install.bats --replace \ - "/usr/bin/env bash" "${bash}/bin/bash" + # test generates file with absolute shebang dynamically + substituteInPlace test/install.bats --replace \ + "/usr/bin/env bash" "${bash}/bin/bash" - ${bats}/bin/bats test - touch $out - ''; - }); + ${bats}/bin/bats test + touch $out + ''; + }); + }; meta = with lib; { homepage = "https://github.com/bats-core/bats-core";