From e7d355f950d7a30ccacd69aed2e6c2317fa6a4ec Mon Sep 17 00:00:00 2001 From: Alex Kotov Date: Mon, 7 Dec 2020 03:07:12 +0500 Subject: [PATCH] Add tests to "kernaux_printf" --- .gitignore | 1 + include/kernaux/printf.h | 3 ++- tests/test_printf | Bin 59224 -> 0 bytes tests/test_printf.c | 5 +++++ 4 files changed, 8 insertions(+), 1 deletion(-) delete mode 100755 tests/test_printf diff --git a/.gitignore b/.gitignore index 2cec853..29763c8 100644 --- a/.gitignore +++ b/.gitignore @@ -40,4 +40,5 @@ /tests/test_multiboot2_print /tests/test_multiboot2_validation /tests/test_pfa +/tests/test_printf /tests/test_stdlib diff --git a/include/kernaux/printf.h b/include/kernaux/printf.h index 09da72c..9e5bff5 100644 --- a/include/kernaux/printf.h +++ b/include/kernaux/printf.h @@ -7,7 +7,8 @@ extern "C" { #endif -void kernaux_printf(void (*putchar)(char), const char *format, ...); +void kernaux_printf(void (*putchar)(char), const char *format, ...) +__attribute__((format(printf, 2, 3))); void kernaux_printf_va(void (*putchar)(char), const char *format, va_list va); #ifdef __cplusplus diff --git a/tests/test_printf b/tests/test_printf deleted file mode 100755 index c5e9c29b2f086c541d38c4bdfe3ae6cc8587d819..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 59224 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 diff --git a/tests/test_printf.c b/tests/test_printf.c index 0f94704..502ce67 100644 --- a/tests/test_printf.c +++ b/tests/test_printf.c @@ -33,6 +33,11 @@ static void test(const char *const expected, const char *const format, ...) int main() { + memset(buffer, '\0', sizeof(buffer)); + buffer_index = 0; + kernaux_printf(test_putchar, "Hello, World!"); + assert(strcmp("Hello, World!", buffer) == 0); + test("", ""); test("Hello, World!", "Hello, World!");