Browse Source

cvs tests: skip tests that call "cvs commit" when running as root

Change the tests that fail to when we run the test suite as root, due
to calling "cvs commit".

The GNU cvs package has an optional compile-time CVS_BADROOT
flag. When compiled with this flag "cvs commit" will refuse to commit
anything as root. On my Debian box this isn't compiled in[1] in, but
on CentOS it is.

I've run all the t/t*cvs*.sh tests, and these are the only two that
fail. For some reason e.g. t9402-git-cvsserver-refs.sh still works as
root despite doing "cvs commit", I haven't dug into why.

This commit is technically being overzealous, we could do better by
making a mock cvs commit as root and run the tests if that works, but
I don't see any compelling reason to bend over backwards to run these
tests in all cases, just skipping them as root seems good enough.

1. Per: strings /usr/bin/cvs|grep 'is not allowed to commit'
   Using cvs 1.11.23 on CentOS, 1.12.13-MirDebian-18 on Debian.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
maint
Ævar Arnfjörð Bjarmason 8 years ago committed by Junio C Hamano
parent
commit
a78d9258dc
  1. 5
      t/t9200-git-cvsexportcommit.sh
  2. 5
      t/t9600-cvsimport.sh

5
t/t9200-git-cvsexportcommit.sh

@ -18,6 +18,11 @@ then @@ -18,6 +18,11 @@ then
test_done
fi

if ! test_have_prereq NOT_ROOT; then
skip_all='When cvs is compiled with CVS_BADROOT commits as root fail'
test_done
fi

CVSROOT=$PWD/tmpcvsroot
CVSWORK=$PWD/cvswork
GIT_DIR=$PWD/.git

5
t/t9600-cvsimport.sh

@ -3,6 +3,11 @@ @@ -3,6 +3,11 @@
test_description='git cvsimport basic tests'
. ./lib-cvs.sh

if ! test_have_prereq NOT_ROOT; then
skip_all='When cvs is compiled with CVS_BADROOT commits as root fail'
test_done
fi

test_expect_success PERL 'setup cvsroot environment' '
CVSROOT=$(pwd)/cvsroot &&
export CVSROOT

Loading…
Cancel
Save