Beef up test a bit
[yaz-moved-to-github.git] / test / tst_record_conv.c
index 6683b84..42518b7 100644 (file)
@@ -1,9 +1,6 @@
-/*
- * Copyright (C) 2005-2007, Index Data ApS
+/* This file is part of the YAZ toolkit.
+ * Copyright (C) 1995-2008 Index Data
  * See the file LICENSE for details.
- *
- * $Id: tst_record_conv.c,v 1.14 2007-03-19 14:40:07 adam Exp $
- *
  */
 #include <yaz/record_conv.h>
 #include <yaz/test.h>
@@ -182,21 +179,13 @@ static int conv_convert_test(yaz_record_conv_t p,
             {
                 ret = 0;
             }
-            else if (strlen(output_expect_record) != wrbuf_len(output_record))
-            {
-                int expect_len = strlen(output_expect_record);
-                ret = 0;
-                printf("output_record expect-len=%d got-len=%d\n", expect_len,
-                       wrbuf_len(output_record));
-                printf("got-output_record = %s\n", wrbuf_cstr(output_record));
-                printf("output_expect_record = %s\n", output_expect_record);
-            }
-            else if (memcmp(output_expect_record, wrbuf_buf(output_record),
-                            strlen(output_expect_record)))
+            else if (strcmp(output_expect_record, wrbuf_cstr(output_record)))
             {
                 ret = 0;
-                printf("got-output_record = %s\n", wrbuf_cstr(output_record));
-                printf("output_expect_record = %s\n", output_expect_record);
+                printf("got-output_record len=%d: %s\n", 
+                       wrbuf_len(output_record),wrbuf_cstr(output_record));
+                printf("output_expect_record len=%d %s\n",
+                       strlen(output_expect_record), output_expect_record);
             }
             else
             {
@@ -208,6 +197,22 @@ static int conv_convert_test(yaz_record_conv_t p,
     return ret;
 }
 
+static int conv_convert_test_iter(yaz_record_conv_t p,
+                                  const char *input_record,
+                                  const char *output_expect_record,
+                                  int num_iter)
+{
+    int i;
+    int ret;
+    for (i = 0; i < num_iter; i++)
+    {
+        ret = conv_convert_test(p, input_record, output_expect_record);
+        if (!ret)
+            break;
+    }
+    return ret;
+}
+
 static void tst_convert1(void)
 {
     yaz_record_conv_t p = 0;
@@ -318,7 +323,7 @@ static void tst_convert2(void)
                                   "/>"
                                   "</backend>",
                                   0, &p));
-    YAZ_CHECK(conv_convert_test(p, marcxml_rec, iso2709_rec));
+    YAZ_CHECK(conv_convert_test_iter(p, marcxml_rec, iso2709_rec, 100));
     yaz_record_conv_destroy(p);
 }