Subject: Re: t5539 broken under Mac OS X

From: Jeff King <[email-masked]>
Date: Thu, 15 Jan 2015 18:57:53 -0500

On Thu, Jan 15, 2015 at 02:39:56PM -0800, Junio C Hamano wrote:

> Before writing that patchlet, I briefly looked at grep output and
> thought that many that are protected only by SANITY lacked POSIXPERM
> by mistake:
> 
>  t/t1004-read-tree-m-u-wf.sh:test_expect_success SANITY 'funny symlink in...
>  t/t3600-rm.sh 'Test that "git rm -f" fails if its rm fails'
>  t/t7300-clean.sh:test_expect_success SANITY 'removal failure' '
>  t/t7300-clean.sh:test_expect_success SANITY 'git clean -d with an...
> 
> All of the above relies on a working chmod as far as I can tell, so
> they should require POSIXPERM,SANITY, not just SANITY.

Yeah, skimming the grep output, I had the same feeling. But I did not
investigate closely.

> lib-httpd should, if it cares about the root-ness, be checking that
> in a more direct way, "test_have_prereq RUNNING_AS_ROOT".  Making
> the implementation of that portable is another matter, though.

Exactly. I am happy to submit a patch, but I cannot think of any
mechanisms besides:

  1. Calling `id`, which I suspect is very not portable.

  2. Writing a C program to check getuid(). That's portable for most
     Unixes. It looks like we already have a hacky wrapper on mingw that
     will always return "1".

Is (2) too gross?

-Peff