From 6042a050f97091615b5925698627b5c0e2aa56cf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Carlos=20Mart=C3=ADn=20Nieto?= Date: Fri, 12 Jun 2015 12:17:03 +0200 Subject: [PATCH 1/3] travis: fail if we fail the push tests These tests were not being taken into consideration for the failure of the test. They've been failing for a while now, but we hadn't noticed as Travis was reporting the builds successful. --- script/cibuild.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/script/cibuild.sh b/script/cibuild.sh index bdc352931..a11e7984f 100755 --- a/script/cibuild.sh +++ b/script/cibuild.sh @@ -53,8 +53,8 @@ export GITTEST_REMOTE_SSH_PASSPHRASE="" if [ -e ./libgit2_clar ]; then ./libgit2_clar -sonline::push -sonline::clone::ssh_cert && - ./libgit2_clar -sonline::clone::ssh_with_paths + ./libgit2_clar -sonline::clone::ssh_with_paths || exit $? if [ "$TRAVIS_OS_NAME" = "linux" ]; then - ./libgit2_clar -sonline::clone::cred_callback + ./libgit2_clar -sonline::clone::cred_callback || exit $? fi fi From 0f69b41d2ecec60beafd1cbf1c50fdf3502200a4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Carlos=20Mart=C3=ADn=20Nieto?= Date: Fri, 12 Jun 2015 12:25:25 +0200 Subject: [PATCH 2/3] push: pass the callbacks during setup as well We need to pass these options in order to have the credentials callback set. --- tests/online/push.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/tests/online/push.c b/tests/online/push.c index 04ad7a2ed..6cd444320 100644 --- a/tests/online/push.c +++ b/tests/online/push.c @@ -319,6 +319,8 @@ void test_online_push__initialize(void) git_vector delete_specs = GIT_VECTOR_INIT; const git_remote_head **heads; size_t heads_len; + git_push_options push_opts = GIT_PUSH_OPTIONS_INIT; + git_fetch_options fetch_opts = GIT_FETCH_OPTIONS_INIT; _repo = cl_git_sandbox_init("push_src"); @@ -370,7 +372,7 @@ void test_online_push__initialize(void) record_callbacks_data_clear(&_record_cbs_data); - cl_git_pass(git_remote_connect(_remote, GIT_DIRECTION_PUSH, NULL)); + cl_git_pass(git_remote_connect(_remote, GIT_DIRECTION_PUSH, &_record_cbs)); /* Clean up previously pushed branches. Fails if receive.denyDeletes is * set on the remote. Also, on Git 1.7.0 and newer, you must run @@ -386,14 +388,16 @@ void test_online_push__initialize(void) delete_specs.length, }; - cl_git_pass(git_remote_upload(_remote, &arr, NULL)); + memcpy(&push_opts.callbacks, &_record_cbs, sizeof(git_remote_callbacks)); + cl_git_pass(git_remote_upload(_remote, &arr, &push_opts)); } git_remote_disconnect(_remote); git_vector_free(&delete_specs); /* Now that we've deleted everything, fetch from the remote */ - cl_git_pass(git_remote_fetch(_remote, NULL, NULL, NULL)); + memcpy(&fetch_opts.callbacks, &_record_cbs, sizeof(git_remote_callbacks)); + cl_git_pass(git_remote_fetch(_remote, NULL, &fetch_opts, NULL)); } void test_online_push__cleanup(void) From 352ee171524475e7160130439f889ed9ce7e705a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Carlos=20Mart=C3=ADn=20Nieto?= Date: Fri, 12 Jun 2015 12:45:49 +0200 Subject: [PATCH 3/3] clone: set the credentials callback during testing --- tests/online/clone.c | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/online/clone.c b/tests/online/clone.c index fa0dbd69c..e63cf55f1 100644 --- a/tests/online/clone.c +++ b/tests/online/clone.c @@ -428,6 +428,7 @@ void test_online_clone__ssh_with_paths(void) g_options.remote_cb = custom_remote_ssh_with_paths; g_options.fetch_opts.callbacks.transport = git_transport_ssh_with_paths; + g_options.fetch_opts.callbacks.credentials = cred_cb; g_options.fetch_opts.callbacks.payload = &arr; cl_git_fail(git_clone(&g_repo, remote_url, "./foo", &g_options));