From: Richard Russon Date: Fri, 24 May 2019 22:24:04 +0000 (+0100) Subject: test: improve test_mutt_buffer_strcpy_n() X-Git-Tag: 2019-10-25~188^2~1 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=c4e8ae412a39ed8a321810367c84cb4cf00e56f4;p=neomutt test: improve test_mutt_buffer_strcpy_n() --- diff --git a/test/buffer/mutt_buffer_strcpy_n.c b/test/buffer/mutt_buffer_strcpy_n.c index 0aaf73a5b..8e9ea779e 100644 --- a/test/buffer/mutt_buffer_strcpy_n.c +++ b/test/buffer/mutt_buffer_strcpy_n.c @@ -39,4 +39,41 @@ void test_mutt_buffer_strcpy_n(void) mutt_buffer_strcpy_n(&buf, NULL, 3); TEST_CHECK_(1, "mutt_buffer_strcpy_n(&buf, NULL, 3)"); } + + TEST_CASE("Copy to an empty Buffer"); + + { + const char *str = "a quick brown fox"; + const size_t len = strlen(str); + size_t sizes[] = { 0, 5, len, 99 }; + + for (size_t i = 0; i < mutt_array_size(sizes); i++) + { + TEST_CASE_("%ld", sizes[i]); + struct Buffer *buf = mutt_buffer_new(); + mutt_buffer_strcpy_n(buf, str, sizes[i]); + TEST_CHECK(strlen(mutt_b2s(buf)) == MIN(len, sizes[i])); + TEST_CHECK(strncmp(mutt_b2s(buf), str, sizes[i]) == 0); + mutt_buffer_free(&buf); + } + } + + TEST_CASE("Copy to a non-empty Buffer"); + + { + const char *base = "test"; + const char *str = "a quick brown fox"; + const size_t len = strlen(str); + size_t sizes[] = { 0, 5, len, 99 }; + + for (size_t i = 0; i < mutt_array_size(sizes); i++) + { + TEST_CASE_("%ld", sizes[i]); + struct Buffer *buf = mutt_buffer_from(base); + mutt_buffer_strcpy_n(buf, str, sizes[i]); + TEST_CHECK(strlen(mutt_b2s(buf)) == MIN(len, sizes[i])); + TEST_CHECK(strncmp(mutt_b2s(buf), str, sizes[i]) == 0); + mutt_buffer_free(&buf); + } + } }