t4129: don't fail if setgid is set in the test directory
commitea8bbf2a4eb6632115e2caefc59e28715f8d5e22
authorMatheus Tavares <matheus.bernardino@usp.br>
Tue, 5 Jan 2021 15:47:39 +0000 (5 12:47 -0300)
committerJunio C Hamano <gitster@pobox.com>
Wed, 6 Jan 2021 23:59:17 +0000 (6 15:59 -0800)
treeff6d011c55b7b6fd466f57b5100fa2c8efeacb01
parent71ca53e8125e36efbda17293c50027d31681a41f
t4129: don't fail if setgid is set in the test directory

The last test of t4129 creates a directory and expects its setgid bit
(g+s) to be off. But this makes the test fail when the parent directory
has the bit set, as setgid's state is inherited by newly created
subdirectories.

One way to solve this problem is to allow the presence of this bit when
comparing the return of `test_modebits` with the expected value. But
then we may have the same problem in the future when other tests start
using `test_modebits` on directories (currently t4129 is the only one)
and forget about setgid. Instead, let's make the helper function more
robust with respect to the state of the setgid bit in the test directory
by removing this bit from the returning value. There should be no
problem with existing callers as no one currently expects this bit to be
on.

Note that the sticky bit (+t) and the setuid bit (u+s) are not
inherited, so we don't have to worry about those.

Reported-by: Kevin Daudt <me@ikke.info>
Signed-off-by: Matheus Tavares <matheus.bernardino@usp.br>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
t/test-lib-functions.sh