]> mj.ucw.cz Git - libucw.git/blobdiff - lib/regex-test.c
bungetc() is no longer passed the character to unget -- it always ungets
[libucw.git] / lib / regex-test.c
index abe684ada9d8b167f89cba95d70d926c5eeff9de..dc756905215037dae1fb7fc61cde2e6652db495a 100644 (file)
@@ -8,20 +8,37 @@
 
 #include <stdio.h>
 
-#define        TEST(txt, should)       printf(#txt ": %d (should %d)\n", rx_match(r, #txt), should)
+#define        PREPARE(patt, icase)    r = rx_compile(patt, icase); printf("\npattern: %s, icase=%d\n", patt, icase)
+#define        TEST(txt, should)       printf(txt ": %d (should %d)\n", rx_match(r, txt), should)
+
 int
 main(void)
 {
        regex *r;
-       r = rx_compile("a.*b.*c", 0);
-       TEST(abc, 1);
-       TEST(ajkhkbbbbbc, 1);
-       TEST(Aabc, 0);
+
+       PREPARE("a.*b.*c", 0);
+       TEST("abc", 1);
+       TEST("ajkhkbbbbbc", 1);
+       TEST("Aabc", 0);
+       rx_free(r);
+
+       PREPARE("a.*b.*c", 1);
+       TEST("aBc", 1);
+       TEST("ajkhkbBBBBC", 1);
+       TEST("Aabc", 1);
        rx_free(r);
-       r = rx_compile("a.*b.*c", 1);
-       TEST(aBc, 1);
-       TEST(ajkhkbBBBBC, 1);
-       TEST(Aabc, 1);
+
+       PREPARE("(ahoj|nebo)", 1);
+       TEST("Ahoj", 1);
+       TEST("nEBo", 1);
+       TEST("ahoja", 0);
+       TEST("(ahoj|nebo)", 0);
+       rx_free(r);
+
+       PREPARE("\\(ahoj\\)", 0);
+       TEST("(ahoj)", 1);
+       TEST("ahoj", 0);
        rx_free(r);
+
        return 0;
 }