add $(GN_LIBINTL) to Makefile.am (fixes 0005902)
[oweals/gnunet.git] / src / regex / perf-regex.c
index 02a75104b62e8a8de8c872f11a8eee4f3d803ef4..6155501f27a80f45aefb07d637965ea71c3f2f8b 100644 (file)
@@ -1,22 +1,22 @@
 /*
      This file is part of GNUnet.
-     Copyright (C) 2012 Christian Grothoff (and other contributing authors)
+     Copyright (C) 2012 GNUnet e.V.
 
-     GNUnet is free software; you can redistribute it and/or modify
-     it under the terms of the GNU General Public License as published
-     by the Free Software Foundation; either version 3, or (at your
-     option) any later version.
+     GNUnet is free software: you can redistribute it and/or modify it
+     under the terms of the GNU Affero General Public License as published
+     by the Free Software Foundation, either version 3 of the License,
+     or (at your option) any later version.
 
      GNUnet is distributed in the hope that it will be useful, but
      WITHOUT ANY WARRANTY; without even the implied warranty of
      MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-     General Public License for more details.
+     Affero General Public License for more details.
 
-     You should have received a copy of the GNU General Public License
-     along with GNUnet; see the file COPYING.  If not, write to the
-     Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
-     Boston, MA 02110-1301, USA.
-*/
+     You should have received a copy of the GNU Affero General Public License
+     along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+     SPDX-License-Identifier: AGPL3.0-or-later
+ */
 
 /**
  * @file src/regex/perf-regex.c
  */
 static void
 print_edge (void *cls,
-           const struct GNUNET_HashCode *key,
-           const char *proof,
-           int accepting,
-           unsigned int num_edges,
-           const struct REGEX_BLOCK_Edge *edges)
+            const struct GNUNET_HashCode *key,
+            const char *proof,
+            int accepting,
+            unsigned int num_edges,
+            const struct REGEX_BLOCK_Edge *edges)
 {
   unsigned int i;
 
   printf ("%s: %s, proof: `%s'\n",
-         GNUNET_h2s (key),
-         accepting ? "ACCEPTING" : "",
-         proof);
+          GNUNET_h2s (key),
+          accepting ? "ACCEPTING" : "",
+          proof);
   for (i = 0; i < num_edges; i++)
     printf ("    `%s': %s\n",
-           edges[i].label,
-           GNUNET_h2s (&edges[i].destination));
+            edges[i].label,
+            GNUNET_h2s (&edges[i].destination));
 }
 
 
@@ -75,39 +75,44 @@ print_edge (void *cls,
 int
 main (int argc, char *const *argv)
 {
-  struct REGEX_INTERNAL_Automaton* dfa;
+  struct REGEX_INTERNAL_Automaton*dfa;
   char **regexes;
   char *buffer;
   char *regex;
   int compression;
+  unsigned int alphabet_size;
   long size;
 
   GNUNET_log_setup ("perf-regex", "DEBUG", NULL);
-  if (3 != argc)
+  if (4 != argc)
   {
     fprintf (stderr,
-            "Usage: %s REGEX_FILE COMPRESSION\n",
-            argv[0]);
+             "Usage: %s REGEX_FILE ALPHABET_SIZE COMPRESSION\n",
+             argv[0]);
     return 1;
   }
   regexes = REGEX_TEST_read_from_file (argv[1]);
   if (NULL == regexes)
   {
     fprintf (stderr,
-            "Failed to read regexes from `%s'\n",
-            argv[1]);
+             "Failed to read regexes from `%s'\n",
+             argv[1]);
     return 2;
   }
-  compression = atoi (argv[2]);
-
-  buffer = REGEX_TEST_combine (regexes);
+  alphabet_size = atoi (argv[2]);
+  compression = atoi (argv[3]);
+  printf ("********* PERF-REGEX *********'\n");
+  printf ("Using:\n file '%s'\n Alphabet size %u\n compression %d\n",
+          argv[1], alphabet_size, compression);
+  fflush (stdout);
+  buffer = REGEX_TEST_combine (regexes, alphabet_size);
   GNUNET_asprintf (&regex, "GNUNET_REGEX_PROFILER_(%s)(0|1)*", buffer);
   size = strlen (regex);
 
   fprintf (stderr,
-          "Combined regex (%ld bytes):\n%s\n",
-          size,
-          regex);
+           "Combined regex (%ld bytes):\n%s\n",
+           size,
+           regex);
   dfa = REGEX_INTERNAL_construct_dfa (regex, size, compression);
   printf ("********* ALL EDGES *********'\n");
   REGEX_INTERNAL_iterate_all_edges (dfa, &print_edge, NULL);
@@ -120,4 +125,5 @@ main (int argc, char *const *argv)
   return 0;
 }
 
+
 /* end of prof-regex.c */