Torsten Bögershausen <tbo...@web.de> writes:

> If I run that sequence manually:
> chmod 755 .
> touch x
> chmod a-w .
> rm x
> touch y
>
> x is gone, (but shoudn't according to POSIX)
> y is not created, "access denied"

Good (or is that Sad?).

> diff --git a/t/test-lib.sh b/t/test-lib.sh
> --- a/t/test-lib.sh
> +++ b/t/test-lib.sh
> @@ -1039,7 +1039,17 @@ test_lazy_prereq NOT_ROOT '
>  # When the tests are run as root, permission tests will report that
>  # things are writable when they shouldn't be.
>  test_lazy_prereq SANITY '
> -       test_have_prereq POSIXPERM,NOT_ROOT
> +       mkdir ds &&
> +       touch ds/x &&
> +       chmod -w ds &&
> +       if rm ds/x
> +       then
> +               chmod +w ds
> +               false
> +       else
> +               chmod +w ds
> +               true
> +       fi
>  '

It looks like a better approach overall.

Because we cannot know where $(pwd) is when lazy prereq is evaluated
(it typically is at the root of the trash hierarchy, but not always)
and we would not want to add, leave or remove random files in the
working tree that are not expected by the tests proper (e.g. a test
that counts untracked paths are not expecting ds/ to be there), your
actual "fix" may need to be a bit more careful, though.

Thanks.
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to