struct Buffer buf = { 0 };
TEST_CHECK(mutt_buffer_add_printf(&buf, NULL) != 0);
}
+
+ TEST_CASE("printf to an empty Buffer");
+
+ {
+ TEST_CASE("Empty");
+ struct Buffer *buf = mutt_buffer_new();
+ TEST_CHECK(mutt_buffer_add_printf(buf, "") == 0);
+ TEST_CHECK(strlen(mutt_b2s(buf)) == 0);
+ mutt_buffer_free(&buf);
+ }
+
+ {
+ TEST_CASE("Static");
+ const char *str = "apple";
+ struct Buffer *buf = mutt_buffer_new();
+ TEST_CHECK(mutt_buffer_add_printf(buf, str) == 5);
+ TEST_CHECK(strcmp(mutt_b2s(buf), str) == 0);
+ mutt_buffer_free(&buf);
+ }
+
+ {
+ TEST_CASE("Static big");
+ const char *str =
+ "apple banana cherry damson elderberry fig guava hawthorn ilama "
+ "jackfruit kumquat lemon mango nectarine olive papaya quince raspberry "
+ "strawberry tangerine ugli vanilla wolfberry xigua yew ziziphus";
+ struct Buffer *buf = mutt_buffer_new();
+ TEST_CHECK(mutt_buffer_add_printf(buf, str) == 195);
+ TEST_CHECK(strcmp(mutt_b2s(buf), str) == 0);
+ mutt_buffer_free(&buf);
+ }
+
+ {
+ TEST_CASE("Varargs");
+ const char *str = "apple";
+ const char *result = "app 1234567 3.1416";
+ struct Buffer *buf = mutt_buffer_new();
+ TEST_CHECK(mutt_buffer_add_printf(buf, "%.3s %ld %3.4f", str, 1234567, 3.141592654) == 18);
+ TEST_CHECK(strcmp(mutt_b2s(buf), result) == 0);
+ mutt_buffer_free(&buf);
+ }
+
+ TEST_CASE("printf to a non-empty Buffer");
+
+ {
+ TEST_CASE("Empty");
+ const char *str = "test";
+ struct Buffer *buf = mutt_buffer_from(str);
+ TEST_CHECK(mutt_buffer_add_printf(buf, "") == 0);
+ TEST_CHECK(strcmp(mutt_b2s(buf), str) == 0);
+ mutt_buffer_free(&buf);
+ }
+
+ {
+ TEST_CASE("Static");
+ const char *str = "apple";
+ const char *result = "testapple";
+ struct Buffer *buf = mutt_buffer_from("test");
+ TEST_CHECK(mutt_buffer_add_printf(buf, str) == 5);
+ TEST_CHECK(strcmp(mutt_b2s(buf), result) == 0);
+ mutt_buffer_free(&buf);
+ }
+
+ {
+ TEST_CASE("Static big");
+ const char *str =
+ "apple banana cherry damson elderberry fig guava hawthorn ilama "
+ "jackfruit kumquat lemon mango nectarine olive papaya quince raspberry "
+ "strawberry tangerine ugli vanilla wolfberry xigua yew ziziphus";
+ const char *result =
+ "testapple banana cherry damson elderberry fig guava hawthorn ilama "
+ "jackfruit kumquat lemon mango nectarine olive papaya quince raspberry "
+ "strawberry tangerine ugli vanilla wolfberry xigua yew ziziphus";
+ struct Buffer *buf = mutt_buffer_from("test");
+ TEST_CHECK(mutt_buffer_add_printf(buf, str) == 195);
+ TEST_CHECK(strcmp(mutt_b2s(buf), result) == 0);
+ mutt_buffer_free(&buf);
+ }
+
+ {
+ TEST_CASE("Varargs");
+ const char *str = "apple";
+ const char *result = "testapp 1234567 3.1416";
+ struct Buffer *buf = mutt_buffer_from("test");
+ TEST_CHECK(mutt_buffer_add_printf(buf, "%.3s %ld %3.4f", str, 1234567, 3.141592654) == 18);
+ TEST_CHECK(strcmp(mutt_b2s(buf), result) == 0);
+ mutt_buffer_free(&buf);
+ }
}