diff --git a/tests/strtokmr.c b/tests/strtokmr.c new file mode 100644 index 0000000..7d395ba --- /dev/null +++ b/tests/strtokmr.c @@ -0,0 +1,41 @@ +#include "../src/misc.h" +#include +#include +#include + +int main(void) +{ + char* pointer = NULL; + if (strtok_mr(&pointer, "!") != NULL) + return EXIT_FAILURE; + if (pointer != NULL) + return EXIT_FAILURE; + + char test2[] = "hello"; + pointer = test2; + if (strtok_mr(&pointer, "!") == NULL) + return EXIT_FAILURE; + if (*pointer != '\0') + return EXIT_FAILURE; + + char test3[] = "hi!# hello!"; + pointer = test3; + if (strtok_mr(&pointer, "!#") == NULL) + return EXIT_FAILURE; + if (pointer != test3+3) /* MUST point at # right after ! */ + return EXIT_FAILURE; + if (test3[2] != '\0') /* MUST replace ! with \0 */ + return EXIT_FAILURE; + if (strtok_mr(&pointer, "!#") == NULL) + return EXIT_FAILURE; + if (pointer != test3+4) /* MUST point at whitespace right after # */ + return EXIT_FAILURE; + if (test3[3] != '\0') /* MUST replace # with \0 */ + return EXIT_FAILURE; + if (strtok_mr(&pointer, "!#") == NULL) + return EXIT_FAILURE; + if (strtok_mr(&pointer, "!#") != NULL) + return EXIT_FAILURE; + + return EXIT_SUCCESS; +}