From 1ab2fedd108b26c9624454a897e2c518aaff7d32 Mon Sep 17 00:00:00 2001 From: Charles Date: Tue, 14 Jan 2020 15:50:09 +0100 Subject: Linux portability, moved tests to test/ dir --- Makefile | 14 ++--- ft_atoi_base_test.c | 139 ----------------------------------------- ft_list_push_front_test.c | 17 ----- ft_list_remove_if_test.c | 17 ----- ft_list_size_test.c | 17 ----- ft_list_sort_test.c | 17 ----- ft_read_test.c | 67 -------------------- ft_strcmp_test.c | 101 ------------------------------ ft_strcpy_test.c | 62 ------------------ ft_strdup_test.c | 69 -------------------- ft_strlen_test.c | 46 -------------- ft_write_test.c | 67 -------------------- main.c | 2 + test/ft_atoi_base_test.c | 139 +++++++++++++++++++++++++++++++++++++++++ test/ft_list_push_front_test.c | 17 +++++ test/ft_list_remove_if_test.c | 17 +++++ test/ft_list_size_test.c | 17 +++++ test/ft_list_sort_test.c | 17 +++++ test/ft_read_test.c | 67 ++++++++++++++++++++ test/ft_strcmp_test.c | 118 ++++++++++++++++++++++++++++++++++ test/ft_strcpy_test.c | 62 ++++++++++++++++++ test/ft_strdup_test.c | 69 ++++++++++++++++++++ test/ft_strlen_test.c | 46 ++++++++++++++ test/ft_write_test.c | 67 ++++++++++++++++++++ 24 files changed, 645 insertions(+), 626 deletions(-) delete mode 100644 ft_atoi_base_test.c delete mode 100644 ft_list_push_front_test.c delete mode 100644 ft_list_remove_if_test.c delete mode 100644 ft_list_size_test.c delete mode 100644 ft_list_sort_test.c delete mode 100644 ft_read_test.c delete mode 100644 ft_strcmp_test.c delete mode 100644 ft_strcpy_test.c delete mode 100644 ft_strdup_test.c delete mode 100644 ft_strlen_test.c delete mode 100644 ft_write_test.c create mode 100644 test/ft_atoi_base_test.c create mode 100644 test/ft_list_push_front_test.c create mode 100644 test/ft_list_remove_if_test.c create mode 100644 test/ft_list_size_test.c create mode 100644 test/ft_list_sort_test.c create mode 100644 test/ft_read_test.c create mode 100644 test/ft_strcmp_test.c create mode 100644 test/ft_strcpy_test.c create mode 100644 test/ft_strdup_test.c create mode 100644 test/ft_strlen_test.c create mode 100644 test/ft_write_test.c diff --git a/Makefile b/Makefile index ddc3162..468998a 100644 --- a/Makefile +++ b/Makefile @@ -16,13 +16,13 @@ LDFLAGS = -L$(LIBASM_PATH) -lasm NAME = runtest SRC = main.c \ helper.c \ - ft_strlen_test.c \ - ft_strcpy_test.c \ - ft_strcmp_test.c \ - ft_write_test.c \ - ft_read_test.c \ - ft_strdup_test.c \ - ft_atoi_base_test.c \ + test/ft_strlen_test.c \ + test/ft_strcpy_test.c \ + test/ft_strcmp_test.c \ + test/ft_write_test.c \ + test/ft_read_test.c \ + test/ft_strdup_test.c \ + test/ft_atoi_base_test.c \ functions_reference/ref_ft_atoi_base.c #ft_list_push_front_test.c ft_list_size_test.c \ # ft_list_sort_test.c ft_list_remove_if_test.c \ diff --git a/ft_atoi_base_test.c b/ft_atoi_base_test.c deleted file mode 100644 index 653d6b1..0000000 --- a/ft_atoi_base_test.c +++ /dev/null @@ -1,139 +0,0 @@ -#include "libasm_test.h" - -static int expected_ret; -static int actual_ret; - -#define FT_ATOI_BASE_EXPECT(str, base) do { \ - asm("movq $0xffffffffffffffff, %rax"); \ - actual_ret = ft_atoi_base(str, base); \ - expected_ret = ref_ft_atoi_base(str, base); \ - if (actual_ret != expected_ret) \ - printf("KO: [COMPARE]: %s: expected: %d got: %d with: "#str", "#base"\n", \ - test_name, expected_ret, actual_ret); \ - else \ - print_ok(); \ -} while (0); - -static void -ft_atoi_base_segfault(void) -{ - TEST_ASM_FUNCTION(ft_atoi_base("", "")); - TEST_ASM_FUNCTION(ft_atoi_base("10", "")); - TEST_ASM_FUNCTION(ft_atoi_base("", "01")); - TEST_ASM_FUNCTION(ft_atoi_base("123", "0123456789")); - TEST_ASM_FUNCTION(ft_atoi_base("101", "01")); - TEST_ASM_FUNCTION(ft_atoi_base("ffe0", "0123456789abcdef")); - TEST_ASM_FUNCTION(ft_atoi_base("\t\n\r\v\f\r 4", "01234")); - TEST_ASM_FUNCTION(ft_atoi_base("45", "")); - TEST_ASM_FUNCTION(ft_atoi_base("45", "0")); - TEST_ASM_FUNCTION(ft_atoi_base("45", "01")); - TEST_ASM_FUNCTION(ft_atoi_base("10", "011")); - TEST_ASM_FUNCTION(ft_atoi_base("10", "0+")); - TEST_ASM_FUNCTION(ft_atoi_base("10", "-0")); - TEST_ASM_FUNCTION(ft_atoi_base("10111", "\t541")); - TEST_ASM_FUNCTION(ft_atoi_base("10111", "98\n541")); - TEST_ASM_FUNCTION(ft_atoi_base("10111", "7\r541")); - TEST_ASM_FUNCTION(ft_atoi_base("10111", "0\v541")); - TEST_ASM_FUNCTION(ft_atoi_base("10111", "1\f541")); - TEST_ASM_FUNCTION(ft_atoi_base("10111", "54 1")); - TEST_ASM_FUNCTION(ft_atoi_base("111000", "01")); - TEST_ASM_FUNCTION(ft_atoi_base("ff", "0123456789abcdef")); - TEST_ASM_FUNCTION(ft_atoi_base("52", "01234567")); - TEST_ASM_FUNCTION(ft_atoi_base("2a", "0123456789abcdef")); - TEST_ASM_FUNCTION(ft_atoi_base("7fffffff", "0123456789abcdef")); - TEST_ASM_FUNCTION(ft_atoi_base("ff", "0123-456789abcdef")); - TEST_ASM_FUNCTION(ft_atoi_base("ff", "01\r23456789abcdef")); - TEST_ASM_FUNCTION(ft_atoi_base("ff", "abcc")); - TEST_ASM_FUNCTION(ft_atoi_base("ff", "")); - TEST_ASM_FUNCTION(ft_atoi_base("ff", "a")); - TEST_ASM_FUNCTION(ft_atoi_base("-ff", "0123456789abcdef")); - TEST_ASM_FUNCTION(ft_atoi_base("--ff", "0123456789abcdef")); - TEST_ASM_FUNCTION(ft_atoi_base("+--ff", "0123456789abcdef")); - TEST_ASM_FUNCTION(ft_atoi_base("-++++++-+--ff", "0123456789abcdef")); - TEST_ASM_FUNCTION(ft_atoi_base("-++++++-+--ff\xff", "0123456789abcdef")); - TEST_ASM_FUNCTION(ft_atoi_base("-+\r++-+--ff\xff", "0123456789abcdef")); - TEST_ASM_FUNCTION(ft_atoi_base("-01", "01")); - TEST_ASM_FUNCTION(ft_atoi_base("--11101", "01")); - TEST_ASM_FUNCTION(ft_atoi_base("+-123", "01")); - TEST_ASM_FUNCTION(ft_atoi_base("-++++01++-+--ff", "01")); - TEST_ASM_FUNCTION(ft_atoi_base("-++10101\xff", "01")); - TEST_ASM_FUNCTION(ft_atoi_base("-+\r++-+--01\x01", "01")); - TEST_ASM_FUNCTION(ft_atoi_base("a\0bb", "ab")); - TEST_ASM_FUNCTION(ft_atoi_base("-b\0bb", "ab")); - TEST_ASM_FUNCTION(ft_atoi_base(" \t\n\r-++++++-+--ff\xff", "0123456789abcdef")); - TEST_ASM_FUNCTION(ft_atoi_base(" -+\r++-+--ff\xff", "0123456789abcdef")); - TEST_ASM_FUNCTION(ft_atoi_base("\n-01", "01")); - TEST_ASM_FUNCTION(ft_atoi_base("\x0b--11101", "01")); - TEST_ASM_FUNCTION(ft_atoi_base(" 755x+", "01234567")); - TEST_ASM_FUNCTION(ft_atoi_base(" 700chmod", "01234567")); - TEST_ASM_FUNCTION(ft_atoi_base(" 644yo", "01234567")); - TEST_ASM_FUNCTION(ft_atoi_base(TO_STRING(INT_MAX), "0123456789")); - TEST_ASM_FUNCTION(ft_atoi_base(TO_STRING(INT_MIN), "0123456789")); -} - -static void -ft_atoi_base_compare(void) -{ - FT_ATOI_BASE_EXPECT("", ""); - FT_ATOI_BASE_EXPECT("10", ""); - FT_ATOI_BASE_EXPECT("", "01"); - FT_ATOI_BASE_EXPECT("123", "0123456789"); - FT_ATOI_BASE_EXPECT("101", "01"); - FT_ATOI_BASE_EXPECT("ffe0", "0123456789abcdef"); - FT_ATOI_BASE_EXPECT("\t\n\r\v\f\r 4", "01234"); - FT_ATOI_BASE_EXPECT("45", ""); - FT_ATOI_BASE_EXPECT("45", "0"); - FT_ATOI_BASE_EXPECT("45", "01"); - FT_ATOI_BASE_EXPECT("10", "011"); - FT_ATOI_BASE_EXPECT("10", "0+"); - FT_ATOI_BASE_EXPECT("10", "-0"); - FT_ATOI_BASE_EXPECT("10111", "\t541"); - FT_ATOI_BASE_EXPECT("10111", "98\n541"); - FT_ATOI_BASE_EXPECT("10111", "7\r541"); - FT_ATOI_BASE_EXPECT("10111", "0\v541"); - FT_ATOI_BASE_EXPECT("10111", "1\f541"); - FT_ATOI_BASE_EXPECT("10111", "54 1"); - FT_ATOI_BASE_EXPECT("111000", "01"); - FT_ATOI_BASE_EXPECT("ff", "0123456789abcdef"); - FT_ATOI_BASE_EXPECT("52", "01234567"); - FT_ATOI_BASE_EXPECT("2a", "0123456789abcdef"); - FT_ATOI_BASE_EXPECT("7fffffff", "0123456789abcdef"); - FT_ATOI_BASE_EXPECT("ff", "0123-456789abcdef"); - FT_ATOI_BASE_EXPECT("ff", "01\r23456789abcdef"); - FT_ATOI_BASE_EXPECT("ff", "abcc"); - FT_ATOI_BASE_EXPECT("ff", ""); - FT_ATOI_BASE_EXPECT("ff", "a"); - FT_ATOI_BASE_EXPECT("-ff", "0123456789abcdef"); - FT_ATOI_BASE_EXPECT("--ff", "0123456789abcdef"); - FT_ATOI_BASE_EXPECT("+--ff", "0123456789abcdef"); - FT_ATOI_BASE_EXPECT("-++++++-+--ff", "0123456789abcdef"); - FT_ATOI_BASE_EXPECT("-++++++-+--ff\xff", "0123456789abcdef"); - FT_ATOI_BASE_EXPECT("-+\r++-+--ff\xff", "0123456789abcdef"); - FT_ATOI_BASE_EXPECT("-01", "01"); - FT_ATOI_BASE_EXPECT("--11101", "01"); - FT_ATOI_BASE_EXPECT("+-123", "01"); - FT_ATOI_BASE_EXPECT("-++++01++-+--ff", "01"); - FT_ATOI_BASE_EXPECT("-++10101\xff", "01"); - FT_ATOI_BASE_EXPECT("-+\r++-+--01\x01", "01"); - FT_ATOI_BASE_EXPECT("a\0bb", "ab"); - FT_ATOI_BASE_EXPECT("-b\0bb", "ab"); - FT_ATOI_BASE_EXPECT(" \t\n\r-++++++-+--ff\xff", "0123456789abcdef"); - FT_ATOI_BASE_EXPECT(" -+\r++-+--ff\xff", "0123456789abcdef"); - FT_ATOI_BASE_EXPECT("\n-01", "01"); - FT_ATOI_BASE_EXPECT("\x0b--11101", "01"); - FT_ATOI_BASE_EXPECT(" 755x+", "01234567"); - FT_ATOI_BASE_EXPECT(" 700chmod", "01234567"); - FT_ATOI_BASE_EXPECT(" 644yo", "01234567"); - FT_ATOI_BASE_EXPECT(TO_STRING(INT_MAX), "0123456789"); - FT_ATOI_BASE_EXPECT(TO_STRING(INT_MIN), "0123456789"); -} - -void -ft_atoi_base_test(void) -{ - test_name = "ft_atoi_base.s"; - - ft_atoi_base_segfault(); - if (!signaled) - ft_atoi_base_compare(); -} diff --git a/ft_list_push_front_test.c b/ft_list_push_front_test.c deleted file mode 100644 index 411194e..0000000 --- a/ft_list_push_front_test.c +++ /dev/null @@ -1,17 +0,0 @@ -#include "libasm_test.h" - -static void -ft_list_push_front_segfault(void) -{ - -} -static void -ft_list_push_front_compare(void) -{ - -} -void -ft_list_push_front_test(void) -{ - -} diff --git a/ft_list_remove_if_test.c b/ft_list_remove_if_test.c deleted file mode 100644 index e574949..0000000 --- a/ft_list_remove_if_test.c +++ /dev/null @@ -1,17 +0,0 @@ -#include "libasm_test.h" - -static void -ft_list_remove_if_segfault(void) -{ - -} -static void -ft_list_remove_if_compare(void) -{ - -} -void -ft_list_remove_if_test(void) -{ - -} diff --git a/ft_list_size_test.c b/ft_list_size_test.c deleted file mode 100644 index 80394d7..0000000 --- a/ft_list_size_test.c +++ /dev/null @@ -1,17 +0,0 @@ -#include "libasm_test.h" - -static void -ft_list_size_segfault(void) -{ - -} -static void -ft_list_size_compare(void) -{ - -} -void -ft_list_size_test(void) -{ - -} diff --git a/ft_list_sort_test.c b/ft_list_sort_test.c deleted file mode 100644 index e9fe2da..0000000 --- a/ft_list_sort_test.c +++ /dev/null @@ -1,17 +0,0 @@ -#include "libasm_test.h" - -static void -ft_list_sort_segfault(void) -{ - -} -static void -ft_list_sort_compare(void) -{ - -} -void -ft_list_sort_test(void) -{ - -} diff --git a/ft_read_test.c b/ft_read_test.c deleted file mode 100644 index 50a85bd..0000000 --- a/ft_read_test.c +++ /dev/null @@ -1,67 +0,0 @@ -#include "libasm_test.h" - -#define FT_READ_BUF_SIZE (1 << 12) - -static int ft_read_pipe[2]; -static char buf[FT_READ_BUF_SIZE]; -static int ret; - -#define FT_READ_EXPECT(str) do { \ - if (pipe(ft_read_pipe) < 0) \ - exit(EXIT_FAILURE); \ - fcntl(ft_read_pipe[0], F_SETFL, O_NONBLOCK); \ - write(ft_read_pipe[1], str, strlen(str)); \ - ret = ft_read(ft_read_pipe[0], buf, FT_READ_BUF_SIZE); \ - buf[ret] = '\0'; \ - if (strcmp(buf, str) != 0) \ - printf("KO: [COMPARE]: %s: expected: \"%s\" got: \"%s\"\n", test_name, str, buf); \ - else \ - print_ok(); \ - close(ft_read_pipe[1]); \ - close(ft_read_pipe[0]); \ -} while (0); - -void -ft_read_test_segfault(void) -{ - int tmp[2]; - if (pipe(tmp) < 0) - exit(EXIT_FAILURE); - TEST_ASM_FUNCTION(ft_read(tmp[1], "test", 5)); - TEST_ASM_FUNCTION(ft_read(tmp[1], "t", 1)); - TEST_ASM_FUNCTION(ft_read(tmp[1], "", 0)); - TEST_ASM_FUNCTION(ft_read(tmp[1], "test", 4)); - TEST_ASM_FUNCTION(ft_read(tmp[1], "test", 2)); - TEST_ASM_FUNCTION(ft_read(tmp[1], NULL, 2)); - close(tmp[0]); - close(tmp[1]); - TEST_ASM_FUNCTION(ft_read(-1, "tt", 2)); - TEST_ASM_FUNCTION(ft_read(OPEN_MAX + 1, "tt", 2)); -} - -void -ft_read_test_compare(void) -{ - FT_READ_EXPECT(""); - FT_READ_EXPECT("bon"); - FT_READ_EXPECT("bonjour"); - FT_READ_EXPECT("%c%s%p%x%X%e%f%g"); - FT_READ_EXPECT("the\0hidden"); - FT_READ_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_read_test(void) -{ - test_name = "ft_read.s"; - - ft_read_test_segfault(); - if (!signaled) - ft_read_test_compare(); -} diff --git a/ft_strcmp_test.c b/ft_strcmp_test.c deleted file mode 100644 index db106df..0000000 --- a/ft_strcmp_test.c +++ /dev/null @@ -1,101 +0,0 @@ -#include "libasm_test.h" - -static void -ft_strcmp_test_segfault(void) -{ - TEST_ASM_FUNCTION(ft_strcmp("", "")); - TEST_ASM_FUNCTION(ft_strcmp("bon", "bon")); - TEST_ASM_FUNCTION(ft_strcmp("bonjour", "bonjour")); - TEST_ASM_FUNCTION(ft_strcmp("%c%s%p%x%X%e%f%g", "%c%s%p%x%X%e%f%g")); - TEST_ASM_FUNCTION(ft_strcmp("the\0hidden", "the\0hidden")); - TEST_ASM_FUNCTION(ft_strcmp("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.", -"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.")); -} - -#define FT_STRCMP_EXPECT(s1, s2) expect_int(strcmp(s1, s2), ft_strcmp(s1, s2)) - -static void -ft_strcmp_test_compare(void) -{ - FT_STRCMP_EXPECT("", ""); - FT_STRCMP_EXPECT("bon", ""); - FT_STRCMP_EXPECT("bonjour", ""); - FT_STRCMP_EXPECT("%c%s%p%x%X%e%f%g", ""); - FT_STRCMP_EXPECT("the\0hidden", ""); - FT_STRCMP_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_STRCMP_EXPECT("", ""); - FT_STRCMP_EXPECT("bon", "bon"); - FT_STRCMP_EXPECT("bonjour", "bonjour"); - FT_STRCMP_EXPECT("%c%s%p%x%X%e%f%g", "%c%s%p%x%X%e%f%g"); - FT_STRCMP_EXPECT("the\0hidden", "the\0hidden"); - FT_STRCMP_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.", -"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_STRCMP_EXPECT("", "asdf"); - FT_STRCMP_EXPECT("bon", "bo"); - FT_STRCMP_EXPECT("bonjour", "onjour"); - FT_STRCMP_EXPECT("%c%s%p%x%X%e%f%g", "%s%p%x%X%e%f%g"); - FT_STRCMP_EXPECT("the\0hidden", "thehidden"); - FT_STRCMP_EXPECT("Lorem ipsum dolor st amet, consectetur adipiscing", "Lodsfsdfasdf"); - - FT_STRCMP_EXPECT("\x01", "\x01"); - FT_STRCMP_EXPECT("\x02", "\x01"); - FT_STRCMP_EXPECT("\x01", "\x02"); - FT_STRCMP_EXPECT("\xff", "\xff"); - FT_STRCMP_EXPECT("\xfe", "\xff"); - FT_STRCMP_EXPECT("\xff", "\xfe"); - - FT_STRCMP_EXPECT("\x01\x01", "\x01"); - FT_STRCMP_EXPECT("\x01\x02", "\x01"); - FT_STRCMP_EXPECT("\x02\x01", "\x02"); - FT_STRCMP_EXPECT("\xff\xff", "\xff"); - FT_STRCMP_EXPECT("\xff\xfe", "\xff"); - FT_STRCMP_EXPECT("\xfe\xff", "\xfe"); - - FT_STRCMP_EXPECT("\x01", "\x01\x01"); - FT_STRCMP_EXPECT("\x01", "\x01\x02"); - FT_STRCMP_EXPECT("\x02", "\x02\x01"); - FT_STRCMP_EXPECT("\xff", "\xff\xff"); - FT_STRCMP_EXPECT("\xff", "\xff\xfe"); - FT_STRCMP_EXPECT("\xfe", "\xfe\xff"); -} - -void -ft_strcmp_test(void) -{ - test_name = "ft_strcmp.s"; - - ft_strcmp_test_segfault(); - if (!signaled) - ft_strcmp_test_compare(); -} diff --git a/ft_strcpy_test.c b/ft_strcpy_test.c deleted file mode 100644 index c8ec474..0000000 --- a/ft_strcpy_test.c +++ /dev/null @@ -1,62 +0,0 @@ -#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(); -} diff --git a/ft_strdup_test.c b/ft_strdup_test.c deleted file mode 100644 index 5ca7850..0000000 --- a/ft_strdup_test.c +++ /dev/null @@ -1,69 +0,0 @@ -#include "libasm_test.h" - -static char *tmp; - -#define FT_STRDUP_EXPECT(str) do { \ - tmp = ft_strdup(str); \ - if (tmp == NULL || strcmp(str, tmp) != 0) \ - printf("KO: [COMPARE]: %s: expected: \"%s\" got: \"%s\"\n", test_name, str, tmp); \ - else \ - print_ok(); \ - free(tmp); \ -} while (0); - -static void -ft_strdup_test_segfault(void) -{ - char *tmp2 = NULL; - char a; - - TEST_ASM_FUNCTION(ft_strdup("")); - TEST_ASM_FUNCTION(ft_strdup("abc")); - TEST_ASM_FUNCTION(ft_strdup("asl;fjl;asdjfjkasdl;fjadjsf")); - TEST_ASM_FUNCTION(ft_strdup("yope\0la")); - TEST_ASM_FUNCTION(ft_strdup("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.")); - - tmp2 = ft_strdup(""); - TEST_ASM_FUNCTION(a = *tmp2); - tmp2 = ft_strdup("abc"); - TEST_ASM_FUNCTION(a = *tmp2); - tmp2 = ft_strdup("asl;fjl;asd"); - TEST_ASM_FUNCTION(a = *tmp2); - tmp2 = ft_strdup("yope\0la"); - TEST_ASM_FUNCTION(a = *tmp2); -} - -static void -ft_strdup_test_compare(void) -{ - FT_STRDUP_EXPECT(""); - FT_STRDUP_EXPECT("abc"); - FT_STRDUP_EXPECT("asl;fjl;asdjfjkasdl;fjadjsf"); - FT_STRDUP_EXPECT("yope\0la"); - FT_STRDUP_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_STRDUP_EXPECT("\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0b\x0c\x0d\x0e\x0f"); - FT_STRDUP_EXPECT("\x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0b\x0c\x0d\x0e\x0f"); -} - - -void -ft_strdup_test(void) -{ - test_name = "ft_strdup.s"; - - ft_strdup_test_segfault(); - if (!signaled) - ft_strdup_test_compare(); -} diff --git a/ft_strlen_test.c b/ft_strlen_test.c deleted file mode 100644 index 7229316..0000000 --- a/ft_strlen_test.c +++ /dev/null @@ -1,46 +0,0 @@ -#include "libasm_test.h" - -static void -ft_strlen_test_segfault(void) -{ - TEST_ASM_FUNCTION(ft_strlen("")); - TEST_ASM_FUNCTION(ft_strlen("bon")); - TEST_ASM_FUNCTION(ft_strlen("bonjour")); - TEST_ASM_FUNCTION(ft_strlen("%c%s%p%x%X%e%f%g")); - TEST_ASM_FUNCTION(ft_strlen("the\0hidden")); - TEST_ASM_FUNCTION(ft_strlen("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.")); -} - -#define FT_STRLEN_EXPECT(str) expect_int(strlen(str), ft_strlen(str)) - -static void -ft_strlen_test_compare(void) -{ - FT_STRLEN_EXPECT(""); - FT_STRLEN_EXPECT("bon"); - FT_STRLEN_EXPECT("bonjour"); - FT_STRLEN_EXPECT("%c%s%p%x%X%e%f%g"); - FT_STRLEN_EXPECT("the\0hidden"); - FT_STRLEN_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_strlen_test(void) -{ - test_name = "ft_strlen.s"; - ft_strlen_test_segfault(); - if (!signaled) - ft_strlen_test_compare(); -} diff --git a/ft_write_test.c b/ft_write_test.c deleted file mode 100644 index 1c14244..0000000 --- a/ft_write_test.c +++ /dev/null @@ -1,67 +0,0 @@ -#include "libasm_test.h" - -#define FT_WRITE_BUF_SIZE (1 << 12) - -static int ft_write_pipe[2]; -static char buf[FT_WRITE_BUF_SIZE]; -static int ret; - -#define FT_WRITE_EXPECT(str) do { \ - if (pipe(ft_write_pipe) < 0) \ - exit(EXIT_FAILURE); \ - fcntl(ft_write_pipe[0], F_SETFL, O_NONBLOCK); \ - ft_write(ft_write_pipe[1], str, strlen(str)); \ - ret = read(ft_write_pipe[0], buf, FT_WRITE_BUF_SIZE); \ - buf[ret] = '\0'; \ - if (strcmp(buf, str) != 0) \ - printf("KO: [COMPARE]: %s: expected: \"%s\" got: \"%s\"\n", test_name, str, buf); \ - else \ - print_ok(); \ - close(ft_write_pipe[1]); \ - close(ft_write_pipe[0]); \ -} while (0); - -void -ft_write_test_segfault(void) -{ - int tmp[2]; - if (pipe(tmp) < 0) - exit(EXIT_FAILURE); - TEST_ASM_FUNCTION(ft_write(tmp[1], "test", 5)); - TEST_ASM_FUNCTION(ft_write(tmp[1], "t", 1)); - TEST_ASM_FUNCTION(ft_write(tmp[1], "", 0)); - TEST_ASM_FUNCTION(ft_write(tmp[1], "test", 4)); - TEST_ASM_FUNCTION(ft_write(tmp[1], "test", 2)); - TEST_ASM_FUNCTION(ft_write(tmp[1], NULL, 2)); - close(tmp[0]); - close(tmp[1]); - TEST_ASM_FUNCTION(ft_write(-1, "tt", 2)); - TEST_ASM_FUNCTION(ft_write(OPEN_MAX + 1, "tt", 2)); -} - -void -ft_write_test_compare(void) -{ - FT_WRITE_EXPECT(""); - FT_WRITE_EXPECT("bon"); - FT_WRITE_EXPECT("bonjour"); - FT_WRITE_EXPECT("%c%s%p%x%X%e%f%g"); - FT_WRITE_EXPECT("the\0hidden"); - FT_WRITE_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_write_test(void) -{ - test_name = "ft_write.s"; - - ft_write_test_segfault(); - if (!signaled) - ft_write_test_compare(); -} diff --git a/main.c b/main.c index 840d73c..b81a1ed 100644 --- a/main.c +++ b/main.c @@ -6,8 +6,10 @@ main(void) ft_strlen_test(); ft_strcpy_test(); ft_strcmp_test(); +#ifndef __linux__ ft_write_test(); ft_read_test(); +#endif ft_strdup_test(); ft_atoi_base_test(); diff --git a/test/ft_atoi_base_test.c b/test/ft_atoi_base_test.c new file mode 100644 index 0000000..8801565 --- /dev/null +++ b/test/ft_atoi_base_test.c @@ -0,0 +1,139 @@ +#include "libasm_test.h" + +static int expected_ret; +static int actual_ret; + + /* asm("movq $0xffffffffffffffff, %rax"); \ */ +#define FT_ATOI_BASE_EXPECT(str, base) do { \ + actual_ret = ft_atoi_base(str, base); \ + expected_ret = ref_ft_atoi_base(str, base); \ + if (actual_ret != expected_ret) \ + printf("KO: [COMPARE]: %s: expected: %d got: %d with: "#str", "#base"\n", \ + test_name, expected_ret, actual_ret); \ + else \ + print_ok(); \ +} while (0); + +static void +ft_atoi_base_segfault(void) +{ + TEST_ASM_FUNCTION(ft_atoi_base("", "")); + TEST_ASM_FUNCTION(ft_atoi_base("10", "")); + TEST_ASM_FUNCTION(ft_atoi_base("", "01")); + TEST_ASM_FUNCTION(ft_atoi_base("123", "0123456789")); + TEST_ASM_FUNCTION(ft_atoi_base("101", "01")); + TEST_ASM_FUNCTION(ft_atoi_base("ffe0", "0123456789abcdef")); + TEST_ASM_FUNCTION(ft_atoi_base("\t\n\r\v\f\r 4", "01234")); + TEST_ASM_FUNCTION(ft_atoi_base("45", "")); + TEST_ASM_FUNCTION(ft_atoi_base("45", "0")); + TEST_ASM_FUNCTION(ft_atoi_base("45", "01")); + TEST_ASM_FUNCTION(ft_atoi_base("10", "011")); + TEST_ASM_FUNCTION(ft_atoi_base("10", "0+")); + TEST_ASM_FUNCTION(ft_atoi_base("10", "-0")); + TEST_ASM_FUNCTION(ft_atoi_base("10111", "\t541")); + TEST_ASM_FUNCTION(ft_atoi_base("10111", "98\n541")); + TEST_ASM_FUNCTION(ft_atoi_base("10111", "7\r541")); + TEST_ASM_FUNCTION(ft_atoi_base("10111", "0\v541")); + TEST_ASM_FUNCTION(ft_atoi_base("10111", "1\f541")); + TEST_ASM_FUNCTION(ft_atoi_base("10111", "54 1")); + TEST_ASM_FUNCTION(ft_atoi_base("111000", "01")); + TEST_ASM_FUNCTION(ft_atoi_base("ff", "0123456789abcdef")); + TEST_ASM_FUNCTION(ft_atoi_base("52", "01234567")); + TEST_ASM_FUNCTION(ft_atoi_base("2a", "0123456789abcdef")); + TEST_ASM_FUNCTION(ft_atoi_base("7fffffff", "0123456789abcdef")); + TEST_ASM_FUNCTION(ft_atoi_base("ff", "0123-456789abcdef")); + TEST_ASM_FUNCTION(ft_atoi_base("ff", "01\r23456789abcdef")); + TEST_ASM_FUNCTION(ft_atoi_base("ff", "abcc")); + TEST_ASM_FUNCTION(ft_atoi_base("ff", "")); + TEST_ASM_FUNCTION(ft_atoi_base("ff", "a")); + TEST_ASM_FUNCTION(ft_atoi_base("-ff", "0123456789abcdef")); + TEST_ASM_FUNCTION(ft_atoi_base("--ff", "0123456789abcdef")); + TEST_ASM_FUNCTION(ft_atoi_base("+--ff", "0123456789abcdef")); + TEST_ASM_FUNCTION(ft_atoi_base("-++++++-+--ff", "0123456789abcdef")); + TEST_ASM_FUNCTION(ft_atoi_base("-++++++-+--ff\xff", "0123456789abcdef")); + TEST_ASM_FUNCTION(ft_atoi_base("-+\r++-+--ff\xff", "0123456789abcdef")); + TEST_ASM_FUNCTION(ft_atoi_base("-01", "01")); + TEST_ASM_FUNCTION(ft_atoi_base("--11101", "01")); + TEST_ASM_FUNCTION(ft_atoi_base("+-123", "01")); + TEST_ASM_FUNCTION(ft_atoi_base("-++++01++-+--ff", "01")); + TEST_ASM_FUNCTION(ft_atoi_base("-++10101\xff", "01")); + TEST_ASM_FUNCTION(ft_atoi_base("-+\r++-+--01\x01", "01")); + TEST_ASM_FUNCTION(ft_atoi_base("a\0bb", "ab")); + TEST_ASM_FUNCTION(ft_atoi_base("-b\0bb", "ab")); + TEST_ASM_FUNCTION(ft_atoi_base(" \t\n\r-++++++-+--ff\xff", "0123456789abcdef")); + TEST_ASM_FUNCTION(ft_atoi_base(" -+\r++-+--ff\xff", "0123456789abcdef")); + TEST_ASM_FUNCTION(ft_atoi_base("\n-01", "01")); + TEST_ASM_FUNCTION(ft_atoi_base("\x0b--11101", "01")); + TEST_ASM_FUNCTION(ft_atoi_base(" 755x+", "01234567")); + TEST_ASM_FUNCTION(ft_atoi_base(" 700chmod", "01234567")); + TEST_ASM_FUNCTION(ft_atoi_base(" 644yo", "01234567")); + TEST_ASM_FUNCTION(ft_atoi_base(TO_STRING(INT_MAX), "0123456789")); + TEST_ASM_FUNCTION(ft_atoi_base(TO_STRING(INT_MIN), "0123456789")); +} + +static void +ft_atoi_base_compare(void) +{ + FT_ATOI_BASE_EXPECT("", ""); + FT_ATOI_BASE_EXPECT("10", ""); + FT_ATOI_BASE_EXPECT("", "01"); + FT_ATOI_BASE_EXPECT("123", "0123456789"); + FT_ATOI_BASE_EXPECT("101", "01"); + FT_ATOI_BASE_EXPECT("ffe0", "0123456789abcdef"); + FT_ATOI_BASE_EXPECT("\t\n\r\v\f\r 4", "01234"); + FT_ATOI_BASE_EXPECT("45", ""); + FT_ATOI_BASE_EXPECT("45", "0"); + FT_ATOI_BASE_EXPECT("45", "01"); + FT_ATOI_BASE_EXPECT("10", "011"); + FT_ATOI_BASE_EXPECT("10", "0+"); + FT_ATOI_BASE_EXPECT("10", "-0"); + FT_ATOI_BASE_EXPECT("10111", "\t541"); + FT_ATOI_BASE_EXPECT("10111", "98\n541"); + FT_ATOI_BASE_EXPECT("10111", "7\r541"); + FT_ATOI_BASE_EXPECT("10111", "0\v541"); + FT_ATOI_BASE_EXPECT("10111", "1\f541"); + FT_ATOI_BASE_EXPECT("10111", "54 1"); + FT_ATOI_BASE_EXPECT("111000", "01"); + FT_ATOI_BASE_EXPECT("ff", "0123456789abcdef"); + FT_ATOI_BASE_EXPECT("52", "01234567"); + FT_ATOI_BASE_EXPECT("2a", "0123456789abcdef"); + FT_ATOI_BASE_EXPECT("7fffffff", "0123456789abcdef"); + FT_ATOI_BASE_EXPECT("ff", "0123-456789abcdef"); + FT_ATOI_BASE_EXPECT("ff", "01\r23456789abcdef"); + FT_ATOI_BASE_EXPECT("ff", "abcc"); + FT_ATOI_BASE_EXPECT("ff", ""); + FT_ATOI_BASE_EXPECT("ff", "a"); + FT_ATOI_BASE_EXPECT("-ff", "0123456789abcdef"); + FT_ATOI_BASE_EXPECT("--ff", "0123456789abcdef"); + FT_ATOI_BASE_EXPECT("+--ff", "0123456789abcdef"); + FT_ATOI_BASE_EXPECT("-++++++-+--ff", "0123456789abcdef"); + FT_ATOI_BASE_EXPECT("-++++++-+--ff\xff", "0123456789abcdef"); + FT_ATOI_BASE_EXPECT("-+\r++-+--ff\xff", "0123456789abcdef"); + FT_ATOI_BASE_EXPECT("-01", "01"); + FT_ATOI_BASE_EXPECT("--11101", "01"); + FT_ATOI_BASE_EXPECT("+-123", "01"); + FT_ATOI_BASE_EXPECT("-++++01++-+--ff", "01"); + FT_ATOI_BASE_EXPECT("-++10101\xff", "01"); + FT_ATOI_BASE_EXPECT("-+\r++-+--01\x01", "01"); + FT_ATOI_BASE_EXPECT("a\0bb", "ab"); + FT_ATOI_BASE_EXPECT("-b\0bb", "ab"); + FT_ATOI_BASE_EXPECT(" \t\n\r-++++++-+--ff\xff", "0123456789abcdef"); + FT_ATOI_BASE_EXPECT(" -+\r++-+--ff\xff", "0123456789abcdef"); + FT_ATOI_BASE_EXPECT("\n-01", "01"); + FT_ATOI_BASE_EXPECT("\x0b--11101", "01"); + FT_ATOI_BASE_EXPECT(" 755x+", "01234567"); + FT_ATOI_BASE_EXPECT(" 700chmod", "01234567"); + FT_ATOI_BASE_EXPECT(" 644yo", "01234567"); + FT_ATOI_BASE_EXPECT(TO_STRING(INT_MAX), "0123456789"); + FT_ATOI_BASE_EXPECT(TO_STRING(INT_MIN), "0123456789"); +} + +void +ft_atoi_base_test(void) +{ + test_name = "ft_atoi_base.s"; + + ft_atoi_base_segfault(); + if (!signaled) + ft_atoi_base_compare(); +} diff --git a/test/ft_list_push_front_test.c b/test/ft_list_push_front_test.c new file mode 100644 index 0000000..411194e --- /dev/null +++ b/test/ft_list_push_front_test.c @@ -0,0 +1,17 @@ +#include "libasm_test.h" + +static void +ft_list_push_front_segfault(void) +{ + +} +static void +ft_list_push_front_compare(void) +{ + +} +void +ft_list_push_front_test(void) +{ + +} diff --git a/test/ft_list_remove_if_test.c b/test/ft_list_remove_if_test.c new file mode 100644 index 0000000..e574949 --- /dev/null +++ b/test/ft_list_remove_if_test.c @@ -0,0 +1,17 @@ +#include "libasm_test.h" + +static void +ft_list_remove_if_segfault(void) +{ + +} +static void +ft_list_remove_if_compare(void) +{ + +} +void +ft_list_remove_if_test(void) +{ + +} diff --git a/test/ft_list_size_test.c b/test/ft_list_size_test.c new file mode 100644 index 0000000..80394d7 --- /dev/null +++ b/test/ft_list_size_test.c @@ -0,0 +1,17 @@ +#include "libasm_test.h" + +static void +ft_list_size_segfault(void) +{ + +} +static void +ft_list_size_compare(void) +{ + +} +void +ft_list_size_test(void) +{ + +} diff --git a/test/ft_list_sort_test.c b/test/ft_list_sort_test.c new file mode 100644 index 0000000..e9fe2da --- /dev/null +++ b/test/ft_list_sort_test.c @@ -0,0 +1,17 @@ +#include "libasm_test.h" + +static void +ft_list_sort_segfault(void) +{ + +} +static void +ft_list_sort_compare(void) +{ + +} +void +ft_list_sort_test(void) +{ + +} diff --git a/test/ft_read_test.c b/test/ft_read_test.c new file mode 100644 index 0000000..50a85bd --- /dev/null +++ b/test/ft_read_test.c @@ -0,0 +1,67 @@ +#include "libasm_test.h" + +#define FT_READ_BUF_SIZE (1 << 12) + +static int ft_read_pipe[2]; +static char buf[FT_READ_BUF_SIZE]; +static int ret; + +#define FT_READ_EXPECT(str) do { \ + if (pipe(ft_read_pipe) < 0) \ + exit(EXIT_FAILURE); \ + fcntl(ft_read_pipe[0], F_SETFL, O_NONBLOCK); \ + write(ft_read_pipe[1], str, strlen(str)); \ + ret = ft_read(ft_read_pipe[0], buf, FT_READ_BUF_SIZE); \ + buf[ret] = '\0'; \ + if (strcmp(buf, str) != 0) \ + printf("KO: [COMPARE]: %s: expected: \"%s\" got: \"%s\"\n", test_name, str, buf); \ + else \ + print_ok(); \ + close(ft_read_pipe[1]); \ + close(ft_read_pipe[0]); \ +} while (0); + +void +ft_read_test_segfault(void) +{ + int tmp[2]; + if (pipe(tmp) < 0) + exit(EXIT_FAILURE); + TEST_ASM_FUNCTION(ft_read(tmp[1], "test", 5)); + TEST_ASM_FUNCTION(ft_read(tmp[1], "t", 1)); + TEST_ASM_FUNCTION(ft_read(tmp[1], "", 0)); + TEST_ASM_FUNCTION(ft_read(tmp[1], "test", 4)); + TEST_ASM_FUNCTION(ft_read(tmp[1], "test", 2)); + TEST_ASM_FUNCTION(ft_read(tmp[1], NULL, 2)); + close(tmp[0]); + close(tmp[1]); + TEST_ASM_FUNCTION(ft_read(-1, "tt", 2)); + TEST_ASM_FUNCTION(ft_read(OPEN_MAX + 1, "tt", 2)); +} + +void +ft_read_test_compare(void) +{ + FT_READ_EXPECT(""); + FT_READ_EXPECT("bon"); + FT_READ_EXPECT("bonjour"); + FT_READ_EXPECT("%c%s%p%x%X%e%f%g"); + FT_READ_EXPECT("the\0hidden"); + FT_READ_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_read_test(void) +{ + test_name = "ft_read.s"; + + ft_read_test_segfault(); + if (!signaled) + ft_read_test_compare(); +} diff --git a/test/ft_strcmp_test.c b/test/ft_strcmp_test.c new file mode 100644 index 0000000..fa62157 --- /dev/null +++ b/test/ft_strcmp_test.c @@ -0,0 +1,118 @@ +#include "libasm_test.h" + +static void +ft_strcmp_test_segfault(void) +{ + TEST_ASM_FUNCTION(ft_strcmp("", "")); + TEST_ASM_FUNCTION(ft_strcmp("bon", "bon")); + TEST_ASM_FUNCTION(ft_strcmp("bonjour", "bonjour")); + TEST_ASM_FUNCTION(ft_strcmp("%c%s%p%x%X%e%f%g", "%c%s%p%x%X%e%f%g")); + TEST_ASM_FUNCTION(ft_strcmp("the\0hidden", "the\0hidden")); + TEST_ASM_FUNCTION(ft_strcmp("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.", +"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.")); +} + +int strcmp_expected; +int strcmp_actual; + +#ifdef __linux__ +# define FT_STRCMP_EXPECT(s1, s2) do { \ + strcmp_expected = strcmp(s1, s2); \ + strcmp_actual = ft_strcmp(s1, s2); \ + if ((strcmp_expected < 0 && strcmp_actual < 0) || \ + (strcmp_expected > 0 && strcmp_actual > 0) || \ + (strcmp_expected == 0 && strcmp_actual == 0)) \ + print_ok(); \ + else \ + printf("KO: [COMPARE]: ft_strcmp.s: expected: %d got: %d\n", \ + strcmp_expected, strcmp_actual); \ +} while (0); +#else +# define FT_STRCMP_EXPECT(s1, s2) expect_int(strcmp(s1, s2), ft_strcmp(s1, s2)) +#endif + +static void +ft_strcmp_test_compare(void) +{ + FT_STRCMP_EXPECT("", ""); + FT_STRCMP_EXPECT("bon", ""); + FT_STRCMP_EXPECT("bonjour", ""); + FT_STRCMP_EXPECT("%c%s%p%x%X%e%f%g", ""); + FT_STRCMP_EXPECT("the\0hidden", ""); + FT_STRCMP_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_STRCMP_EXPECT("", ""); + FT_STRCMP_EXPECT("bon", "bon"); + FT_STRCMP_EXPECT("bonjour", "bonjour"); + FT_STRCMP_EXPECT("%c%s%p%x%X%e%f%g", "%c%s%p%x%X%e%f%g"); + FT_STRCMP_EXPECT("the\0hidden", "the\0hidden"); + FT_STRCMP_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.", +"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_STRCMP_EXPECT("", "asdf"); + FT_STRCMP_EXPECT("bon", "bo"); + FT_STRCMP_EXPECT("bonjour", "onjour"); + FT_STRCMP_EXPECT("%c%s%p%x%X%e%f%g", "%s%p%x%X%e%f%g"); + FT_STRCMP_EXPECT("the\0hidden", "thehidden"); + FT_STRCMP_EXPECT("Lorem ipsum dolor st amet, consectetur adipiscing", "Lodsfsdfasdf"); + + FT_STRCMP_EXPECT("\x01", "\x01"); + FT_STRCMP_EXPECT("\x02", "\x01"); + FT_STRCMP_EXPECT("\x01", "\x02"); + FT_STRCMP_EXPECT("\xff", "\xff"); + FT_STRCMP_EXPECT("\xfe", "\xff"); + FT_STRCMP_EXPECT("\xff", "\xfe"); + + FT_STRCMP_EXPECT("\x01\x01", "\x01"); + FT_STRCMP_EXPECT("\x01\x02", "\x01"); + FT_STRCMP_EXPECT("\x02\x01", "\x02"); + FT_STRCMP_EXPECT("\xff\xff", "\xff"); + FT_STRCMP_EXPECT("\xff\xfe", "\xff"); + FT_STRCMP_EXPECT("\xfe\xff", "\xfe"); + + FT_STRCMP_EXPECT("\x01", "\x01\x01"); + FT_STRCMP_EXPECT("\x01", "\x01\x02"); + FT_STRCMP_EXPECT("\x02", "\x02\x01"); + FT_STRCMP_EXPECT("\xff", "\xff\xff"); + FT_STRCMP_EXPECT("\xff", "\xff\xfe"); + FT_STRCMP_EXPECT("\xfe", "\xfe\xff"); +} + +void +ft_strcmp_test(void) +{ + test_name = "ft_strcmp.s"; + + ft_strcmp_test_segfault(); + if (!signaled) + ft_strcmp_test_compare(); +} 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(); +} diff --git a/test/ft_strdup_test.c b/test/ft_strdup_test.c new file mode 100644 index 0000000..5ca7850 --- /dev/null +++ b/test/ft_strdup_test.c @@ -0,0 +1,69 @@ +#include "libasm_test.h" + +static char *tmp; + +#define FT_STRDUP_EXPECT(str) do { \ + tmp = ft_strdup(str); \ + if (tmp == NULL || strcmp(str, tmp) != 0) \ + printf("KO: [COMPARE]: %s: expected: \"%s\" got: \"%s\"\n", test_name, str, tmp); \ + else \ + print_ok(); \ + free(tmp); \ +} while (0); + +static void +ft_strdup_test_segfault(void) +{ + char *tmp2 = NULL; + char a; + + TEST_ASM_FUNCTION(ft_strdup("")); + TEST_ASM_FUNCTION(ft_strdup("abc")); + TEST_ASM_FUNCTION(ft_strdup("asl;fjl;asdjfjkasdl;fjadjsf")); + TEST_ASM_FUNCTION(ft_strdup("yope\0la")); + TEST_ASM_FUNCTION(ft_strdup("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.")); + + tmp2 = ft_strdup(""); + TEST_ASM_FUNCTION(a = *tmp2); + tmp2 = ft_strdup("abc"); + TEST_ASM_FUNCTION(a = *tmp2); + tmp2 = ft_strdup("asl;fjl;asd"); + TEST_ASM_FUNCTION(a = *tmp2); + tmp2 = ft_strdup("yope\0la"); + TEST_ASM_FUNCTION(a = *tmp2); +} + +static void +ft_strdup_test_compare(void) +{ + FT_STRDUP_EXPECT(""); + FT_STRDUP_EXPECT("abc"); + FT_STRDUP_EXPECT("asl;fjl;asdjfjkasdl;fjadjsf"); + FT_STRDUP_EXPECT("yope\0la"); + FT_STRDUP_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_STRDUP_EXPECT("\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0b\x0c\x0d\x0e\x0f"); + FT_STRDUP_EXPECT("\x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0b\x0c\x0d\x0e\x0f"); +} + + +void +ft_strdup_test(void) +{ + test_name = "ft_strdup.s"; + + ft_strdup_test_segfault(); + if (!signaled) + ft_strdup_test_compare(); +} diff --git a/test/ft_strlen_test.c b/test/ft_strlen_test.c new file mode 100644 index 0000000..7229316 --- /dev/null +++ b/test/ft_strlen_test.c @@ -0,0 +1,46 @@ +#include "libasm_test.h" + +static void +ft_strlen_test_segfault(void) +{ + TEST_ASM_FUNCTION(ft_strlen("")); + TEST_ASM_FUNCTION(ft_strlen("bon")); + TEST_ASM_FUNCTION(ft_strlen("bonjour")); + TEST_ASM_FUNCTION(ft_strlen("%c%s%p%x%X%e%f%g")); + TEST_ASM_FUNCTION(ft_strlen("the\0hidden")); + TEST_ASM_FUNCTION(ft_strlen("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.")); +} + +#define FT_STRLEN_EXPECT(str) expect_int(strlen(str), ft_strlen(str)) + +static void +ft_strlen_test_compare(void) +{ + FT_STRLEN_EXPECT(""); + FT_STRLEN_EXPECT("bon"); + FT_STRLEN_EXPECT("bonjour"); + FT_STRLEN_EXPECT("%c%s%p%x%X%e%f%g"); + FT_STRLEN_EXPECT("the\0hidden"); + FT_STRLEN_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_strlen_test(void) +{ + test_name = "ft_strlen.s"; + ft_strlen_test_segfault(); + if (!signaled) + ft_strlen_test_compare(); +} diff --git a/test/ft_write_test.c b/test/ft_write_test.c new file mode 100644 index 0000000..1c14244 --- /dev/null +++ b/test/ft_write_test.c @@ -0,0 +1,67 @@ +#include "libasm_test.h" + +#define FT_WRITE_BUF_SIZE (1 << 12) + +static int ft_write_pipe[2]; +static char buf[FT_WRITE_BUF_SIZE]; +static int ret; + +#define FT_WRITE_EXPECT(str) do { \ + if (pipe(ft_write_pipe) < 0) \ + exit(EXIT_FAILURE); \ + fcntl(ft_write_pipe[0], F_SETFL, O_NONBLOCK); \ + ft_write(ft_write_pipe[1], str, strlen(str)); \ + ret = read(ft_write_pipe[0], buf, FT_WRITE_BUF_SIZE); \ + buf[ret] = '\0'; \ + if (strcmp(buf, str) != 0) \ + printf("KO: [COMPARE]: %s: expected: \"%s\" got: \"%s\"\n", test_name, str, buf); \ + else \ + print_ok(); \ + close(ft_write_pipe[1]); \ + close(ft_write_pipe[0]); \ +} while (0); + +void +ft_write_test_segfault(void) +{ + int tmp[2]; + if (pipe(tmp) < 0) + exit(EXIT_FAILURE); + TEST_ASM_FUNCTION(ft_write(tmp[1], "test", 5)); + TEST_ASM_FUNCTION(ft_write(tmp[1], "t", 1)); + TEST_ASM_FUNCTION(ft_write(tmp[1], "", 0)); + TEST_ASM_FUNCTION(ft_write(tmp[1], "test", 4)); + TEST_ASM_FUNCTION(ft_write(tmp[1], "test", 2)); + TEST_ASM_FUNCTION(ft_write(tmp[1], NULL, 2)); + close(tmp[0]); + close(tmp[1]); + TEST_ASM_FUNCTION(ft_write(-1, "tt", 2)); + TEST_ASM_FUNCTION(ft_write(OPEN_MAX + 1, "tt", 2)); +} + +void +ft_write_test_compare(void) +{ + FT_WRITE_EXPECT(""); + FT_WRITE_EXPECT("bon"); + FT_WRITE_EXPECT("bonjour"); + FT_WRITE_EXPECT("%c%s%p%x%X%e%f%g"); + FT_WRITE_EXPECT("the\0hidden"); + FT_WRITE_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_write_test(void) +{ + test_name = "ft_write.s"; + + ft_write_test_segfault(); + if (!signaled) + ft_write_test_compare(); +} -- cgit