summaryrefslogtreecommitdiff
path: root/rushs/evalexpr/tinyprintf/tests/tests.c
diff options
context:
space:
mode:
authorMartial Simon <msimon_fr@hotmail.com>2025-09-15 01:08:27 +0200
committerMartial Simon <msimon_fr@hotmail.com>2025-09-15 01:08:27 +0200
commitc9b6b9a5ca082fe7c1b6f58d7713f785a9eb6a5c (patch)
tree3e4f42f93c7ae89a364e4d51fff6e5cec4e55fa9 /rushs/evalexpr/tinyprintf/tests/tests.c
add: graphs et rushs
Diffstat (limited to 'rushs/evalexpr/tinyprintf/tests/tests.c')
-rw-r--r--rushs/evalexpr/tinyprintf/tests/tests.c213
1 files changed, 213 insertions, 0 deletions
diff --git a/rushs/evalexpr/tinyprintf/tests/tests.c b/rushs/evalexpr/tinyprintf/tests/tests.c
new file mode 100644
index 0000000..4235203
--- /dev/null
+++ b/rushs/evalexpr/tinyprintf/tests/tests.c
@@ -0,0 +1,213 @@
+#include <criterion/criterion.h>
+#include <criterion/assert.h>
+#include <criterion/redirect.h>
+#include <stdio.h>
+
+#include "../src/tinyprintf.h"
+
+TestSuite(TestHandleD);
+
+Test(TestHandleD, handle_d42, .init = cr_redirect_stdout)
+{
+ int res = 0;
+ handle_d(42, &res);
+ fflush(stdout);
+ cr_assert_stdout_eq_str("42");
+ cr_expect(res == 2, "Expected: %d. Got: %d", 2, res);
+}
+
+Test(TestHandleD, handle_d0, .init = cr_redirect_stdout)
+{
+ int res = 0;
+ handle_d(0, &res);
+ fflush(stdout);
+ cr_assert_stdout_eq_str("0");
+ cr_expect(res == 1, "Expected: %d. Got: %d", 1, res);
+}
+
+Test(TestHandleD, handle_dminus42, .init = cr_redirect_stdout)
+{
+ int res = 0;
+ handle_d(-42, &res);
+ fflush(stdout);
+ cr_assert_stdout_eq_str("-42");
+ cr_expect(res == 3, "Expected: %d. Got: %d", 3, res);
+}
+
+Test(TestHandleD, simple_print, .init = cr_redirect_stdout)
+{
+ int retval = tinyprintf("%s [%d] %s", "Hello", 42, "world!");
+ fflush(stdout);
+ cr_assert_stdout_eq_str("Hello [42] world!");
+ cr_expect(retval == 17, "Expected: %d. Got: %d", 17, retval);
+}
+
+TestSuite(TestHandleX);
+
+Test(TestHandleX, handle_x42, .init = cr_redirect_stdout)
+{
+ int res = 0;
+ handle_x(42, &res);
+ fflush(stdout);
+ cr_assert_stdout_eq_str("2a");
+ cr_expect(res == 2, "Expected: %d. Got: %d", 2, res);
+}
+
+Test(TestHandleX, handle_x0, .init = cr_redirect_stdout)
+{
+ int res = 0;
+ handle_x(0, &res);
+ fflush(stdout);
+ cr_assert_stdout_eq_str("0");
+ cr_expect(res == 1, "Expected: %d. Got: %d", 1, res);
+}
+
+Test(TestHandleX, handle_x15, .init = cr_redirect_stdout)
+{
+ int res = 0;
+ handle_x(15, &res);
+ fflush(stdout);
+ cr_assert_stdout_eq_str("f");
+ cr_expect(res == 1, "Expected: %d. Got: %d", 1, res);
+}
+
+Test(TestHandleX, handle_0xdeadc0de, .init = cr_redirect_stdout)
+{
+ int res = 0;
+ handle_x(0xdeadc0de, &res);
+ fflush(stdout);
+ cr_assert_stdout_eq_str("deadc0de");
+ cr_expect(res == 8, "Expected: %d. Got: %d", 8, res);
+}
+
+Test(TestHandleX, simple_print_hexa, .init = cr_redirect_stdout)
+{
+ int retval = tinyprintf("%s [%x] %s", "Hello", 42, "world!");
+ fflush(stdout);
+ cr_assert_stdout_eq_str("Hello [2a] world!");
+ cr_expect(retval == 17, "Expected: %d. Got: %d", 17, retval);
+}
+
+TestSuite(TestHandleU);
+
+Test(TestHandleU, handle_u42, .init = cr_redirect_stdout)
+{
+ int res = 0;
+ handle_u(42, &res);
+ fflush(stdout);
+ cr_assert_stdout_eq_str("42");
+ cr_expect(res == 2, "Expected: %d. Got: %d", 2, res);
+}
+
+Test(TestHandleU, handle_u0, .init = cr_redirect_stdout)
+{
+ int res = 0;
+ handle_u(0, &res);
+ fflush(stdout);
+ cr_assert_stdout_eq_str("0");
+ cr_expect(res == 1, "Expected: %d. Got: %d", 1, res);
+}
+
+Test(TestHandleU, handle_u15, .init = cr_redirect_stdout)
+{
+ int res = 0;
+ handle_u(15, &res);
+ fflush(stdout);
+ cr_assert_stdout_eq_str("15");
+ cr_expect(res == 2, "Expected: %d. Got: %d", 2, res);
+}
+
+Test(TestHandleU, simple_print_unsigned, .init = cr_redirect_stdout)
+{
+ int retval = tinyprintf("%s [%u] %s", "Hello", 42, "world!");
+ fflush(stdout);
+ cr_assert_stdout_eq_str("Hello [42] world!");
+ cr_expect(retval == 17, "Expected: %d. Got: %d", 17, retval);
+}
+
+TestSuite(TestHandleO);
+
+Test(TestHandleO, handle_o42, .init = cr_redirect_stdout)
+{
+ int res = 0;
+ handle_o(42, &res);
+ fflush(stdout);
+ cr_assert_stdout_eq_str("52");
+ cr_expect(res == 2, "Expected: %d. Got: %d", 2, res);
+}
+
+Test(TestHandleO, handle_o0, .init = cr_redirect_stdout)
+{
+ int res = 0;
+ handle_o(0, &res);
+ fflush(stdout);
+ cr_assert_stdout_eq_str("0");
+ cr_expect(res == 1, "Expected: %d. Got: %d", 1, res);
+}
+
+Test(TestHandleO, handle_o7, .init = cr_redirect_stdout)
+{
+ int res = 0;
+ handle_o(7, &res);
+ fflush(stdout);
+ cr_assert_stdout_eq_str("7");
+ cr_expect(res == 1, "Expected: %d. Got: %d", 1, res);
+}
+
+Test(TestHandleO, simple_print_octal, .init = cr_redirect_stdout)
+{
+ int retval = tinyprintf("%s [%o] %s", "Hello", 42, "world!");
+ fflush(stdout);
+ cr_assert_stdout_eq_str("Hello [52] world!");
+ cr_expect(retval == 17, "Expected: %d. Got: %d", 17, retval);
+}
+
+TestSuite(TestPrint);
+
+Test(TestPrint, print_percent, .init = cr_redirect_stdout)
+{
+ int retval = tinyprintf("%%s", "in your head");
+ fflush(stdout);
+ cr_assert_stdout_eq_str("%s");
+ cr_expect(retval == 2, "Expected: %d. Got: %d", 2, retval);
+}
+
+Test(TestPrint, print_unknown_option, .init = cr_redirect_stdout)
+{
+ int retval = tinyprintf("Good morning ACU! %t Tinyprintf is cool", 12);
+ fflush(stdout);
+ cr_assert_stdout_eq_str("Good morning ACU! %t Tinyprintf is cool");
+ cr_expect(retval == 39, "Expected: %d. Got: %d", 39, retval);
+}
+
+Test(TestPrint, print_tricky, .init = cr_redirect_stdout)
+{
+ int retval = tinyprintf("%c%c is %s... %d too.", '4', '2', "the answer", '*');
+ fflush(stdout);
+ cr_assert_stdout_eq_str("42 is the answer... 42 too.");
+ cr_expect(retval == 27, "Expected: %d. Got: %d", 27, retval);
+}
+
+Test(TestPrint, print_null, .init = cr_redirect_stdout)
+{
+ int retval = tinyprintf("%c%c is %s... %d too.", '4', '2', NULL, '*');
+ fflush(stdout);
+ cr_assert_stdout_eq_str("42 is (null)... 42 too.");
+ cr_expect(retval == 23, "Expected: %d. Got: %d", 23, retval);
+}
+
+Test(TestPrint, print_null_fmt, .init = cr_redirect_stdout)
+{
+ int retval = tinyprintf(NULL, '4', '2', NULL, '*');
+ fflush(stdout);
+ cr_assert_stdout_eq_str("");
+ cr_expect(retval == 0, "Expected: %d. Got: %d", 0, retval);
+}
+
+Test(TestPrint, print_empty_fmt, .init = cr_redirect_stdout)
+{
+ int retval = tinyprintf("", '4', '2', NULL, '*');
+ fflush(stdout);
+ cr_assert_stdout_eq_str("");
+ cr_expect(retval == 0, "Expected: %d. Got: %d", 0, retval);
+}