Thread (9 messages) flat view 9 messages, 5 authors, 2016-06-15

Re: [PATCH] t/lib-httpd: switch SANITY check for NOT_ROOT

From: Kyle J. McKay <hidden>
Date: 2016-06-15 23:03:36

Possibly related (same subject, not in this thread)

On Jan 15, 2015, at 17:32, Jeff King wrote:
On Thu, Jan 15, 2015 at 04:04:24PM -0800, Junio C Hamano wrote:
quoted
I wondered what 'perl -e 'print $>' would say in mingw, and if that
is portable enough, though.
Good thinking. I guess the best way to find out is to convince  
somebody
from msysgit to try this patch. :)

We may simply find that nobody there even has apache installed on  
their
box, and they do not run the http tests at all.
[...]
We implement NOT_ROOT by checking perl's "$>" variable,
since we cannot rely on the "id" program being available
everywhere (and we would rather avoid writing a custom C
program to run geteuid if we can).
Does it make a difference that id is POSIX [1]?

So the test "if [ $(id -u) = 0 ]" or similar ought to work.

"id -u" works for me in MSYS and cygwin (each appears to have it's own  
id.exe).
+
+test_lazy_prereq NOT_ROOT '
+	uid=$(perl -e "print \$<") &&
+	test "$uid" != 0
+'
Does NO_PERL affect this?  Or is Perl always required to run the tests.

Also "$<" is real user id.  Don't you want effective user id ("$>"),  
that's what the comment says...

Both "$<" and "$>" work for me in MSYS and cygwin although if I run it  
from cmd.exe using strawberry perl, both "$<" and "$>" give 0.   
(There's no id.exe for cmd.exe unless it finds the cygwin/msys one.)

As long as NO_PERL is not also intended to affect "make test" either  
the perl or id version seems fine  to me (as long as it's Perl's "$>")  
since I doubt the tests would run with just cmd.exe. :)

-Kyle

[1] http://pubs.opengroup.org/onlinepubs/009604499/utilities/id.html
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help