moving int declaration to top of function to avoid upsetting old compilers
[yaz-moved-to-github.git] / test / tstodr.c
index a0180a6..1106c90 100644 (file)
@@ -2,14 +2,17 @@
  * Copyright (C) 1995-2005, Index Data ApS
  * See the file LICENSE for details.
  *
- * $Id: tstodr.c,v 1.4 2005-02-01 17:23:36 adam Exp $
+ * $Id: tstodr.c,v 1.7 2005-08-22 20:34:23 adam Exp $
  *
  */
 #include <stdlib.h>
 #include <stdio.h>
 #include <yaz/odr.h>
+#include <yaz/oid.h>
 #include "tstodrcodec.h"
 
+#define MYOID  "1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19"
+
 void tst_MySequence1(ODR encode, ODR decode)
 {
     char *ber_buf;
@@ -19,12 +22,14 @@ void tst_MySequence1(ODR encode, ODR decode)
 
     s->first = odr_intdup(encode, 12345);
     s->second = odr_malloc(encode, sizeof(*s->second));
-    s->second->buf = "hello";
+    s->second->buf = (unsigned char *) "hello";
     s->second->len = 5;
     s->second->size = 0;
     s->third = odr_intdup(encode, 1);
     s->fourth = odr_nullval();
     s->fifth = odr_intdup(encode, YC_MySequence_enum1);
+    
+    s->myoid = odr_getoidbystr(decode, MYOID);
 
     if (!yc_MySequence(encode, &s, 0, 0))
         exit(1);
@@ -47,6 +52,17 @@ void tst_MySequence1(ODR encode, ODR decode)
         exit(7);
     if (!t->fifth || *t->fifth != YC_MySequence_enum1)
         exit(8);
+    if (!t->myoid)
+        exit(9);
+    else
+    {
+        int *myoid = odr_getoidbystr(decode, MYOID);
+        struct oident *oident;
+
+        if (oid_oidcmp(myoid, t->myoid))
+            exit(10);
+        oident = oid_getentbyoid(t->myoid);
+    }
 }
 
 void tst_MySequence2(ODR encode, ODR decode)
@@ -55,12 +71,13 @@ void tst_MySequence2(ODR encode, ODR decode)
 
     s->first = 0;  /* deliberately miss this .. */
     s->second = odr_malloc(encode, sizeof(*s->second));
-    s->second->buf = "hello";
+    s->second->buf = (unsigned char *) "hello";
     s->second->len = 5;
     s->second->size = 0;
     s->third = odr_intdup(encode, 1);
     s->fourth = odr_nullval();
     s->fifth = odr_intdup(encode, YC_MySequence_enum1);
+    s->myoid = odr_getoidbystr(encode, MYOID);
 
     if (yc_MySequence(encode, &s, 0, 0)) /* should fail */
         exit(9);
@@ -111,3 +128,11 @@ int main(int argc, char **argv)
     odr_destroy(odr_decode);
     exit(0);
 }
+/*
+ * Local variables:
+ * c-basic-offset: 4
+ * indent-tabs-mode: nil
+ * End:
+ * vim: shiftwidth=4 tabstop=8 expandtab
+ */
+