]>
git.proxmox.com Git - libgit2.git/blob - tests/str/basic.c
5d2556805ca5a4ea0c912232ae6f8d643663edfb
1 #include "clar_libgit2.h"
3 static const char *test_string
= "Have you seen that? Have you seeeen that??";
5 void test_str_basic__resize(void)
7 git_str buf1
= GIT_STR_INIT
;
8 git_str_puts(&buf1
, test_string
);
9 cl_assert(git_str_oom(&buf1
) == 0);
10 cl_assert_equal_s(git_str_cstr(&buf1
), test_string
);
12 git_str_puts(&buf1
, test_string
);
13 cl_assert(strlen(git_str_cstr(&buf1
)) == strlen(test_string
) * 2);
14 git_str_dispose(&buf1
);
17 void test_str_basic__resize_incremental(void)
19 git_str buf1
= GIT_STR_INIT
;
21 /* Presently, asking for 6 bytes will round up to 8. */
22 cl_git_pass(git_str_puts(&buf1
, "Hello"));
23 cl_assert_equal_i(5, buf1
.size
);
24 cl_assert_equal_i(8, buf1
.asize
);
26 /* Ensure an additional byte does not realloc. */
27 cl_git_pass(git_str_grow_by(&buf1
, 1));
28 cl_assert_equal_i(5, buf1
.size
);
29 cl_assert_equal_i(8, buf1
.asize
);
31 /* But requesting many does. */
32 cl_git_pass(git_str_grow_by(&buf1
, 16));
33 cl_assert_equal_i(5, buf1
.size
);
34 cl_assert(buf1
.asize
> 8);
36 git_str_dispose(&buf1
);
39 void test_str_basic__printf(void)
41 git_str buf2
= GIT_STR_INIT
;
42 git_str_printf(&buf2
, "%s %s %d ", "shoop", "da", 23);
43 cl_assert(git_str_oom(&buf2
) == 0);
44 cl_assert_equal_s(git_str_cstr(&buf2
), "shoop da 23 ");
46 git_str_printf(&buf2
, "%s %d", "woop", 42);
47 cl_assert(git_str_oom(&buf2
) == 0);
48 cl_assert_equal_s(git_str_cstr(&buf2
), "shoop da 23 woop 42");
49 git_str_dispose(&buf2
);