aboutsummaryrefslogtreecommitdiff
path: root/ft_strcpy_test.c
diff options
context:
space:
mode:
Diffstat (limited to 'ft_strcpy_test.c')
-rw-r--r--ft_strcpy_test.c53
1 files changed, 53 insertions, 0 deletions
diff --git a/ft_strcpy_test.c b/ft_strcpy_test.c
index 75eae86..8fb065e 100644
--- a/ft_strcpy_test.c
+++ b/ft_strcpy_test.c
@@ -1,7 +1,60 @@
#include "libasm_test.h"
+#define FT_STRCPY_BUF_SIZE (1 << 12)
+
+static char expected_buf[FT_STRCPY_BUF_SIZE] = {0};
+static char actual_buf[FT_STRCPY_BUF_SIZE] = {0};
+
+#define FT_STRCPY_EXPECT(str) do { \
+ strcpy(expected_buf, str); \
+ ft_strcpy(actual_buf, str); \
+ if (strcmp(expected_buf, actual_buf) != 0) \
+ printf("KO: [COMPARE]: %s: expected: \"%s\" got: \"%s\"\n", test_name, expected_buf, actual_buf); \
+ else \
+ print_ok(); \
+} while (0);
+
+
+static void
+ft_strcpy_test_segfault(void)
+{
+ char buf[FT_STRCPY_BUF_SIZE] = {0};
+
+ TEST_ASM_FUNCTION(ft_strcpy(buf, ""));
+ TEST_ASM_FUNCTION(ft_strcpy(buf, "abc"));
+ TEST_ASM_FUNCTION(ft_strcpy(buf, "asl;fjl;asdjfjkasdl;fjadjsf"));
+ TEST_ASM_FUNCTION(ft_strcpy(buf, "yope\0la"));
+ TEST_ASM_FUNCTION(ft_strcpy(buf, "Lorem ipsum dolor sit amet, consectetur adipiscing\
+elit. Sed in malesuada purus. Etiam a scelerisque massa. Ut non euismod elit. Aliquam\
+bibendum dolor mi, id fringilla tellus pulvinar eu. Fusce vel fermentum sem. Cras\
+volutpat, eros eget rhoncus rhoncus, diam augue egestas dolor, vitae rutrum nisi\
+felis sed purus. Mauris magna ex, mollis non suscipit eu, lacinia ac turpis. Phasellus\
+ac tortor et lectus fermentum lobortis eu at mauris. Vestibulum sit amet posuere\
+tortor, sit amet consequat amet."));
+}
+
+static void
+ft_strcpy_test_compare(void)
+{
+ FT_STRCPY_EXPECT("");
+ FT_STRCPY_EXPECT("abc");
+ FT_STRCPY_EXPECT("asl;fjl;asdjfjkasdl;fjadjsf");
+ FT_STRCPY_EXPECT("yope\0la");
+ FT_STRCPY_EXPECT("Lorem ipsum dolor sit amet, consectetur adipiscing\
+elit. Sed in malesuada purus. Etiam a scelerisque massa. Ut non euismod elit. Aliquam\
+bibendum dolor mi, id fringilla tellus pulvinar eu. Fusce vel fermentum sem. Cras\
+volutpat, eros eget rhoncus rhoncus, diam augue egestas dolor, vitae rutrum nisi\
+felis sed purus. Mauris magna ex, mollis non suscipit eu, lacinia ac turpis. Phasellus\
+ac tortor et lectus fermentum lobortis eu at mauris. Vestibulum sit amet posuere\
+tortor, sit amet consequat amet.");
+}
+
void
ft_strcpy_test(void)
{
+ test_name = "ft_strcpy.s";
+ ft_strcpy_test_segfault();
+ if (!signaled)
+ ft_strcpy_test_compare();
}