Fix some leaks and (possibly) dangling pointers in tests Also adds some asserts.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137
diff --git a/tests-clar/diff/index.c b/tests-clar/diff/index.c
index 41941ee..e1c617d 100644
--- a/tests-clar/diff/index.c
+++ b/tests-clar/diff/index.c
@@ -146,18 +146,22 @@ void test_diff_index__checks_options_version(void)
const char *a_commit = "26a125ee1bf";
git_tree *a = resolve_commit_oid_to_tree(g_repo, a_commit);
git_diff_options opts = GIT_DIFF_OPTIONS_INIT;
- git_diff_list *diff;
+ git_diff_list *diff = NULL;
const git_error *err;
opts.version = 0;
cl_git_fail(git_diff_tree_to_index(&diff, g_repo, a, NULL, &opts));
err = giterr_last();
cl_assert_equal_i(GITERR_INVALID, err->klass);
+ cl_assert_equal_p(diff, NULL);
giterr_clear();
opts.version = 1024;
cl_git_fail(git_diff_tree_to_index(&diff, g_repo, a, NULL, &opts));
err = giterr_last();
cl_assert_equal_i(GITERR_INVALID, err->klass);
+ cl_assert_equal_p(diff, NULL);
+
+ git_tree_free(a);
}
diff --git a/tests-clar/network/remotes.c b/tests-clar/network/remotes.c
index 4324cb7..651cbef 100644
--- a/tests-clar/network/remotes.c
+++ b/tests-clar/network/remotes.c
@@ -172,6 +172,7 @@ void test_network_remotes__missing_refspecs(void)
git_config *cfg;
git_remote_free(_remote);
+ _remote = NULL;
cl_git_pass(git_repository_config(&cfg, _repo));
cl_git_pass(git_config_set_string(cfg, "remote.specless.url", "http://example.com"));
@@ -200,11 +201,17 @@ void test_network_remotes__list(void)
void test_network_remotes__loading_a_missing_remote_returns_ENOTFOUND(void)
{
+ git_remote_free(_remote);
+ _remote = NULL;
+
cl_assert_equal_i(GIT_ENOTFOUND, git_remote_load(&_remote, _repo, "just-left-few-minutes-ago"));
}
void test_network_remotes__loading_with_an_invalid_name_returns_EINVALIDSPEC(void)
{
+ git_remote_free(_remote);
+ _remote = NULL;
+
cl_assert_equal_i(GIT_EINVALIDSPEC, git_remote_load(&_remote, _repo, "Inv@{id"));
}
@@ -220,8 +227,12 @@ void test_network_remotes__loading_with_an_invalid_name_returns_EINVALIDSPEC(voi
void test_network_remotes__add(void)
{
git_remote_free(_remote);
+ _remote = NULL;
+
cl_git_pass(git_remote_add(&_remote, _repo, "addtest", "http://github.com/libgit2/libgit2"));
+
git_remote_free(_remote);
+ _remote = NULL;
cl_git_pass(git_remote_load(&_remote, _repo, "addtest"));
_refspec = git_remote_fetchspec(_remote);
@@ -252,28 +263,32 @@ void test_network_remotes__cannot_save_a_nameless_remote(void)
void test_network_remotes__cannot_add_a_remote_with_an_invalid_name(void)
{
- git_remote *remote;
+ git_remote *remote = NULL;
cl_assert_equal_i(
GIT_EINVALIDSPEC,
git_remote_add(&remote, _repo, "Inv@{id", "git://github.com/libgit2/libgit2"));
+ cl_assert_equal_p(remote, NULL);
cl_assert_equal_i(
GIT_EINVALIDSPEC,
git_remote_add(&remote, _repo, "", "git://github.com/libgit2/libgit2"));
+ cl_assert_equal_p(remote, NULL);
}
void test_network_remotes__cannot_initialize_a_remote_with_an_invalid_name(void)
{
- git_remote *remote;
+ git_remote *remote = NULL;
cl_assert_equal_i(
GIT_EINVALIDSPEC,
git_remote_new(&remote, _repo, "Inv@{id", "git://github.com/libgit2/libgit2", NULL));
+ cl_assert_equal_p(remote, NULL);
cl_assert_equal_i(
GIT_EINVALIDSPEC,
git_remote_new(&remote, _repo, "", "git://github.com/libgit2/libgit2", NULL));
+ cl_assert_equal_p(remote, NULL);
}
void test_network_remotes__tagopt(void)
@@ -302,10 +317,11 @@ void test_network_remotes__tagopt(void)
void test_network_remotes__cannot_load_with_an_empty_url(void)
{
- git_remote *remote;
+ git_remote *remote = NULL;
cl_git_fail(git_remote_load(&remote, _repo, "empty-remote-url"));
cl_assert(giterr_last()->klass == GITERR_INVALID);
+ cl_assert_equal_p(remote, NULL);
}
void test_network_remotes__check_structure_version(void)
@@ -314,6 +330,7 @@ void test_network_remotes__check_structure_version(void)
const git_error *err;
git_remote_free(_remote);
+ _remote = NULL;
cl_git_pass(git_remote_new(&_remote, _repo, NULL, "test-protocol://localhost", NULL));
transport.version = 0;
@@ -330,6 +347,9 @@ void test_network_remotes__check_structure_version(void)
void test_network_remotes__dangling(void)
{
+ git_remote_free(_remote);
+ _remote = NULL;
+
cl_git_pass(git_remote_new(&_remote, NULL, "upstream", "git://github.com/libgit2/libgit2", NULL));
cl_git_pass(git_remote_rename(_remote, "newname", NULL, NULL));