summaryrefslogtreecommitdiff
path: root/testsuite/bug-regex16.c
diff options
context:
space:
mode:
Diffstat (limited to 'testsuite/bug-regex16.c')
-rw-r--r--testsuite/bug-regex16.c39
1 files changed, 39 insertions, 0 deletions
diff --git a/testsuite/bug-regex16.c b/testsuite/bug-regex16.c
new file mode 100644
index 0000000..7a1d3c8
--- /dev/null
+++ b/testsuite/bug-regex16.c
@@ -0,0 +1,39 @@
+/* Test re_compile_pattern error messages. */
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include <stdio.h>
+#include <string.h>
+#include <regex.h>
+
+int
+main (void)
+{
+ struct re_pattern_buffer re;
+ const char *s;
+ int ret = 0;
+
+ re_set_syntax (RE_SYNTAX_POSIX_EGREP);
+ memset (&re, 0, sizeof (re));
+ s = re_compile_pattern ("[[.invalid_collating_symbol.]]", 30, &re);
+ if (s == NULL || strcmp (s, "Invalid collation character"))
+ {
+ printf ("re_compile_pattern returned %s\n", s);
+ ret = 1;
+ }
+ s = re_compile_pattern ("[[=invalid_equivalence_class=]]", 31, &re);
+ if (s == NULL || strcmp (s, "Invalid collation character"))
+ {
+ printf ("re_compile_pattern returned %s\n", s);
+ ret = 1;
+ }
+ s = re_compile_pattern ("[[:invalid_character_class:]]", 29, &re);
+ if (s == NULL || strcmp (s, "Invalid character class name"))
+ {
+ printf ("re_compile_pattern returned %s\n", s);
+ ret = 1;
+ }
+ return ret;
+}