From 14830b18bfbd6c9149f3d8800bd65bbd7c83f6c4 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Tue, 25 Aug 2026 22:04:59 +0300 Subject: [PATCH] tests: skip permission tests if permission bits are being overridden e.g. if running as root in a docker container --- plugins/python-build/test/build.bats | 3 +++ plugins/python-build/test/test_helper.bash | 4 ++++ test/rehash.bats | 2 ++ test/test_helper.bash | 5 +++++ 4 files changed, 14 insertions(+) diff --git a/plugins/python-build/test/build.bats b/plugins/python-build/test/build.bats index 7d787eab..fe6e1abb 100644 --- a/plugins/python-build/test/build.bats +++ b/plugins/python-build/test/build.bats @@ -1276,6 +1276,7 @@ OUT mkdir -p "$INSTALL_ROOT/bin" touch "$INSTALL_ROOT/bin/package" chmod -w "$INSTALL_ROOT/bin/package" + skip_if_nonposix_security -w "$INSTALL_ROOT/bin/package" install_fixture definitions/without-checksum assert_success @@ -1288,6 +1289,7 @@ OUT export TMPDIR="${BATS_TEST_TMPDIR}/build" mkdir -p "$TMPDIR" chmod -w "$TMPDIR" + skip_if_nonposix_security -w "$TMPDIR" touch "${BATS_TEST_TMPDIR}/build-definition" run python-build "${BATS_TEST_TMPDIR}/build-definition" "$INSTALL_ROOT" @@ -1298,6 +1300,7 @@ OUT export TMPDIR="${BATS_TEST_TMPDIR}/build" mkdir -p "$TMPDIR" chmod -x "$TMPDIR" + skip_if_nonposix_security -x "$TMPDIR" touch "${BATS_TEST_TMPDIR}/build-definition" run python-build "${BATS_TEST_TMPDIR}/build-definition" "$INSTALL_ROOT" diff --git a/plugins/python-build/test/test_helper.bash b/plugins/python-build/test/test_helper.bash index 82321e58..a72806ab 100644 --- a/plugins/python-build/test/test_helper.bash +++ b/plugins/python-build/test/test_helper.bash @@ -162,3 +162,7 @@ path_without() { echo "$path" } +skip_if_nonposix_security() { + true "${1:?}" "${2:?}" + test "$@" && skip "UNIX permission bits are being overridden" || true +} diff --git a/test/rehash.bats b/test/rehash.bats index 342d7e0c..3d31d5eb 100755 --- a/test/rehash.bats +++ b/test/rehash.bats @@ -13,6 +13,8 @@ load test_helper @test "non-writable shims directory" { mkdir -p "${PYENV_ROOT}/shims" chmod -w "${PYENV_ROOT}/shims" + skip_if_nonposix_security -w "${PYENV_ROOT}/shims" + run pyenv-rehash assert_failure "pyenv: cannot rehash: ${PYENV_ROOT}/shims isn't writable" } diff --git a/test/test_helper.bash b/test/test_helper.bash index 2d3d1c11..ee0a698e 100644 --- a/test/test_helper.bash +++ b/test/test_helper.bash @@ -223,3 +223,8 @@ create_hook() { cat > "${PYENV_HOOK_PATH}/$1/$2" fi } + +skip_if_nonposix_security() { + true "${1:?}" "${2:?}" + test "$@" && skip "UNIX permission bits are being overridden" || true +}