summaryrefslogtreecommitdiff
path: root/tests/network/server.c
diff options
context:
space:
mode:
authorCarlos Martín Nieto <cmn@dwim.me>2014-05-27 17:51:25 +0200
committerCarlos Martín Nieto <cmn@dwim.me>2014-05-27 17:51:25 +0200
commit4625003149d02227f981b53101c7e6be12226382 (patch)
treeac1a86f48c69d4da0ec14adc4860f0be7ab422ec /tests/network/server.c
parent16b20526e1580f50b29f0dae87a30ebefe0a3c89 (diff)
downloadlibgit2-cmn/server.tar.gz
server: handle negotiation linescmn/server
A bit of scaffolding for handling the lines from the client telling us about its commits.
Diffstat (limited to 'tests/network/server.c')
-rw-r--r--tests/network/server.c33
1 files changed, 33 insertions, 0 deletions
diff --git a/tests/network/server.c b/tests/network/server.c
index 41319552d..4fc81cb23 100644
--- a/tests/network/server.c
+++ b/tests/network/server.c
@@ -81,3 +81,36 @@ void test_network_server__upload_pack_ls(void)
git_buf_free(&listing);
}
+
+void test_network_server__want(void)
+{
+ const char buf[] = "0032want 7e47fe2bd8d01d481f44d7af0531bd93d3b21c01\n";
+ const char *rest;
+
+ cl_git_pass(git_pkt_parse_line(&g_pkt, buf, &rest, sizeof(buf)));
+ cl_git_pass(git_server_new(&g_server, g_repo, 0));
+ cl_git_pass(git_server__negotiation(g_server, g_pkt));
+ cl_assert_equal_i(1, git_array_size(g_server->wants));
+}
+
+void test_network_server__have_no_common(void)
+{
+ const char buf[] = "0032have 7e47fe2bd8d01d481f44d7af0531bd93d3b21c01\n";
+ const char *rest;
+
+ cl_git_pass(git_pkt_parse_line(&g_pkt, buf, &rest, sizeof(buf)));
+ cl_git_pass(git_server_new(&g_server, g_repo, 0));
+ cl_git_pass(git_server__negotiation(g_server, g_pkt));
+ cl_assert_equal_i(0, git_array_size(g_server->common));
+}
+
+void test_network_server__have_common(void)
+{
+ const char buf[] = "0032have a65fedf39aefe402d3bb6e24df4d4f5fe4547750\n";
+ const char *rest;
+
+ cl_git_pass(git_pkt_parse_line(&g_pkt, buf, &rest, sizeof(buf)));
+ cl_git_pass(git_server_new(&g_server, g_repo, 0));
+ cl_git_pass(git_server__negotiation(g_server, g_pkt));
+ cl_assert_equal_i(1, git_array_size(g_server->common));
+}