/** * @file string_tests.c * * @remark Copyright 2002 OProfile authors * @remark Read the file COPYING * * @author John Levon * @author Philippe Elie */ #include "op_string.h" #include <stdlib.h> #include <stdio.h> #include <string.h> void error(char const * str) { fprintf(stderr, "%s\n", str); exit(EXIT_FAILURE); } int main() { if (!strisprefix("", "")) error("\"\" is not a prefix of \"\""); if (!strisprefix("a", "")) error("\"\" is not a prefix of a"); if (!strisprefix("a", "a")) error("a is not a prefix of a"); if (!strisprefix("aa", "a")) error("a is not a prefix of aa"); if (strisprefix("a", "b")) error("b is a prefix of a"); if (strcmp(skip_ws(""), "")) error("skip_ws of \"\" is not \"\""); if (strcmp(skip_ws("\na"), "a")) error("skip_ws of \\na is not a"); if (strcmp(skip_ws("\n\na"), "a")) error("skip_ws of \\n\\na is not a"); if (strcmp(skip_ws("\n a"), "a")) error("skip_ws of \\n a is not a"); if (strcmp(skip_ws("\n \ta"), "a")) error("skip_ws of \\n \\ta is not a"); if (strcmp(skip_ws("\n \t"), "")) error("skip_ws of \\n \\t is not \"\""); if (strcmp(skip_ws(" "), "")) error("skip_ws of \" \" is not \"\""); if (strcmp(skip_nonws(""), "")) error("skip_nonws of \"\" is not \"\""); if (strcmp(skip_nonws("a"), "")) error("skip_nonws of a is not \"\""); if (strcmp(skip_nonws("\n"), "\n")) error("skip_nonws of \\n is not \\n"); if (strcmp(skip_nonws(" "), " ")) error("skip_nonws of \" \" is not \" \""); if (strcmp(skip_nonws("\t"), "\t")) error("skip_nonws of \\t is not \\t"); if (strcmp(skip_nonws("a\n"), "\n")) error("skip_nonws of a\\n is not \\n"); if (strcmp(skip_nonws("ab"), "")) error("skip_nonws of ab is not \"\""); if (!empty_line("")) error("empty_line is false for \"\""); if (!empty_line("\n\t ")) error("empty_line is false for \"\\n\\n \""); if (!empty_line(" ")) error("empty_line is false for \" \""); if (empty_line("\r")) error("empty_line is true for \\r"); if (comment_line("")) error("comment_line is true for \"\""); if (comment_line("\n")) error("comment_line is true for \n"); if (!comment_line("#")) error("comment_line is false for #"); if (!comment_line(" #")) error("comment_line is false for \" #\""); /* this is what the spec says */ if (!comment_line("\n#")) error("comment_line is false for \\n#"); if (!comment_line("\t#")) error("comment_line is false for \\t#"); return EXIT_SUCCESS; }