In the recent codebase update (commit 8bf6fbd, 2023-12-09), a new unit testing framework written entirely in C was introduced to the Git project aimed at simplifying testing and reducing test run times. Currently, tests for the reftable refs-backend are performed by a custom testing framework defined by reftable/test_framework.{c, h}. Port reftable/basics_test.c to the unit testing framework and improve upon the ported test. Mentored-by: Patrick Steinhardt <ps@xxxxxx> Mentored-by: Christian Couder <chriscool@xxxxxxxxxxxxx> Signed-off-by: Chandra Pratap <chandrapratap3519@xxxxxxxxx> --- Changes in v3: - Split up the 4th patch of the previous series into 2 sub-patches CI/PR for v3: https://github.com/gitgitgadget/git/pull/1736 range-diff against v2: 1: 3ab1b415f4 = 1: 3ab1b415f4 t: move reftable/basics_test.c to the unit testing framework 2: 51fec8a376 = 2: 0143bbd2e4 t: move tests from reftable/stack_test.c to the new unit test 3: e0e9adfdf6 = 3: 2f1d02e945 t: move tests from reftable/record_test.c to the new unit test -: ---------- > 4: 14606ac8db t: add test for put_be16() 4: 81b8975b4c ! 5: 2e741bab6d t: add test for put_be16() and improve test-case for parse_names() @@ Metadata Author: Chandra Pratap <chandrapratap3519@xxxxxxxxx> ## Commit message ## - t: add test for put_be16() and improve test-case for parse_names() + t: improve the test-case for parse_names() - put_be16() is a function defined in reftable/basics.{c, h} for which - there are no tests in the current setup. Add a test for the same and - improve the existing test-case for parse_names(). + In the existing test-case for parse_names(), the fact that empty + lines should be ignored is not obvious because the empty line is + immediately followed by end-of-string. This can be mistaken as the + empty line getting replaced by NULL. Improve this by adding a + non-empty line after the empty one to demonstrate the intended behavior. Mentored-by: Patrick Steinhardt <ps@xxxxxx> Mentored-by: Christian Couder <chriscool@xxxxxxxxxxxxx> @@ t/unit-tests/t-reftable-basics.c: static void test_parse_names_normal(void) free_names(out); } -@@ t/unit-tests/t-reftable-basics.c: static void test_common_prefix(void) - strbuf_release(&b); - } - --static void test_u24_roundtrip(void) -+static void test_be_roundtrip(void) - { - uint32_t in = 0x112233; - uint8_t dest[3]; - uint32_t out; -+ /* test put_be24 and get_be24 roundtrip */ - put_be24(dest, in); - out = get_be24(dest); - check_int(in, ==, out); -+ /* test put_be16 and get_be16 roundtrip */ -+ in = 0xfef1; -+ put_be16(dest, in); -+ out = get_be16(dest); -+ check_int(in, ==, out); - } - - int cmd_main(int argc, const char *argv[]) -@@ t/unit-tests/t-reftable-basics.c: int cmd_main(int argc, const char *argv[]) - TEST(test_binsearch(), "binary search with binsearch works"); - TEST(test_names_length(), "names_length retuns size of a NULL-terminated string array"); - TEST(test_names_equal(), "names_equal compares NULL-terminated string arrays"); -- TEST(test_u24_roundtrip(), "put_be24 and get_be24 work"); -+ TEST(test_be_roundtrip(), "put_be24, get_be24 and put_be16 work"); - - return test_done(); - }