diff --git a/src/tests/assemblers/message.c b/src/tests/assemblers/message.c index 44258dd..a9a2a83 100644 --- a/src/tests/assemblers/message.c +++ b/src/tests/assemblers/message.c @@ -50,8 +50,13 @@ main(void) char buf[513]; signed long ret; for (unsigned long i = 0; i < sizeof(str) / sizeof(*str); i++) { - if ((ret = uirc_assembler_message(buf, &m[i], sizeof(buf) / sizeof(char))) <= 0) { - printf("Failed to convert IRC_User struct to a string. %li\n", ret); + if ((ret = uirc_assembler_message(buf, &m[i], sizeof(buf) / sizeof(char))) < 0) { + printf("Failed to convert IRC_Message struct to a string. %li\n", ret); + return EXIT_FAILURE; + } + size_t len = strlen(str[i]); + if ((size_t) ret != len) { + printf("String lenght doesn't match with amount of bytes printed. Expected %li but got %li\n", len, ret); return EXIT_FAILURE; } expect(buf, str[i]); diff --git a/src/tests/assemblers/tag.c b/src/tests/assemblers/tag.c index d9f87e1..9000705 100644 --- a/src/tests/assemblers/tag.c +++ b/src/tests/assemblers/tag.c @@ -39,7 +39,13 @@ main(void) printf("Failed to convert tag %lu to \"%s\". Error %li\n", i, str[i], ret); return EXIT_FAILURE; } + size_t len = strlen(str[i]); + if ((size_t) ret != len) { + printf("String lenght doesn't match with amount of bytes printed. Expected %li but got %li\n", len, ret); + return EXIT_FAILURE; + } expect(buf, str[i]); + print_irc_tag(&tag[i]); } return EXIT_SUCCESS; } diff --git a/src/tests/assemblers/user.c b/src/tests/assemblers/user.c index 7e11c9e..11896fd 100644 --- a/src/tests/assemblers/user.c +++ b/src/tests/assemblers/user.c @@ -37,6 +37,11 @@ main(void) printf("Failed to convert IRC_User struct to a string. %li\n", ret); return EXIT_FAILURE; } + size_t len = strlen(str[i]); + if ((size_t) ret != len) { + printf("String lenght doesn't match with amount of bytes printed. Expected %li but got %li\n", len, ret); + return EXIT_FAILURE; + } expect(buf, str[i]); print_irc_user(&u[i]); } diff --git a/src/tests/common.c b/src/tests/common.c index 7da349a..6d0c054 100644 --- a/src/tests/common.c +++ b/src/tests/common.c @@ -37,7 +37,7 @@ expect(const char* var, const char* exp) } void -print_irc_message(IRC_Message* ptr) +print_irc_message(const IRC_Message* ptr) { #ifdef UIRC_FEATURE_IRCV3 printf(DELIMITER); @@ -57,7 +57,7 @@ print_irc_message(IRC_Message* ptr) #ifdef UIRC_FEATURE_IRCV3 void -print_irc_tag(IRC_Tag* tag) +print_irc_tag(const IRC_Tag* tag) { printf(DELIMITER "tn: %s\n" "tv: %s\n" @@ -69,7 +69,7 @@ print_irc_tag(IRC_Tag* tag) #endif /* UIRC_FEATURE_IRCV3 */ void -print_irc_user(IRC_User* user) +print_irc_user(const IRC_User* user) { printf(DELIMITER "un: %s\n" "uu: %s\n" diff --git a/src/tests/common.h b/src/tests/common.h index d5350c7..107ee2e 100644 --- a/src/tests/common.h +++ b/src/tests/common.h @@ -30,11 +30,11 @@ void expect(const char* var, const char* exp); -void print_irc_message(IRC_Message* ptr); +void print_irc_message(const IRC_Message* ptr); #ifdef UIRC_FEATURE_IRCV3 -void print_irc_tag(IRC_Tag* tag); +void print_irc_tag(const IRC_Tag* tag); #endif /* UIRC_FEATURE_IRCV3 */ -void print_irc_user(IRC_User* user); +void print_irc_user(const IRC_User* user); #endif /* UIRC_GUARD_PRIVATE_COMMONTESTS */ diff --git a/src/tests/general/fullloop.c b/src/tests/general/fullloop.c index 53fd823..6ac4816 100644 --- a/src/tests/general/fullloop.c +++ b/src/tests/general/fullloop.c @@ -38,12 +38,17 @@ main(void) printf("Failed to convert string to IRC_Message struct.\n"); return EXIT_FAILURE; } - signed long ret; - char buf[513]; + ssize_t ret; + char buf[513]; if ((ret = uirc_assembler_message(buf, m, sizeof(buf) / sizeof(char))) <= 0) { printf("Failed to convert IRC_Message struct to a string. (%li)\n", ret); return EXIT_FAILURE; } + size_t s1 = strlen(str[i]), s2 = strlen(buf); + if (s1 != s2) { + printf("String lenght doesn't match after parsing and assembly. Expected %li but got %li\n", s1, s2); + return EXIT_FAILURE; + } expect(buf, str[i]); print_irc_message(m); }