diff options
| author | Edward Thomson <ethomson@edwardthomson.com> | 2021-08-29 21:35:40 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-08-29 21:35:40 -0400 |
| commit | c3512fe6d2d499087874130740e6a28f0d9838f2 (patch) | |
| tree | b9ec25541a07ef118f8428d4b92cf7d254ec5da1 /tests | |
| parent | ea285904dcb1350d99703df86a5f38662935cbbc (diff) | |
| parent | 78cd76249cb32e65860156f758d33264bf3db766 (diff) | |
| download | libgit2-c3512fe6d2d499087874130740e6a28f0d9838f2.tar.gz | |
Merge branch 'main' into multi-pack-index-odb-write
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/clone/nonetwork.c | 2 | ||||
| -rw-r--r-- | tests/config/read.c | 4 | ||||
| -rw-r--r-- | tests/pack/midx.c | 2 | ||||
| -rw-r--r-- | tests/remote/fetch.c | 14 | ||||
| -rw-r--r-- | tests/threads/atomic.c | 125 |
5 files changed, 136 insertions, 11 deletions
diff --git a/tests/clone/nonetwork.c b/tests/clone/nonetwork.c index d4da3d3af..ec12fee18 100644 --- a/tests/clone/nonetwork.c +++ b/tests/clone/nonetwork.c @@ -172,7 +172,7 @@ void test_clone_nonetwork__can_checkout_given_branch(void) cl_git_pass(git_reference_lookup(&remote_head, g_repo, "refs/remotes/origin/HEAD")); cl_assert_equal_i(GIT_REFERENCE_SYMBOLIC, git_reference_type(remote_head)); - cl_assert_equal_s("refs/remotes/origin/test", git_reference_symbolic_target(remote_head)); + cl_assert_equal_s("refs/remotes/origin/master", git_reference_symbolic_target(remote_head)); git_reference_free(remote_head); } diff --git a/tests/config/read.c b/tests/config/read.c index 109908750..badf5118e 100644 --- a/tests/config/read.c +++ b/tests/config/read.c @@ -964,7 +964,7 @@ void test_config_read__get_mapped(void) " key9 = off\n"); cl_git_pass(git_config_open_ondisk(&cfg, "./testconfig")); - // check parsing bool and string + /* check parsing bool and string */ cl_git_pass(git_config_get_mapped(&val, cfg, "header.key1", _test_map1, ARRAY_SIZE(_test_map1))); cl_assert_equal_i(val, MAP_TRUE); cl_git_pass(git_config_get_mapped(&val, cfg, "header.key2", _test_map1, ARRAY_SIZE(_test_map1))); @@ -986,7 +986,7 @@ void test_config_read__get_mapped(void) cl_git_fail(git_config_get_mapped(&val, cfg, "header.key7", _test_map1, ARRAY_SIZE(_test_map1))); - // check parsing int values + /* check parsing int values */ cl_git_pass(git_config_get_mapped(&val, cfg, "header.key1", _test_map2, ARRAY_SIZE(_test_map2))); cl_git_pass(git_config_get_int32(&known_good, cfg, "header.key1")); cl_assert_equal_i(val, known_good); diff --git a/tests/pack/midx.c b/tests/pack/midx.c index 9e7bdb040..d5b91d28b 100644 --- a/tests/pack/midx.c +++ b/tests/pack/midx.c @@ -107,4 +107,4 @@ void test_pack_midx__odb_create(void) git_buf_dispose(&expected_midx); cl_git_pass(git_futils_rmdir_r("./clone.git", NULL, GIT_RMDIR_REMOVE_FILES)); -} +}
\ No newline at end of file diff --git a/tests/remote/fetch.c b/tests/remote/fetch.c index 392801e0b..7e825ca16 100644 --- a/tests/remote/fetch.c +++ b/tests/remote/fetch.c @@ -72,7 +72,7 @@ void do_time_travelling_fetch(git_oid *commit1id, git_oid *commit2id, .strings = &refspec_strs, }; - // create two commits in repo 1 and a reference to them + /* create two commits in repo 1 and a reference to them */ { git_oid empty_tree_id; git_tree *empty_tree; @@ -92,7 +92,7 @@ void do_time_travelling_fetch(git_oid *commit1id, git_oid *commit2id, git_treebuilder_free(tb); } - // fetch the reference via the remote + /* fetch the reference via the remote */ { git_remote *remote; @@ -103,7 +103,7 @@ void do_time_travelling_fetch(git_oid *commit1id, git_oid *commit2id, git_remote_free(remote); } - // assert that repo2 references the second commit + /* assert that repo2 references the second commit */ { const git_oid *target; git_reference *ref; @@ -113,7 +113,7 @@ void do_time_travelling_fetch(git_oid *commit1id, git_oid *commit2id, git_reference_free(ref); } - // set the reference in repo1 to point to the older commit + /* set the reference in repo1 to point to the older commit */ { git_reference *ref; git_reference *ref2; @@ -124,7 +124,7 @@ void do_time_travelling_fetch(git_oid *commit1id, git_oid *commit2id, git_reference_free(ref2); } - // fetch the reference again + /* fetch the reference again */ { git_remote *remote; @@ -144,7 +144,7 @@ void test_remote_fetch__dont_update_refs_if_not_descendant_and_not_force(void) { do_time_travelling_fetch(&commit1id, &commit2id, false); - // assert that the reference in repo2 has not changed + /* assert that the reference in repo2 has not changed */ cl_git_pass(git_reference_lookup(&ref, repo2, REPO2_REFNAME)); target = git_reference_target(ref); cl_assert_equal_b(git_oid_cmp(target, &commit2id), 0); @@ -160,7 +160,7 @@ void test_remote_fetch__do_update_refs_if_not_descendant_and_force(void) { do_time_travelling_fetch(&commit1id, &commit2id, true); - // assert that the reference in repo2 has changed + /* assert that the reference in repo2 has changed */ cl_git_pass(git_reference_lookup(&ref, repo2, REPO2_REFNAME)); target = git_reference_target(ref); cl_assert_equal_b(git_oid_cmp(target, &commit1id), 0); diff --git a/tests/threads/atomic.c b/tests/threads/atomic.c new file mode 100644 index 000000000..4d04a777a --- /dev/null +++ b/tests/threads/atomic.c @@ -0,0 +1,125 @@ +#include "clar_libgit2.h" + +void test_threads_atomic__atomic32_set(void) +{ + git_atomic32 v = {0}; + git_atomic32_set(&v, 1); + cl_assert_equal_i(v.val, 1); +} + +void test_threads_atomic__atomic32_get(void) +{ + git_atomic32 v = {1}; + cl_assert_equal_i(git_atomic32_get(&v), 1); +} + +void test_threads_atomic__atomic32_inc(void) +{ + git_atomic32 v = {0}; + cl_assert_equal_i(git_atomic32_inc(&v), 1); + cl_assert_equal_i(v.val, 1); +} + +void test_threads_atomic__atomic32_add(void) +{ + git_atomic32 v = {0}; + cl_assert_equal_i(git_atomic32_add(&v, 1), 1); + cl_assert_equal_i(v.val, 1); +} + +void test_threads_atomic__atomic32_dec(void) +{ + git_atomic32 v = {1}; + cl_assert_equal_i(git_atomic32_dec(&v), 0); + cl_assert_equal_i(v.val, 0); +} + +void test_threads_atomic__atomic64_set(void) +{ +#ifndef GIT_ARCH_64 + cl_skip(); +#else + git_atomic64 v = {0}; + git_atomic64_set(&v, 1); + cl_assert_equal_i(v.val, 1); +#endif +} + +void test_threads_atomic__atomic64_get(void) +{ +#ifndef GIT_ARCH_64 + cl_skip(); +#else + git_atomic64 v = {1}; + cl_assert_equal_i(git_atomic64_get(&v), 1); +#endif +} + +void test_threads_atomic__atomic64_add(void) +{ +#ifndef GIT_ARCH_64 + cl_skip(); +#else + git_atomic64 v = {0}; + cl_assert_equal_i(git_atomic64_add(&v, 1), 1); + cl_assert_equal_i(v.val, 1); +#endif +} + +void test_threads_atomic__cas_pointer(void) +{ + int *value = NULL; + int newvalue1 = 1, newvalue2 = 2; + + /* value is updated */ + cl_assert_equal_p(git_atomic_compare_and_swap(&value, NULL, &newvalue1), NULL); + cl_assert_equal_p(value, &newvalue1); + + /* value is not updated */ + cl_assert_equal_p(git_atomic_compare_and_swap(&value, NULL, &newvalue2), &newvalue1); + cl_assert_equal_p(value, &newvalue1); +} + +void test_threads_atomic__cas_intptr(void) +{ + intptr_t value = 0; + intptr_t oldvalue; + intptr_t newvalue; + + /* value is updated */ + oldvalue = 0; + newvalue = 1; + cl_assert_equal_i((intptr_t)git_atomic_compare_and_swap(&value, (void *)oldvalue, (void *)newvalue), 0); + cl_assert_equal_i(value, 1); + + /* value is not updated */ + oldvalue = 0; + newvalue = 2; + cl_assert_equal_i((intptr_t)git_atomic_compare_and_swap(&value, (void *)oldvalue, (void *)newvalue), 1); + cl_assert_equal_i(value, 1); +} + +void test_threads_atomic__swap(void) +{ + int *value = NULL; + int newvalue = 1; + + cl_assert_equal_p(git_atomic_swap(value, &newvalue), NULL); + cl_assert_equal_p(value, &newvalue); + + cl_assert_equal_p(git_atomic_swap(value, NULL), &newvalue); + cl_assert_equal_p(value, NULL); +} + +void test_threads_atomic__load_ptr(void) +{ + int value = 1; + int *ptr = &value; + cl_assert_equal_p(git_atomic_load(ptr), &value); +} + +void test_threads_atomic__load_intptr(void) +{ + intptr_t value = 1; + cl_assert_equal_i((intptr_t)git_atomic_load(value), 1); +} |
