gitolite/t/ssh-basic.t

58 lines
1.4 KiB
Perl
Executable File

#!/usr/bin/perl
use strict;
use warnings;
# this is hardcoded; change it if needed
use lib "src/lib";
use Gitolite::Common;
use Gitolite::Test;
# basic tests using ssh
# ----------------------------------------------------------------------
my $bd = `gitolite query-rc -n GL_BINDIR`;
my $h = $ENV{HOME};
my $ab = `gitolite query-rc -n GL_ADMIN_BASE`;
umask 0077;
try "
plan 26
# reset stuff
rm -f $h/.ssh/authorized_keys; ok or die 1
cp $bd/../t/keys/u[1-6]* $h/.ssh; ok or die 2
cp $bd/../t/keys/admin* $h/.ssh; ok or die 3
cp $bd/../t/keys/config $h/.ssh; ok or die 4
cat $h/.ssh/config
perl s/%USER/$ENV{USER}/
put $h/.ssh/config
mkdir $ab/keydir; ok or die 5
cp $bd/../t/keys/*.pub $ab/keydir; ok or die 6
";
system("gitolite ../triggers/post-compile/ssh-authkeys");
# basic tests
# ----------------------------------------------------------------------
confreset; confadd '
@g1 = u1
@g2 = u2
repo foo
RW = @g1 u3
R = @g2 u4
';
try "ADMIN_PUSH set3; !/FATAL/" or die text();
try "
ssh u1 info; ok; /R W\tfoo/
ssh u2 info; ok; /R \tfoo/
ssh u3 info; ok; /R W\tfoo/
ssh u4 info; ok; /R \tfoo/
ssh u5 info; ok; !/foo/
ssh u6 info; ok; !/foo/
"