chiark / gitweb /
Further lib/ testing.
authorRichard Kettlewell <rjk@greenend.org.uk>
Sat, 26 Apr 2008 18:22:39 +0000 (19:22 +0100)
committerRichard Kettlewell <rjk@greenend.org.uk>
Sat, 26 Apr 2008 18:22:39 +0000 (19:22 +0100)
lib/Makefile.am
lib/t-mime.c
lib/t-vector.c [new file with mode: 0644]
lib/test.c
lib/test.h

index ecd106f43272299e1f12ae03b80626eaad69220f..085659a976dd88200771bf1562f754a2b49fccbe 100644 (file)
@@ -119,7 +119,7 @@ test_SOURCES=test.c memgc.c test.h t-addr.c t-basen.c t-cache.c             \
        t-casefold.c t-cookies.c t-filepart.c t-hash.c t-heap.c         \
        t-hex.c t-kvp.c t-mime.c t-printf.c t-regsub.c t-selection.c    \
        t-signame.c t-sink.c t-split.c t-unicode.c t-url.c t-utf8.c     \
-       t-words.c t-wstat.c t-bits.c
+       t-words.c t-wstat.c t-bits.c t-vector.c
 test_LDADD=libdisorder.a $(LIBPCRE) $(LIBICONV) $(LIBGC)
 test_DEPENDENCIES=libdisorder.a
 
index eb5ee7ca2b609b340507609c8240cd5ba353e61a..5c3152a0c7d3ff6d421798afeab214e1055e9576 100644 (file)
@@ -220,7 +220,9 @@ void test_mime(void) {
               "Now's the time for all folk to come to the aid of their country.");
 
 #define check_base64(encoded, decoded) do {                     \
-    check_string(mime_base64(encoded, 0), decoded);             \
+    size_t ns;                                                  \
+    check_string(mime_base64(encoded, &ns), decoded);           \
+    insist(ns == (sizeof decoded) - 1);                         \
     check_string(mime_to_base64((const uint8_t *)decoded,       \
                                          (sizeof decoded) - 1), \
                  encoded);                                      \
diff --git a/lib/t-vector.c b/lib/t-vector.c
new file mode 100644 (file)
index 0000000..685f213
--- /dev/null
@@ -0,0 +1,66 @@
+/*
+ * This file is part of DisOrder.
+ * Copyright (C) 2008 Richard Kettlewell
+ *
+ * This program 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 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program 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.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
+ * USA
+ */
+#include "test.h"
+
+void test_vector(void) {
+  struct vector v[1];
+  static const char *s[10] = { "three", "four", "five", "six", "seven",
+                              "eight", "nine", "ten", "eleven", "twelve" };
+  int n;
+  
+  printf("test_vector\n");
+  vector_init(v);
+  insist(v->nvec == 0);
+
+  vector_append(v, (char *)"one");
+  insist(v->nvec == 1);
+  insist(!strcmp(v->vec[0], "one"));
+
+  vector_append(v, (char *)"two");
+  insist(v->nvec == 2);
+  insist(!strcmp(v->vec[0], "one"));
+  insist(!strcmp(v->vec[1], "two"));
+
+  vector_terminate(v);
+  insist(v->nvec == 2);
+  insist(!strcmp(v->vec[0], "one"));
+  insist(!strcmp(v->vec[1], "two"));
+  insist(v->vec[2] == 0);
+
+  vector_append_many(v, (char **)s, 10);
+  insist(v->nvec == 12);
+  insist(!strcmp(v->vec[0], "one"));
+  insist(!strcmp(v->vec[1], "two"));
+  for(n = 0; n < 10; ++n)
+    insist(!strcmp(v->vec[n+2], s[n]));
+  vector_terminate(v);
+  insist(v->nvec == 12);
+  insist(v->vec[12] == 0);
+}
+
+
+/*
+Local Variables:
+c-basic-offset:2
+comment-column:40
+fill-column:79
+indent-tabs-mode:nil
+End:
+*/
index 30af3a53d0684328bf3656fd21655c0d58ab30ca..407f77ee66ac46323b7589193a870491108ce89c 100644 (file)
@@ -159,6 +159,7 @@ int main(void) {
   test_url();
   test_regsub();
   test_bits();
+  test_vector();
   fprintf(stderr,  "%lld errors out of %lld tests\n", errors, tests);
   return !!errors;
 }
index 32eaa6f87a71e6eff58188e1d61f7979228c92a5..a32c8abf1615c8f5f11c3f67f5bcdbc64858e1bc 100644 (file)
@@ -154,6 +154,7 @@ void test_utf8(void);
 void test_words(void);
 void test_wstat(void);
 void test_bits(void);
+void test_vector(void);
 
 #endif /* TEST_H */