Added a test utility marcos TL_ASSERT, TL_ASSERT2
[idzebra-moved-to-github.git] / test / api / testlib.c
index e5a7745..36323da 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: testlib.c,v 1.25 2005-08-09 12:30:47 adam Exp $
+/* $Id: testlib.c,v 1.29 2005-12-15 13:28:32 adam Exp $
    Copyright (C) 1995-2005
    Index Data ApS
 
@@ -89,12 +89,12 @@ const char *get_srcdir()
 {
     const char *srcdir = getenv("srcdir");
     if (!srcdir || ! *srcdir)
-        srcdir=".";
+        srcdir = ".";
     return srcdir;
 
 }
 /** start_service - do a zebra_start with a decent config name */
-ZebraService start_service(char *cfgname)
+ZebraService start_service(const char *cfgname)
 {
     char cfg[256];
     const char *srcdir = get_srcdir();
@@ -103,13 +103,8 @@ ZebraService start_service(char *cfgname)
         cfgname="zebra.cfg";
 
     sprintf(cfg, "%.200s/%.50s", srcdir, cfgname);
-    zs=zebra_start(cfg);
-    if (!zs)
-    {
-        printf("zebra_start failed, probably because missing config file \n"
-               "check %s\n", cfg);
-        exit(9);
-    }
+    zs = zebra_start(cfg);
+    TL_ASSERT2(zs, "zebra_start_failed. Missing config file?");
     return zs;
 }
 
@@ -141,13 +136,15 @@ void init_data(ZebraHandle zh, const char **recs)
     zebra_select_database(zh, "Default");
     yaz_log(log_level, "going to call init");
     i = zebra_init(zh);
-    yaz_log(log_level, "init returned %d", i);
+    yaz_log(log_level, "init_data returned %d", i);
     if (i) 
     {
-        printf("init failed with %d\n",i);
+       yaz_log(log_level, "init_data: zebra_init failed with %d", i);
+        printf("init_data failed with %d\n", i);
         zebra_result(zh, &i, &addinfo);
+        yaz_log(log_level, "Error %d  %s", i, addinfo);
         printf("  Error %d   %s\n", i, addinfo);
-        exit(1);
+       TL_ASSERT(i == 0);
     }
     if (recs)
     {
@@ -177,38 +174,44 @@ int do_query_x(int lineno, ZebraHandle zh, const char *query, zint exphits,
     parser = yaz_pqf_create();
     rpn = yaz_pqf_parse(parser, odr, query);
     yaz_pqf_destroy(parser);
-    if (!rpn) {
-        printf("Error: Parse failed \n%s\n", query);
-        exit(1);
-    }
+    TL_ASSERT2(rpn, "Parse of pqf failed");
     rc = zebra_search_RPN(zh, odr, rpn, setname, &hits);
     if (experror)
     {
        int code;
        if (rc != ZEBRA_FAIL)
        {
+           yaz_log(log_level, "search returned %d (OK), but error was "
+                   "expected", rc);
            printf("Error: search returned %d (OK), but error was expected\n"
                   "%s\n",  rc, query);
-           exit(1);
+           TL_ASSERT(rc == ZEBRA_FAIL);
        }
        code = zebra_errCode(zh);
        if (code != experror)
        {
+           yaz_log(log_level, "search returned error code %d, but error %d "
+                   "was expected", code, experror);
            printf("Error: search returned error code %d, but error %d was "
                   "expected\n%s\n",
                   code, experror, query);
-           exit(1);
+           TL_ASSERT(code == experror);
        }
     }
     else
     {
        if (rc == ZEBRA_FAIL) {
            int code = zebra_errCode(zh);
+           yaz_log(log_level, "search returned %d. Code %d", rc, code);
+           
            printf("Error: search returned %d. Code %d\n%s\n", rc, 
                   code, query);
            exit (1);
        }
-       if (exphits != -1 && hits != exphits) {
+       if (exphits != -1 && hits != exphits)
+       {
+           yaz_log(log_level, "search returned " ZINT_FORMAT 
+                  " hits instead of " ZINT_FORMAT, hits, exphits);
            printf("Error: search returned " ZINT_FORMAT 
                   " hits instead of " ZINT_FORMAT "\n%s\n",
                   hits, exphits, query);