diff options
| author | Charles <sircharlesaze@gmail.com> | 2020-01-14 15:50:09 +0100 |
|---|---|---|
| committer | Charles <sircharlesaze@gmail.com> | 2020-01-14 15:50:09 +0100 |
| commit | 1ab2fedd108b26c9624454a897e2c518aaff7d32 (patch) | |
| tree | fff428b72e018b2f17bea7c3cd5eb19ff096ea7f /test/ft_strcpy_test.c | |
| parent | 66bfb5efc23b4dd9819bf70b5a709c81ccf7a820 (diff) | |
| download | libasm_test-1ab2fedd108b26c9624454a897e2c518aaff7d32.tar.gz libasm_test-1ab2fedd108b26c9624454a897e2c518aaff7d32.tar.bz2 libasm_test-1ab2fedd108b26c9624454a897e2c518aaff7d32.zip | |
Linux portability, moved tests to test/ dir
Diffstat (limited to 'test/ft_strcpy_test.c')
| -rw-r--r-- | test/ft_strcpy_test.c | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/test/ft_strcpy_test.c b/test/ft_strcpy_test.c new file mode 100644 index 0000000..c8ec474 --- /dev/null +++ b/test/ft_strcpy_test.c @@ -0,0 +1,62 @@ +#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."); + FT_STRCPY_EXPECT("\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0b\x0c\x0d\x0e\x0f"); + FT_STRCPY_EXPECT("\x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0b\x0c\x0d\x0e\x0f"); +} + +void +ft_strcpy_test(void) +{ + test_name = "ft_strcpy.s"; + + ft_strcpy_test_segfault(); + if (!signaled) + ft_strcpy_test_compare(); +} |
