diff options
author | Edward Thomson <ethomson@edwardthomson.com> | 2019-10-20 17:19:01 +0100 |
---|---|---|
committer | Edward Thomson <ethomson@edwardthomson.com> | 2020-01-24 09:54:28 -0600 |
commit | e5fb5fe5ad50fc60831fa33531ffef2dae3e1967 (patch) | |
tree | 2d77006e8ffde6e0e0116afceac8e8a673cd39b6 | |
parent | 9bcf10e97e9b7c8fc12961e3950ce0a8e64231ce (diff) | |
download | libgit2-e5fb5fe5ad50fc60831fa33531ffef2dae3e1967.tar.gz |
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.
-rw-r--r-- | azure-pipelines.yml | 9 | ||||
-rwxr-xr-x | azure-pipelines/test.sh | 21 | ||||
-rw-r--r-- | tests/CMakeLists.txt | 13 |
3 files changed, 37 insertions, 6 deletions
diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 5ee741ce0..cb4433b49 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -20,6 +20,7 @@ jobs: CC=gcc CMAKE_GENERATOR=Ninja CMAKE_OPTIONS=-DUSE_HTTPS=OpenSSL -DREGEX_BACKEND=builtin -DDEPRECATE_HARD=ON -DUSE_LEAK_CHECKER=valgrind -DVALGRIND=on + GITTEST_NEGOTIATE_PASSWORD=$(GITTEST_NEGOTIATE_PASSWORD) - job: linux_amd64_xenial_gcc_mbedtls displayName: 'Linux (amd64; Xenial; GCC; mbedTLS)' @@ -35,6 +36,7 @@ jobs: CC=gcc CMAKE_GENERATOR=Ninja CMAKE_OPTIONS=-DUSE_HTTPS=mbedTLS -DUSE_SHA1=HTTPS -DDEPRECATE_HARD=ON -DUSE_LEAK_CHECKER=valgrind -DVALGRIND=on + GITTEST_NEGOTIATE_PASSWORD=$(GITTEST_NEGOTIATE_PASSWORD) - job: linux_amd64_xenial_clang_openssl displayName: 'Linux (amd64; Xenial; Clang; OpenSSL)' @@ -50,6 +52,7 @@ jobs: CC=clang CMAKE_GENERATOR=Ninja CMAKE_OPTIONS=-DUSE_HTTPS=OpenSSL -DDEPRECATE_HARD=ON -DUSE_LEAK_CHECKER=valgrind -DVALGRIND=on + GITTEST_NEGOTIATE_PASSWORD=$(GITTEST_NEGOTIATE_PASSWORD) - job: linux_amd64_xenial_clang_mbedtls displayName: 'Linux (amd64; Xenial; Clang; mbedTLS)' @@ -65,6 +68,7 @@ jobs: CC=clang CMAKE_GENERATOR=Ninja CMAKE_OPTIONS=-DUSE_HTTPS=mbedTLS -DUSE_SHA1=HTTPS -DREGEX_BACKEND=pcre -DDEPRECATE_HARD=ON -DUSE_LEAK_CHECKER=valgrind -DVALGRIND=on + GITTEST_NEGOTIATE_PASSWORD=$(GITTEST_NEGOTIATE_PASSWORD) - job: macos displayName: 'macOS' @@ -81,6 +85,7 @@ jobs: CMAKE_GENERATOR: Ninja CMAKE_OPTIONS: -DREGEX_BACKEND=regcomp_l -DDEPRECATE_HARD=ON -DUSE_LEAK_CHECKER=leaks -DUSE_GSSAPI=ON SKIP_SSH_TESTS: true + GITTEST_NEGOTIATE_PASSWORD: $(GITTEST_NEGOTIATE_PASSWORD) - job: windows_vs_amd64 displayName: 'Windows (amd64; Visual Studio)' @@ -92,6 +97,7 @@ jobs: CMAKE_GENERATOR: Visual Studio 12 2013 Win64 CMAKE_OPTIONS: -DMSVC_CRTDBG=ON -DDEPRECATE_HARD=ON SKIP_SSH_TESTS: true + GITTEST_NEGOTIATE_PASSWORD: $(GITTEST_NEGOTIATE_PASSWORD) - job: windows_vs_x86 displayName: 'Windows (x86; Visual Studio)' @@ -103,6 +109,7 @@ jobs: CMAKE_GENERATOR: Visual Studio 12 2013 CMAKE_OPTIONS: -DMSVC_CRTDBG=ON -DDEPRECATE_HARD=ON -DUSE_SHA1=HTTPS SKIP_SSH_TESTS: true + GITTEST_NEGOTIATE_PASSWORD: $(GITTEST_NEGOTIATE_PASSWORD) - job: windows_mingw_amd64 displayName: 'Windows (amd64; MinGW)' @@ -120,6 +127,7 @@ jobs: CMAKE_GENERATOR: MinGW Makefiles CMAKE_OPTIONS: -DDEPRECATE_HARD=ON SKIP_SSH_TESTS: true + GITTEST_NEGOTIATE_PASSWORD: $(GITTEST_NEGOTIATE_PASSWORD) - job: windows_mingw_x86 displayName: 'Windows (x86; MinGW)' @@ -138,6 +146,7 @@ jobs: CMAKE_GENERATOR: MinGW Makefiles CMAKE_OPTIONS: -DDEPRECATE_HARD=ON SKIP_SSH_TESTS: true + GITTEST_NEGOTIATE_PASSWORD: $(GITTEST_NEGOTIATE_PASSWORD) - job: documentation displayName: 'Generate Documentation' diff --git a/azure-pipelines/test.sh b/azure-pipelines/test.sh index 56d8264d9..2fa3db5b8 100755 --- a/azure-pipelines/test.sh +++ b/azure-pipelines/test.sh @@ -207,6 +207,27 @@ if [ -z "$SKIP_PROXY_TESTS" ]; then unset GITTEST_REMOTE_PROXY_PASS fi +if [ -z "$SKIP_NEGOTIATE_TESTS" -a -n "$GITTEST_NEGOTIATE_PASSWORD" ]; then + echo "" + echo "Running SPNEGO tests" + echo "" + + if [ "$(uname -s)" = "Darwin" ]; then + KINIT_FLAGS="--password-file=STDIN" + fi + + echo $GITTEST_NEGOTIATE_PASSWORD | kinit $KINIT_FLAGS test@LIBGIT2.ORG + klist -5f + + export GITTEST_REMOTE_URL="https://test.libgit2.org/kerberos/empty.git" + export GITTEST_REMOTE_DEFAULT="true" + run_test authenticate + unset GITTEST_REMOTE_URL + unset GITTEST_REMOTE_DEFAULT + + kdestroy -A +fi + if [ -z "$SKIP_SSH_TESTS" ]; then echo "" echo "Running ssh tests" diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 16bad0f6e..9295f0064 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -60,9 +60,10 @@ FUNCTION(ADD_CLAR_TEST name) ENDIF() ENDFUNCTION(ADD_CLAR_TEST) -ADD_CLAR_TEST(offline -v -xonline) -ADD_CLAR_TEST(invasive -v -score::ftruncate -sfilter::stream::bigfile -sodb::largefiles -siterator::workdir::filesystem_gunk -srepo::init -srepo::init::at_filesystem_root) -ADD_CLAR_TEST(online -v -sonline) -ADD_CLAR_TEST(gitdaemon -v -sonline::push) -ADD_CLAR_TEST(ssh -v -sonline::push -sonline::clone::ssh_cert -sonline::clone::ssh_with_paths -sonline::clone::path_whitespace_ssh) -ADD_CLAR_TEST(proxy -v -sonline::clone::proxy) +ADD_CLAR_TEST(offline -v -xonline) +ADD_CLAR_TEST(invasive -v -score::ftruncate -sfilter::stream::bigfile -sodb::largefiles -siterator::workdir::filesystem_gunk -srepo::init -srepo::init::at_filesystem_root) +ADD_CLAR_TEST(online -v -sonline) +ADD_CLAR_TEST(gitdaemon -v -sonline::push) +ADD_CLAR_TEST(ssh -v -sonline::push -sonline::clone::ssh_cert -sonline::clone::ssh_with_paths -sonline::clone::path_whitespace_ssh) +ADD_CLAR_TEST(proxy -v -sonline::clone::proxy) +ADD_CLAR_TEST(authenticate -v -sonline::clone::credentials) |