X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=src%2Fregex%2Ftest_regex_graph_api.c;h=cc4370c851f6562d1f18f2da2a3c76b0cf6e1728;hb=2b306e4a9ac8b0f4968a9cc2336fbc346de845e4;hp=ea1c7fb78d7eaf7a3088a7ebfc9122685824dd54;hpb=efaee22e6bc145305a6f8104c68914cfa07b1ac3;p=oweals%2Fgnunet.git diff --git a/src/regex/test_regex_graph_api.c b/src/regex/test_regex_graph_api.c index ea1c7fb78..cc4370c85 100644 --- a/src/regex/test_regex_graph_api.c +++ b/src/regex/test_regex_graph_api.c @@ -25,9 +25,11 @@ #include #include #include "platform.h" -#include "gnunet_regex_lib.h" +#include "regex_internal_lib.h" +#include "regex_test_lib.h" +#include "regex_internal.h" -#define KEEP_FILES 0 +#define KEEP_FILES 1 /** * Check if 'filename' exists and is not empty. @@ -36,57 +38,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); - return ++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) { if (0 != unlink (filename)) - { - GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Could not remove temp files (%s)\n", - filename); - } + GNUNET_log_strerror_file (GNUNET_ERROR_TYPE_ERROR, "unlink", filename); } - - return error; } + int main (int argc, char *argv[]) { - GNUNET_log_setup ("test-regex", "WARNING", NULL); - int error; - struct GNUNET_REGEX_Automaton *a; + struct REGEX_INTERNAL_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", @@ -96,67 +88,68 @@ 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 - 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); + /* Check NFA graph creation */ + a = REGEX_INTERNAL_construct_nfa (regex[i], strlen (regex[i])); + REGEX_TEST_automaton_save_graph (a, filename, REGEX_TEST_GRAPH_DEFAULT); + REGEX_INTERNAL_automaton_destroy (a); error += filecheck (filename); - a = GNUNET_REGEX_construct_nfa (regex[i], strlen (regex[i])); - GNUNET_REGEX_automaton_save_graph (a, filename, - GNUNET_REGEX_GRAPH_DEFAULT | - GNUNET_REGEX_GRAPH_VERBOSE); - GNUNET_REGEX_automaton_destroy (a); + a = REGEX_INTERNAL_construct_nfa (regex[i], strlen (regex[i])); + REGEX_TEST_automaton_save_graph (a, filename, + REGEX_TEST_GRAPH_DEFAULT | + REGEX_TEST_GRAPH_VERBOSE); + REGEX_INTERNAL_automaton_destroy (a); error += filecheck (filename); - a = GNUNET_REGEX_construct_nfa (regex[i], strlen (regex[i])); - GNUNET_REGEX_automaton_save_graph (a, filename, - GNUNET_REGEX_GRAPH_DEFAULT | - GNUNET_REGEX_GRAPH_COLORING); - GNUNET_REGEX_automaton_destroy (a); + a = REGEX_INTERNAL_construct_nfa (regex[i], strlen (regex[i])); + REGEX_TEST_automaton_save_graph (a, filename, + REGEX_TEST_GRAPH_DEFAULT | + REGEX_TEST_GRAPH_COLORING); + REGEX_INTERNAL_automaton_destroy (a); error += filecheck (filename); - a = GNUNET_REGEX_construct_nfa (regex[i], strlen (regex[i])); - GNUNET_REGEX_automaton_save_graph (a, filename, - GNUNET_REGEX_GRAPH_DEFAULT | - GNUNET_REGEX_GRAPH_VERBOSE | - GNUNET_REGEX_GRAPH_COLORING); - GNUNET_REGEX_automaton_destroy (a); + a = REGEX_INTERNAL_construct_nfa (regex[i], strlen (regex[i])); + REGEX_TEST_automaton_save_graph (a, filename, + REGEX_TEST_GRAPH_DEFAULT | + REGEX_TEST_GRAPH_VERBOSE | + REGEX_TEST_GRAPH_COLORING); + REGEX_INTERNAL_automaton_destroy (a); error += filecheck (filename); - // Check DFA graph creation - a = GNUNET_REGEX_construct_dfa (regex[i], strlen (regex[i])); - GNUNET_REGEX_automaton_save_graph (a, filename, GNUNET_REGEX_GRAPH_DEFAULT); - GNUNET_REGEX_automaton_destroy (a); + /* Check DFA graph creation */ + a = REGEX_INTERNAL_construct_dfa (regex[i], strlen (regex[i]), 0); + REGEX_TEST_automaton_save_graph (a, filename, REGEX_TEST_GRAPH_DEFAULT); + REGEX_INTERNAL_automaton_destroy (a); 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_automaton_destroy (a); + a = REGEX_INTERNAL_construct_dfa (regex[i], strlen (regex[i]), 0); + REGEX_TEST_automaton_save_graph (a, filename, + REGEX_TEST_GRAPH_DEFAULT | + REGEX_TEST_GRAPH_VERBOSE); + REGEX_INTERNAL_automaton_destroy (a); 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_COLORING); - GNUNET_REGEX_automaton_destroy (a); + a = REGEX_INTERNAL_construct_dfa (regex[i], strlen (regex[i]), 0); + REGEX_TEST_automaton_save_graph (a, filename, + REGEX_TEST_GRAPH_DEFAULT | + REGEX_TEST_GRAPH_COLORING); + REGEX_INTERNAL_automaton_destroy (a); 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); - GNUNET_REGEX_automaton_destroy (a); + a = REGEX_INTERNAL_construct_dfa (regex[i], strlen (regex[i]), 4); + REGEX_TEST_automaton_save_graph (a, filename, REGEX_TEST_GRAPH_DEFAULT); + REGEX_INTERNAL_automaton_destroy (a); error += filecheck (filename); }