"GOT", but the "O" is a cute, smiling pufferfish. Index | Thread | Search

From:
Stefan Sperling <stsp@stsp.name>
Subject:
Re: umask assumptions in regressions
To:
Thomas Adam <thomas@xteddy.org>
Cc:
Kyle Ackerman <kack@kyleackerman.net>, "gameoftrees@openbsd.org" <gameoftrees@openbsd.org>
Date:
Fri, 18 Apr 2025 09:16:40 +0200

Download raw body.

Thread
On Thu, Apr 17, 2025 at 07:51:27PM +0100, Thomas Adam wrote:
> On Fri, Mar 28, 2025 at 09:14:52PM +0000, Kyle Ackerman wrote:
> > +umask 022
> >  regress_run_only=""
> 
> The problem I have with this, is the umask setting is external to the
> environment which you're invoking "make tests" from.  As such, if you know
> thwe umask is the cause of this, simply do:
> 
>     (umask 022; make tests)
> 
> But I'm not keen on setting an explicit umask, regardless of how innocent a
> change this could be.

AFAIK, "make" runs Makefile targets in a subshell. So the external umask
would only be modified if we're running test scripts in a shell directly,
rather than running them via make. Correct?

Couldn't the -portable Makefile.am set the umask?

diff /home/stsp/src/got-portable
path + /home/stsp/src/got-portable
commit - 91c1648f8258a8d72a8111818f85d79e2e48fbfe
blob - b7158ca393f71349db4b0db82e8f3a664f51adda
file + Makefile.am
--- Makefile.am
+++ Makefile.am
@@ -54,6 +54,7 @@ tests: $(TEST_TARGETS)
 regress-cmdline:
 	(export PLATFORM=@PLATFORM@; 				\
 	cd $(top_builddir)/regress/cmdline || exit $$?; 	\
+	umask 022;						\
 	./checkout.sh -q -r "$(GOT_TEST_ROOT)";			\
 	./update.sh -q -r "$(GOT_TEST_ROOT)";			\
 	./status.sh -q -r "$(GOT_TEST_ROOT)";			\