[glib/wip/pcre-update: 3/20] regex: Simplify regex compile tests
- From: Christian Persch <chpe src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [glib/wip/pcre-update: 3/20] regex: Simplify regex compile tests
- Date: Thu, 7 Jun 2012 23:12:48 +0000 (UTC)
commit 00eb7f1399e05d57071b10c98936d70e086bdf01
Author: Christian Persch <chpe gnome org>
Date: Thu Jun 7 18:22:44 2012 +0200
regex: Simplify regex compile tests
Use a macro instead of repeating the same code over and over again.
glib/tests/regex.c | 106 +++++++++++++++-------------------------------------
1 files changed, 30 insertions(+), 76 deletions(-)
---
diff --git a/glib/tests/regex.c b/glib/tests/regex.c
index bc7e528..36bfb8f 100644
--- a/glib/tests/regex.c
+++ b/glib/tests/regex.c
@@ -1386,84 +1386,38 @@ test_basic (void)
static void
test_compile (void)
{
- GRegex *regex;
- GError *error;
-
- error = NULL;
- regex = g_regex_new ("a\\", 0, 0, &error);
- g_assert (regex == NULL);
- g_assert_error (error, G_REGEX_ERROR, G_REGEX_ERROR_STRAY_BACKSLASH);
- g_clear_error (&error);
- regex = g_regex_new ("a\\c", 0, 0, &error);
- g_assert (regex == NULL);
- g_assert_error (error, G_REGEX_ERROR, G_REGEX_ERROR_MISSING_CONTROL_CHAR);
- g_clear_error (&error);
- regex = g_regex_new ("a\\l", 0, 0, &error);
- g_assert (regex == NULL);
- g_assert_error (error, G_REGEX_ERROR, G_REGEX_ERROR_UNRECOGNIZED_ESCAPE);
- g_clear_error (&error);
- regex = g_regex_new ("a{4,2}", 0, 0, &error);
- g_assert (regex == NULL);
- g_assert_error (error, G_REGEX_ERROR, G_REGEX_ERROR_QUANTIFIERS_OUT_OF_ORDER);
- g_clear_error (&error);
- regex = g_regex_new ("a{999999,}", 0, 0, &error);
- g_assert (regex == NULL);
- g_assert_error (error, G_REGEX_ERROR, G_REGEX_ERROR_QUANTIFIER_TOO_BIG);
- g_clear_error (&error);
- regex = g_regex_new ("[a-z", 0, 0, &error);
- g_assert (regex == NULL);
- g_assert_error (error, G_REGEX_ERROR, G_REGEX_ERROR_UNTERMINATED_CHARACTER_CLASS);
- g_clear_error (&error);
+#define TEST_COMPILE_ERROR(pat,code) \
+ {\
+ GRegex *regex; \
+ GError *error = NULL; \
+ regex = g_regex_new (pat, 0, 0, &error); \
+ g_assert_error (error, G_REGEX_ERROR, code); \
+ g_assert (regex == NULL); \
+ g_error_free (error); \
+ }
+
+ TEST_COMPILE_ERROR ("a\\", G_REGEX_ERROR_STRAY_BACKSLASH);
+ TEST_COMPILE_ERROR ("a\\c", G_REGEX_ERROR_MISSING_CONTROL_CHAR);
+ TEST_COMPILE_ERROR ("a\\l", G_REGEX_ERROR_UNRECOGNIZED_ESCAPE);
+ TEST_COMPILE_ERROR ("a{4,2}", G_REGEX_ERROR_QUANTIFIERS_OUT_OF_ORDER);
+ TEST_COMPILE_ERROR ("a{999999,}", G_REGEX_ERROR_QUANTIFIER_TOO_BIG);
+ TEST_COMPILE_ERROR ("[a-z", G_REGEX_ERROR_UNTERMINATED_CHARACTER_CLASS);
#if 0
- regex = g_regex_new ("[\\b]", 0, 0, &error);
- g_assert (regex == NULL);
- g_assert_error (error, G_REGEX_ERROR, G_REGEX_ERROR_INVALID_ESCAPE_IN_CHARACTER_CLASS);
- g_clear_error (&error);
+ TEST_COMPILE_ERROR ("[\\b]", G_REGEX_ERROR_INVALID_ESCAPE_IN_CHARACTER_CLASS);
#endif
- regex = g_regex_new ("[z-a]", 0, 0, &error);
- g_assert (regex == NULL);
- g_assert_error (error, G_REGEX_ERROR, G_REGEX_ERROR_RANGE_OUT_OF_ORDER);
- g_clear_error (&error);
- regex = g_regex_new ("{2,4}", 0, 0, &error);
- g_assert (regex == NULL);
- g_assert_error (error, G_REGEX_ERROR, G_REGEX_ERROR_NOTHING_TO_REPEAT);
- g_clear_error (&error);
- regex = g_regex_new ("a(?u)", 0, 0, &error);
- g_assert (regex == NULL);
- g_assert_error (error, G_REGEX_ERROR, G_REGEX_ERROR_UNRECOGNIZED_CHARACTER);
- g_clear_error (&error);
- regex = g_regex_new ("a(?<$foo)bar", 0, 0, &error);
- g_assert (regex == NULL);
- g_assert_error (error, G_REGEX_ERROR, G_REGEX_ERROR_UNRECOGNIZED_CHARACTER);
- g_clear_error (&error);
- regex = g_regex_new ("a[:alpha:]b", 0, 0, &error);
- g_assert (regex == NULL);
- g_assert_error (error, G_REGEX_ERROR, G_REGEX_ERROR_POSIX_NAMED_CLASS_OUTSIDE_CLASS);
- g_clear_error (&error);
- regex = g_regex_new ("a(b", 0, 0, &error);
- g_assert (regex == NULL);
- g_assert_error (error, G_REGEX_ERROR, G_REGEX_ERROR_UNMATCHED_PARENTHESIS);
- g_clear_error (&error);
- regex = g_regex_new ("a)b", 0, 0, &error);
- g_assert (regex == NULL);
- g_assert_error (error, G_REGEX_ERROR, G_REGEX_ERROR_UNMATCHED_PARENTHESIS);
- g_clear_error (&error);
- regex = g_regex_new ("a(?R", 0, 0, &error);
- g_assert (regex == NULL);
- g_assert_error (error, G_REGEX_ERROR, G_REGEX_ERROR_UNMATCHED_PARENTHESIS);
- g_clear_error (&error);
- regex = g_regex_new ("a(?-54", 0, 0, &error);
- g_assert (regex == NULL);
- g_assert_error (error, G_REGEX_ERROR, G_REGEX_ERROR_UNMATCHED_PARENTHESIS);
- g_clear_error (&error);
- regex = g_regex_new ("a(?#abc", 0, 0, &error);
- g_assert (regex == NULL);
- g_assert_error (error, G_REGEX_ERROR, G_REGEX_ERROR_UNTERMINATED_COMMENT);
- g_clear_error (&error);
- regex = g_regex_new ("a[[:fubar:]]b", 0, 0, &error);
- g_assert (regex == NULL);
- g_assert_error (error, G_REGEX_ERROR, G_REGEX_ERROR_UNKNOWN_POSIX_CLASS_NAME);
- g_clear_error (&error);
+ TEST_COMPILE_ERROR ("[z-a]", G_REGEX_ERROR_RANGE_OUT_OF_ORDER);
+ TEST_COMPILE_ERROR ("{2,4}", G_REGEX_ERROR_NOTHING_TO_REPEAT);
+ TEST_COMPILE_ERROR ("a(?u)", G_REGEX_ERROR_UNRECOGNIZED_CHARACTER);
+ TEST_COMPILE_ERROR ("a(?<$foo)bar", G_REGEX_ERROR_UNRECOGNIZED_CHARACTER);
+ TEST_COMPILE_ERROR ("a[:alpha:]b", G_REGEX_ERROR_POSIX_NAMED_CLASS_OUTSIDE_CLASS);
+ TEST_COMPILE_ERROR ("a(b", G_REGEX_ERROR_UNMATCHED_PARENTHESIS);
+ TEST_COMPILE_ERROR ("a)b", G_REGEX_ERROR_UNMATCHED_PARENTHESIS);
+ TEST_COMPILE_ERROR ("a(?R", G_REGEX_ERROR_UNMATCHED_PARENTHESIS);
+ TEST_COMPILE_ERROR ("a(?-54", G_REGEX_ERROR_UNMATCHED_PARENTHESIS);
+ TEST_COMPILE_ERROR ("a(?#abc", G_REGEX_ERROR_UNTERMINATED_COMMENT);
+ TEST_COMPILE_ERROR ("a[[:fubar:]]b", G_REGEX_ERROR_UNKNOWN_POSIX_CLASS_NAME);
+
+#undef TEST_COMPILE_ERROR
}
static void
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]