Commit b31283a658eb6fdbfaf7256d5303f1ce06de404f

Carlos Martín Nieto 2016-12-12T17:09:12

refdb: disable concurrent compress in the threading tests on Windows This is far from an ideal situation, but this causes issues on Windows which make it harder to develop anything, as these tests hit issues which relate specifically to the Windows filesystem like permission errors for files we should be able to access. There is an issue likely related to the ordering of the repack, but there's enough noise that it does not currently help us to run this aspect of the test in CI.

diff --git a/tests/threads/refdb.c b/tests/threads/refdb.c
index e2f7563..94c5f50 100644
--- a/tests/threads/refdb.c
+++ b/tests/threads/refdb.c
@@ -5,6 +5,12 @@
 static git_repository *g_repo;
 static int g_expected = 0;
 
+#ifdef GIT_WIN32
+static bool concurrent_compress = false;
+#else
+static bool concurrent_compress = true;
+#endif
+
 void test_threads_refdb__initialize(void)
 {
 	g_repo = NULL;
@@ -79,7 +85,7 @@ static void *create_refs(void *arg)
 		} while (error == GIT_ELOCKED);
 		cl_git_thread_pass(data, error);
 
-		if (i == NREFS/2) {
+		if (concurrent_compress && i == NREFS/2) {
 			git_refdb *refdb;
 			cl_git_thread_pass(data, git_repository_refdb(&refdb, repo));
 			do {
@@ -125,7 +131,7 @@ static void *delete_refs(void *arg)
 			git_reference_free(ref);
 		}
 
-		if (i == NREFS/2) {
+		if (concurrent_compress && i == NREFS/2) {
 			git_refdb *refdb;
 			cl_git_thread_pass(data, git_repository_refdb(&refdb, repo));
 			do {