summaryrefslogtreecommitdiff
path: root/tests/threads
diff options
context:
space:
mode:
authorCarlos Martín Nieto <cmn@dwim.me>2014-09-10 18:28:19 +0200
committerCarlos Martín Nieto <cmn@dwim.me>2014-09-14 00:39:07 +0200
commitfdea219a86d12c802b8d7fa73445940770bb1b61 (patch)
treec66d5a941c71e3b96032882394c9987d490e0a79 /tests/threads
parent31e752b6546537bbeee89b6d2f3027cf0eff9a53 (diff)
downloadlibgit2-fdea219a86d12c802b8d7fa73445940770bb1b61.tar.gz
global: free the error message when exiting a threadcmn/free-tls-error
When we free the global state at thread termination, we must also free the error message in order not to leak the string once per thread.
Diffstat (limited to 'tests/threads')
-rw-r--r--tests/threads/basic.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/tests/threads/basic.c b/tests/threads/basic.c
index a329ee7f9..eb15293c7 100644
--- a/tests/threads/basic.c
+++ b/tests/threads/basic.c
@@ -1,5 +1,6 @@
#include "clar_libgit2.h"
+#include "thread_helpers.h"
#include "cache.h"
@@ -34,3 +35,16 @@ void test_threads_basic__multiple_init(void)
cl_git_pass(git_repository_open(&nested_repo, cl_fixture("testrepo.git")));
git_repository_free(nested_repo);
}
+
+static void *set_error(void *dummy)
+{
+ giterr_set(GITERR_INVALID, "oh no, something happened!\n");
+
+ return dummy;
+}
+
+/* Set errors so we can check that we free it */
+void test_threads_basic__set_error(void)
+{
+ run_in_parallel(1, 4, set_error, NULL, NULL);
+}