Skip to content

Commit e5fb5fe

Browse files
committed
ci: perform SPNEGO tests
Attempt to obtain a Kerberos ticket from LIBGIT2.ORG and then clone the Negotiate-protected site at test.libgit2.org with that ticket.
1 parent 9bcf10e commit e5fb5fe

File tree

3 files changed

+37
-6
lines changed

3 files changed

+37
-6
lines changed

azure-pipelines.yml

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ jobs:
2020
CC=gcc
2121
CMAKE_GENERATOR=Ninja
2222
CMAKE_OPTIONS=-DUSE_HTTPS=OpenSSL -DREGEX_BACKEND=builtin -DDEPRECATE_HARD=ON -DUSE_LEAK_CHECKER=valgrind -DVALGRIND=on
23+
GITTEST_NEGOTIATE_PASSWORD=$(GITTEST_NEGOTIATE_PASSWORD)
2324
2425
- job: linux_amd64_xenial_gcc_mbedtls
2526
displayName: 'Linux (amd64; Xenial; GCC; mbedTLS)'
@@ -35,6 +36,7 @@ jobs:
3536
CC=gcc
3637
CMAKE_GENERATOR=Ninja
3738
CMAKE_OPTIONS=-DUSE_HTTPS=mbedTLS -DUSE_SHA1=HTTPS -DDEPRECATE_HARD=ON -DUSE_LEAK_CHECKER=valgrind -DVALGRIND=on
39+
GITTEST_NEGOTIATE_PASSWORD=$(GITTEST_NEGOTIATE_PASSWORD)
3840
3941
- job: linux_amd64_xenial_clang_openssl
4042
displayName: 'Linux (amd64; Xenial; Clang; OpenSSL)'
@@ -50,6 +52,7 @@ jobs:
5052
CC=clang
5153
CMAKE_GENERATOR=Ninja
5254
CMAKE_OPTIONS=-DUSE_HTTPS=OpenSSL -DDEPRECATE_HARD=ON -DUSE_LEAK_CHECKER=valgrind -DVALGRIND=on
55+
GITTEST_NEGOTIATE_PASSWORD=$(GITTEST_NEGOTIATE_PASSWORD)
5356
5457
- job: linux_amd64_xenial_clang_mbedtls
5558
displayName: 'Linux (amd64; Xenial; Clang; mbedTLS)'
@@ -65,6 +68,7 @@ jobs:
6568
CC=clang
6669
CMAKE_GENERATOR=Ninja
6770
CMAKE_OPTIONS=-DUSE_HTTPS=mbedTLS -DUSE_SHA1=HTTPS -DREGEX_BACKEND=pcre -DDEPRECATE_HARD=ON -DUSE_LEAK_CHECKER=valgrind -DVALGRIND=on
71+
GITTEST_NEGOTIATE_PASSWORD=$(GITTEST_NEGOTIATE_PASSWORD)
6872
6973
- job: macos
7074
displayName: 'macOS'
@@ -81,6 +85,7 @@ jobs:
8185
CMAKE_GENERATOR: Ninja
8286
CMAKE_OPTIONS: -DREGEX_BACKEND=regcomp_l -DDEPRECATE_HARD=ON -DUSE_LEAK_CHECKER=leaks -DUSE_GSSAPI=ON
8387
SKIP_SSH_TESTS: true
88+
GITTEST_NEGOTIATE_PASSWORD: $(GITTEST_NEGOTIATE_PASSWORD)
8489

8590
- job: windows_vs_amd64
8691
displayName: 'Windows (amd64; Visual Studio)'
@@ -92,6 +97,7 @@ jobs:
9297
CMAKE_GENERATOR: Visual Studio 12 2013 Win64
9398
CMAKE_OPTIONS: -DMSVC_CRTDBG=ON -DDEPRECATE_HARD=ON
9499
SKIP_SSH_TESTS: true
100+
GITTEST_NEGOTIATE_PASSWORD: $(GITTEST_NEGOTIATE_PASSWORD)
95101

96102
- job: windows_vs_x86
97103
displayName: 'Windows (x86; Visual Studio)'
@@ -103,6 +109,7 @@ jobs:
103109
CMAKE_GENERATOR: Visual Studio 12 2013
104110
CMAKE_OPTIONS: -DMSVC_CRTDBG=ON -DDEPRECATE_HARD=ON -DUSE_SHA1=HTTPS
105111
SKIP_SSH_TESTS: true
112+
GITTEST_NEGOTIATE_PASSWORD: $(GITTEST_NEGOTIATE_PASSWORD)
106113

