X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=src%2Fregex%2Ftest_regex_graph_api.c;h=3ae607352ab8909a53ffc04b1a0b9d9d60d62140;hb=5db8393ac0292d55042f8a01f72541b3c9104387;hp=9e8e1fb165134adff648640ce62f607e75bbc271;hpb=7f718edba992449e5877156ce27ad78745489890;p=oweals%2Fgnunet.git diff --git a/src/regex/test_regex_graph_api.c b/src/regex/test_regex_graph_api.c index 9e8e1fb16..3ae607352 100644 --- a/src/regex/test_regex_graph_api.c +++ b/src/regex/test_regex_graph_api.c @@ -26,8 +26,9 @@ #include #include "platform.h" #include "gnunet_regex_lib.h" +#include "regex_internal.h" -#define KEEP_FILES 0 +#define KEEP_FILES 1 /** * Check if 'filename' exists and is not empty. @@ -36,56 +37,47 @@ * * @return 0 if ok, non 0 on error. */ -int +static int filecheck (const char *filename) { int error = 0; - FILE *fp = NULL; - - // Check if file was created and delete it again - fp = fopen (filename, "r"); + FILE *fp; - if (NULL == fp) + /* Check if file was created and delete it again */ + if (NULL == (fp = fopen (filename, "r"))) { GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Could not find graph %s\n", filename); - error++; + return 1; } - fseek (fp, 0L, SEEK_END); + GNUNET_break (0 == fseek (fp, 0L, SEEK_END)); if (1 > ftell (fp)) { GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Graph writing failed, got empty file (%s)!\n", filename); - error++; + error = 2; } - error += fclose (fp); + GNUNET_assert (0 == fclose (fp)); if (!KEEP_FILES) - unlink (filename); - + { + if (0 != unlink (filename)) + GNUNET_log_strerror_file (GNUNET_ERROR_TYPE_ERROR, "unlink", filename); + } return error; } + int main (int argc, char *argv[]) { - GNUNET_log_setup ("test-regex", -#if VERBOSE - "DEBUG", -#else - "WARNING", -#endif - NULL); - int error; struct GNUNET_REGEX_Automaton *a; unsigned int i; const char *filename = "test_graph.dot"; - error = 0; - - const char *regex[10] = { + const char *regex[12] = { "ab(c|d)+c*(a(b|c)+d)+(bla)+", "(bla)*", "b(lab)*la", @@ -95,12 +87,16 @@ main (int argc, char *argv[]) "1*0(0|1)*", "a*b*", "a+X*y+c|p|R|Z*K*y*R+w|Y*6+n+h*k*w+V*F|W*B*e*", - "a" + "a", + "a|b", + "PADPADPADPADPADPabcdefghixxxxxxxxxxxxxjklmnop*qstoisdjfguisdfguihsdfgbdsuivggsd" }; - for (i = 0; i < 10; i++) + GNUNET_log_setup ("test-regex", "WARNING", NULL); + error = 0; + for (i = 0; i < 12; i++) { - // Check NFA graph creation + /* Check NFA graph creation */ a = GNUNET_REGEX_construct_nfa (regex[i], strlen (regex[i])); GNUNET_REGEX_automaton_save_graph (a, filename, GNUNET_REGEX_GRAPH_DEFAULT); GNUNET_REGEX_automaton_destroy (a); @@ -129,20 +125,20 @@ main (int argc, char *argv[]) error += filecheck (filename); - // Check DFA graph creation - a = GNUNET_REGEX_construct_dfa (regex[i], strlen (regex[i])); + /* Check DFA graph creation */ + a = GNUNET_REGEX_construct_dfa (regex[i], strlen (regex[i]), 0); GNUNET_REGEX_automaton_save_graph (a, filename, GNUNET_REGEX_GRAPH_DEFAULT); GNUNET_REGEX_automaton_destroy (a); error += filecheck (filename); - a = GNUNET_REGEX_construct_dfa (regex[i], strlen (regex[i])); + a = GNUNET_REGEX_construct_dfa (regex[i], strlen (regex[i]), 0); GNUNET_REGEX_automaton_save_graph (a, filename, GNUNET_REGEX_GRAPH_DEFAULT | GNUNET_REGEX_GRAPH_VERBOSE); GNUNET_REGEX_automaton_destroy (a); error += filecheck (filename); - a = GNUNET_REGEX_construct_dfa (regex[i], strlen (regex[i])); + a = GNUNET_REGEX_construct_dfa (regex[i], strlen (regex[i]), 0); GNUNET_REGEX_automaton_save_graph (a, filename, GNUNET_REGEX_GRAPH_DEFAULT | GNUNET_REGEX_GRAPH_COLORING); @@ -150,11 +146,8 @@ main (int argc, char *argv[]) error += filecheck (filename); - a = GNUNET_REGEX_construct_dfa (regex[i], strlen (regex[i])); - GNUNET_REGEX_automaton_save_graph (a, filename, - GNUNET_REGEX_GRAPH_DEFAULT | - GNUNET_REGEX_GRAPH_VERBOSE | - GNUNET_REGEX_GRAPH_COLORING); + a = GNUNET_REGEX_construct_dfa (regex[i], strlen (regex[i]), 4); + GNUNET_REGEX_automaton_save_graph (a, filename, GNUNET_REGEX_GRAPH_DEFAULT); GNUNET_REGEX_automaton_destroy (a); error += filecheck (filename);