Add wrbuf_sha1_write
[yaz-moved-to-github.git] / test / test_wrbuf.c
index 007258a..e7886c4 100644 (file)
@@ -1,5 +1,5 @@
 /* This file is part of the YAZ toolkit.
- * Copyright (C) 1995-2011 Index Data
+ * Copyright (C) Index Data
  * See the file LICENSE for details.
  */
 #if HAVE_CONFIG_H
@@ -8,6 +8,7 @@
 
 #include <stdlib.h>
 #include <stdio.h>
+#include <string.h>
 
 #include <yaz/wrbuf.h>
 #include <yaz/test.h>
@@ -41,7 +42,7 @@ static void tstwrbuf(void)
             buf[i] = '\0';
             wrbuf_puts(wr, buf);
         }
-        
+
         cp = wrbuf_buf(wr);
         len = wrbuf_len(wr);
         YAZ_CHECK(len == step * (step-1) / 2);
@@ -54,6 +55,36 @@ static void tstwrbuf(void)
             }
         wrbuf_rewind(wr);
     }
+
+    wrbuf_rewind(wr);
+    wrbuf_puts(wr, "1234");
+    wrbuf_insert(wr, 0, "abc", 3);
+    YAZ_CHECK(!strcmp(wrbuf_cstr(wr), "abc1234"));
+
+    wrbuf_rewind(wr);
+    wrbuf_puts(wr, "1234");
+    wrbuf_insert(wr, 1, "abc", 3);
+    YAZ_CHECK(!strcmp(wrbuf_cstr(wr), "1abc234"));
+
+    wrbuf_rewind(wr);
+    wrbuf_puts(wr, "1234");
+    wrbuf_insert(wr, 4, "abc", 3);
+    YAZ_CHECK(!strcmp(wrbuf_cstr(wr), "1234abc"));
+
+    wrbuf_rewind(wr);
+    wrbuf_puts(wr, "1234");
+    wrbuf_insert(wr, 5, "abc", 3);
+    YAZ_CHECK(!strcmp(wrbuf_cstr(wr), "1234"));
+
+#if HAVE_GCRYPT_H
+    {
+        const char *msg = "Hello world\n";
+        wrbuf_rewind(wr);
+        wrbuf_sha1_write(wr, msg, strlen(msg), 1);
+        YAZ_CHECK(!strcmp(wrbuf_cstr(wr), 
+                          "33ab5639bfd8e7b95eb1d8d0b87781d4ffea4d5d"));
+    }
+#endif
     wrbuf_destroy(wr);
 }