Created SILC Runtime Toolkit git repository Part II.
[runtime.git] / lib / silcutil / tests / test_silcbuffmt.c
index dba97fd02451170693536d49ada3dbe72424e154..6e856e974e743e1b7f102104d18d0b224e172002 100644 (file)
@@ -1,6 +1,6 @@
 /* Buffer formatting tests */
 
-#include "silc.h"
+#include "silcruntime.h"
 
 int print(SilcStack stack, SilcBuffer buf, void *value, void *context)
 {
@@ -14,7 +14,7 @@ int print(SilcStack stack, SilcBuffer buf, void *value, void *context)
 int main(int argc, char **argv)
 {
   SilcBool success = FALSE;
-  char string[1024];
+  char string[1024], *astring;
   SilcBufferStruct buf;
 
   if (argc > 1 && !strcmp(argv[1], "-d")) {
@@ -38,6 +38,40 @@ int main(int argc, char **argv)
   if (strcmp("This is barbar", silc_buffer_data(&buf)))
     goto err;
 
+  silc_snprintf(string, sizeof(string), "This is foobar string!!");
+  astring = silc_memdup(string, strlen(string));
+  silc_buffer_set(&buf, astring, strlen(astring) + 1);
+  SILC_LOG_DEBUG(("sed 's/foo/barbar/g'"));
+  SILC_LOG_DEBUG(("string: %s", astring));
+  if (silc_buffer_format(&buf,
+                        SILC_STR_REGEX("foo", SILC_STR_REGEX_ALL |
+                                              SILC_STR_REGEX_INCLUSIVE),
+                          SILC_STR_REPLACE("barbar", 6),
+                        SILC_STR_END,
+                        SILC_STR_END) < 0)
+    goto err;
+  silc_buffer_printf(&buf, TRUE);
+  if (strcmp("This is barbarbar string!!", silc_buffer_data(&buf)))
+    goto err;
+  silc_buffer_purge(&buf);
+
+  silc_snprintf(string, sizeof(string), "This is foobar string foo!!");
+  astring = silc_memdup(string, strlen(string));
+  silc_buffer_set(&buf, astring, strlen(astring) + 1);
+  SILC_LOG_DEBUG(("sed 's/foo//g'"));
+  SILC_LOG_DEBUG(("string: %s", astring));
+  if (silc_buffer_format(&buf,
+                        SILC_STR_REGEX("foo", SILC_STR_REGEX_ALL |
+                                              SILC_STR_REGEX_INCLUSIVE),
+                          SILC_STR_REPLACE("", 0),
+                        SILC_STR_END,
+                        SILC_STR_END) < 0)
+    goto err;
+  silc_buffer_printf(&buf, TRUE);
+  if (strcmp("This is bar string !!", silc_buffer_data(&buf)))
+    goto err;
+  silc_buffer_purge(&buf);
+
   silc_snprintf(string, sizeof(string), "This is foobar\n");
   silc_buffer_set(&buf, string, strlen(string));
   SILC_LOG_DEBUG(("sed 's/\\n/\\0/'"));
@@ -119,5 +153,5 @@ int main(int argc, char **argv)
   SILC_LOG_DEBUG(("Testing was %s", success ? "SUCCESS" : "FAILURE"));
   fprintf(stderr, "Testing was %s\n", success ? "SUCCESS" : "FAILURE");
 
-  return success;
+  return !success;
 }