Commit 4ce58244a2a51161a46f277ec94da1cdddce81f2

Carlos Martín Nieto 2015-06-12T14:51:59

Merge pull request #3214 from libgit2/cmn/push-tests travis: fail if we fail the push tests

diff --git a/script/cibuild.sh b/script/cibuild.sh
index bdc3529..a11e798 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
diff --git a/tests/online/clone.c b/tests/online/clone.c
index fa0dbd6..e63cf55 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));
diff --git a/tests/online/push.c b/tests/online/push.c
index 04ad7a2..6cd4443 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)