107114
- job: windows_mingw_amd64
108115
displayName: 'Windows (amd64; MinGW)'
@@ -120,6 +127,7 @@ jobs:
120127
CMAKE_GENERATOR: MinGW Makefiles
121128
CMAKE_OPTIONS: -DDEPRECATE_HARD=ON
122129
SKIP_SSH_TESTS: true
130+
GITTEST_NEGOTIATE_PASSWORD: $(GITTEST_NEGOTIATE_PASSWORD)
123131

124132
- job: windows_mingw_x86
125133
displayName: 'Windows (x86; MinGW)'
@@ -138,6 +146,7 @@ jobs:
138146
CMAKE_GENERATOR: MinGW Makefiles
139147
CMAKE_OPTIONS: -DDEPRECATE_HARD=ON
140148
SKIP_SSH_TESTS: true
149+
GITTEST_NEGOTIATE_PASSWORD: $(GITTEST_NEGOTIATE_PASSWORD)
141150

142151
- job: documentation
143152
displayName: 'Generate Documentation'

azure-pipelines/test.sh

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -207,6 +207,27 @@ if [ -z "$SKIP_PROXY_TESTS" ]; then
207207
unset GITTEST_REMOTE_PROXY_PASS
208208
fi
209209

210+
if [ -z "$SKIP_NEGOTIATE_TESTS" -a -n "$GITTEST_NEGOTIATE_PASSWORD" ]; then
211+
echo ""
212+
echo "Running SPNEGO tests"
213+
echo ""
214+
215+
if [ "$(uname -s)" = "Darwin" ]; then
216+
KINIT_FLAGS="--password-file=STDIN"
217+
fi
218+
219+
echo $GITTEST_NEGOTIATE_PASSWORD | kinit $KINIT_FLAGS test@LIBGIT2.ORG
220+
klist -5f
221+
222+
export GITTEST_REMOTE_URL="https://test.libgit2.org/kerberos/empty.git"
223+
export GITTEST_REMOTE_DEFAULT="true"
224+
run_test authenticate
225+
unset GITTEST_REMOTE_URL
226+
unset GITTEST_REMOTE_DEFAULT
227+
228+
kdestroy -A
229+
fi
230+
210231
if [ -z "$SKIP_SSH_TESTS" ]; then
211232
echo ""
212233
echo "Running ssh tests"

tests/CMakeLists.txt

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -60,9 +60,10 @@ FUNCTION(ADD_CLAR_TEST name)
6060
ENDIF()
6161
ENDFUNCTION(ADD_CLAR_TEST)
6262

63-
ADD_CLAR_TEST(offline -v -xonline)
64-
ADD_CLAR_TEST(invasive -v -score::ftruncate -sfilter::stream::bigfile -sodb::largefiles -siterator::workdir::filesystem_gunk -srepo::init -srepo::init::at_filesystem_root)
65-
ADD_CLAR_TEST(online -v -sonline)
66-
ADD_CLAR_TEST(gitdaemon -v -sonline::push)
67-
ADD_CLAR_TEST(ssh -v -sonline::push -sonline::clone::ssh_cert -sonline::clone::ssh_with_paths -sonline::clone::path_whitespace_ssh)
68-
ADD_CLAR_TEST(proxy -v -sonline::clone::proxy)
63+
ADD_CLAR_TEST(offline -v -xonline)
64+
ADD_CLAR_TEST(invasive -v -score::ftruncate -sfilter::stream::bigfile -sodb::largefiles -siterator::workdir::filesystem_gunk -srepo::init -srepo::init::at_filesystem_root)
65+
ADD_CLAR_TEST(online -v -sonline)
66+
ADD_CLAR_TEST(gitdaemon -v -sonline::push)
67+
ADD_CLAR_TEST(ssh -v -sonline::push -sonline::clone::ssh_cert -sonline::clone::ssh_with_paths -sonline::clone::path_whitespace_ssh)
68+
ADD_CLAR_TEST(proxy -v -sonline::clone::proxy)
69+
ADD_CLAR_TEST(authenticate -v -sonline::clone::credentials)

0 commit comments

Comments
 (0)