summaryrefslogtreecommitdiff
path: root/src/regex/test_regex_proofs.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/regex/test_regex_proofs.c')
-rw-r--r--src/regex/test_regex_proofs.c89
1 files changed, 45 insertions, 44 deletions
diff --git a/src/regex/test_regex_proofs.c b/src/regex/test_regex_proofs.c
index 3649ac8aa..8908084b0 100644
--- a/src/regex/test_regex_proofs.c
+++ b/src/regex/test_regex_proofs.c
@@ -40,32 +40,32 @@
40 * @return 0 on success, 1 on failure 40 * @return 0 on success, 1 on failure
41 */ 41 */
42static unsigned int 42static unsigned int
43test_proof(const char *regex) 43test_proof (const char *regex)
44{ 44{
45 unsigned int error; 45 unsigned int error;
46 struct REGEX_INTERNAL_Automaton *dfa; 46 struct REGEX_INTERNAL_Automaton *dfa;
47 char *c_rx1; 47 char *c_rx1;
48 const char *c_rx2; 48 const char *c_rx2;
49 49
50 dfa = REGEX_INTERNAL_construct_dfa(regex, strlen(regex), 1); 50 dfa = REGEX_INTERNAL_construct_dfa (regex, strlen (regex), 1);
51 GNUNET_assert(NULL != dfa); 51 GNUNET_assert (NULL != dfa);
52 c_rx1 = GNUNET_strdup(REGEX_INTERNAL_get_canonical_regex(dfa)); 52 c_rx1 = GNUNET_strdup (REGEX_INTERNAL_get_canonical_regex (dfa));
53 REGEX_INTERNAL_automaton_destroy(dfa); 53 REGEX_INTERNAL_automaton_destroy (dfa);
54 dfa = REGEX_INTERNAL_construct_dfa(c_rx1, strlen(c_rx1), 1); 54 dfa = REGEX_INTERNAL_construct_dfa (c_rx1, strlen (c_rx1), 1);
55 GNUNET_assert(NULL != dfa); 55 GNUNET_assert (NULL != dfa);
56 c_rx2 = REGEX_INTERNAL_get_canonical_regex(dfa); 56 c_rx2 = REGEX_INTERNAL_get_canonical_regex (dfa);
57 57
58 error = (0 == strcmp(c_rx1, c_rx2)) ? 0 : 1; 58 error = (0 == strcmp (c_rx1, c_rx2)) ? 0 : 1;
59 59
60 if (error > 0) 60 if (error > 0)
61 { 61 {
62 GNUNET_log(GNUNET_ERROR_TYPE_ERROR, 62 GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
63 "Comparing canonical regex of\n%s\nfailed:\n%s\nvs.\n%s\n", 63 "Comparing canonical regex of\n%s\nfailed:\n%s\nvs.\n%s\n",
64 regex, c_rx1, c_rx2); 64 regex, c_rx1, c_rx2);
65 } 65 }
66 66
67 GNUNET_free(c_rx1); 67 GNUNET_free (c_rx1);
68 REGEX_INTERNAL_automaton_destroy(dfa); 68 REGEX_INTERNAL_automaton_destroy (dfa);
69 69
70 return error; 70 return error;
71} 71}
@@ -81,7 +81,7 @@ test_proof(const char *regex)
81 * @return 0 on succes, number of failures otherwise. 81 * @return 0 on succes, number of failures otherwise.
82 */ 82 */
83static unsigned int 83static unsigned int
84test_proofs_random(unsigned int count, size_t rx_length) 84test_proofs_random (unsigned int count, size_t rx_length)
85{ 85{
86 unsigned int i; 86 unsigned int i;
87 char *rand_rx; 87 char *rand_rx;
@@ -90,11 +90,11 @@ test_proofs_random(unsigned int count, size_t rx_length)
90 failures = 0; 90 failures = 0;
91 91
92 for (i = 0; i < count; i++) 92 for (i = 0; i < count; i++)
93 { 93 {
94 rand_rx = REGEX_TEST_generate_random_regex(rx_length, NULL); 94 rand_rx = REGEX_TEST_generate_random_regex (rx_length, NULL);
95 failures += test_proof(rand_rx); 95 failures += test_proof (rand_rx);
96 GNUNET_free(rand_rx); 96 GNUNET_free (rand_rx);
97 } 97 }
98 98
99 return failures; 99 return failures;
100} 100}
@@ -106,7 +106,7 @@ test_proofs_random(unsigned int count, size_t rx_length)
106 * @return 0 on success, number of failures otherwise. 106 * @return 0 on success, number of failures otherwise.
107 */ 107 */
108static unsigned int 108static unsigned int
109test_proofs_static() 109test_proofs_static ()
110{ 110{
111 unsigned int i; 111 unsigned int i;
112 unsigned int error; 112 unsigned int error;
@@ -130,43 +130,44 @@ test_proofs_static()
130 error = 0; 130 error = 0;
131 131
132 for (i = 0; i < 8; i += 2) 132 for (i = 0; i < 8; i += 2)
133 { 133 {
134 dfa1 = REGEX_INTERNAL_construct_dfa(regex[i], strlen(regex[i]), 1); 134 dfa1 = REGEX_INTERNAL_construct_dfa (regex[i], strlen (regex[i]), 1);
135 dfa2 = REGEX_INTERNAL_construct_dfa(regex[i + 1], strlen(regex[i + 1]), 1); 135 dfa2 = REGEX_INTERNAL_construct_dfa (regex[i + 1], strlen (regex[i + 1]),
136 GNUNET_assert(NULL != dfa1); 136 1);
137 GNUNET_assert(NULL != dfa2); 137 GNUNET_assert (NULL != dfa1);
138 138 GNUNET_assert (NULL != dfa2);
139 canon_rx1 = REGEX_INTERNAL_get_canonical_regex(dfa1);
140 canon_rx2 = REGEX_INTERNAL_get_canonical_regex(dfa2);
141 139
142 error += (0 == strcmp(canon_rx1, canon_rx2)) ? 0 : 1; 140 canon_rx1 = REGEX_INTERNAL_get_canonical_regex (dfa1);
141 canon_rx2 = REGEX_INTERNAL_get_canonical_regex (dfa2);
143 142
144 if (error > 0) 143 error += (0 == strcmp (canon_rx1, canon_rx2)) ? 0 : 1;
145 {
146 GNUNET_log(GNUNET_ERROR_TYPE_ERROR,
147 "Comparing canonical regex failed:\nrx1:\t%s\ncrx1:\t%s\nrx2:\t%s\ncrx2:\t%s\n",
148 regex[i], canon_rx1, regex[i + 1], canon_rx2);
149 }
150 144
151 REGEX_INTERNAL_automaton_destroy(dfa1); 145 if (error > 0)
152 REGEX_INTERNAL_automaton_destroy(dfa2); 146 {
147 GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
148 "Comparing canonical regex failed:\nrx1:\t%s\ncrx1:\t%s\nrx2:\t%s\ncrx2:\t%s\n",
149 regex[i], canon_rx1, regex[i + 1], canon_rx2);
153 } 150 }
154 151
152 REGEX_INTERNAL_automaton_destroy (dfa1);
153 REGEX_INTERNAL_automaton_destroy (dfa2);
154 }
155
155 return error; 156 return error;
156} 157}
157 158
158 159
159int 160int
160main(int argc, char *argv[]) 161main (int argc, char *argv[])
161{ 162{
162 GNUNET_log_setup("test-regex", "WARNING", NULL); 163 GNUNET_log_setup ("test-regex", "WARNING", NULL);
163 164
164 int error; 165 int error;
165 166
166 error = 0; 167 error = 0;
167 168
168 error += test_proofs_static(); 169 error += test_proofs_static ();
169 error += test_proofs_random(100, 30); 170 error += test_proofs_random (100, 30);
170 171
171 return error; 172 return error;
172} 173}