OSSP CVS Repository

ossp - Check-in [4203]
Not logged in
[Honeypot]  [Browse]  [Home]  [Login]  [Reports
[Search]  [Ticket]  [Timeline
  [Patchset]  [Tagging/Branching

Check-in Number: 4203
Date: 2001-Jul-18 13:29:46 (local)
2001-Jul-18 11:29:46 (UTC)
User:simons
Branch:
Comment: Added test suites for the encoding of int32 and uint32 values in XDR.
Tickets:
Inspections:
Files:
ossp-pkg/xds/regression-tests/Makefile      1.10 -> 1.11     2 inserted, 1 deleted
ossp-pkg/xds/regression-tests/xdr-int32.c      added-> 1.1
ossp-pkg/xds/regression-tests/xdr-uint32.c      added-> 1.1

ossp-pkg/xds/regression-tests/Makefile 1.10 -> 1.11

--- Makefile     2001/07/16 18:38:53     1.10
+++ Makefile     2001/07/18 11:29:46     1.11
@@ -9,7 +9,8 @@
 LDFLAGS         = -L..
 
 TESTS           = xds-core.exe xds-find-engine.exe xds-register.exe xds-encode.exe \
-                  xds-getbuffer.exe xds-decode.exe xds-setbuffer.exe
+                  xds-getbuffer.exe xds-decode.exe xds-setbuffer.exe \
+                  xdr-uint32.exe xdr-int32.exe
 
 .SUFFIXES:
 .SUFFIXES:      .c .exe


ossp-pkg/xds/regression-tests/xdr-int32.c -> 1.1

*** /dev/null    Sat Nov 23 05:07:11 2024
--- -    Sat Nov 23 05:07:26 2024
***************
*** 0 ****
--- 1,108 ----
+ /*
+    XDS - OSSP Extensible Data Serialization Library
+    Copyright (c) 2001 The OSSP Project (http://www.ossp.org/)
+    Copyright (c) 2001 Cable & Wireless Deutschland (http://www.cw.com/de/)
+ 
+    This file is part of OSSP XDS, an extensible data serialization
+    library which can be found at http://www.ossp.com/pkg/xds/.
+ 
+    Permission to use, copy, modify, and distribute this software for
+    any purpose with or without fee is hereby granted, provided that
+    the above copyright notice and this permission notice appear in all
+    copies.
+ 
+    THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
+    WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+    MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+    IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR
+    CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+    SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+    LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
+    USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+    ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+    OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+    OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+    SUCH DAMAGE.
+ */
+ 
+ #include <stdio.h>
+ #include <string.h>
+ #include <rpc/types.h>
+ #include <rpc/xdr.h>
+ #include "../internal.h"
+ 
+ int main()
+     {
+     XDR    xdrs;
+     char   xdr_buf[1024];
+     size_t xdr_buf_size;
+ 
+     xds_t* xds;
+     char*  xds_buf;
+     size_t xds_buf_size;
+ 
+     int32_t values[] =
+        {
+         0x00000000,
+         0x12345678,
+        -0x12345678,
+         0xabcdef01,
+        -0xabcdef01,
+         0x7fffffff
+        };
+ 
+     size_t i;
+ 
+     /* Encode the values array using the RPC-XDR implementation. */
+ 
+     xdrmem_create(&xdrs, xdr_buf, sizeof(xdr_buf), XDR_ENCODE);
+     for (i = 0; i < sizeof(values)/sizeof(int32_t); ++i)
+        xdr_int32_t(&xdrs, &values[i]);
+     xdr_buf_size = xdr_getpos(&xdrs);
+     xdr_destroy(&xdrs);
+ 
+     /* Encode the values array using the XDS implementation. */
+ 
+     xds = xds_init(XDS_ENCODE);
+     if (xds == NULL)
+        {
+        printf("Failed to initialize XDS context.\n");
+        return 1;
+        }
+     if (xds_register(xds, "int", &xdr_encode_int32, NULL) != XDS_OK)
+        {
+        printf("Failed to register my encoding engines.\n");
+        return 1;
+        }
+     for (i = 0; i < sizeof(values)/sizeof(int32_t); ++i)
+        {
+        if (xds_encode(xds, "int", values[i]) != XDS_OK)
+            {
+            printf("xds_encode(values[%d]) failed!", i);
+            return 1;
+            }
+        }
+     if (xds_getbuffer(xds, XDS_GIFT, (void**)&xds_buf, &xds_buf_size) != XDS_OK)
+        {
+        printf("getbuffer() failed.\n");
+        return 1;
+        }
+     xds_destroy(xds);
+ 
+     /* Both buffers must be equal now. */
+ 
+     if (xdr_buf_size != xds_buf_size)
+        {
+        printf("The buffer sizes don't match: %d != %d.\n", xdr_buf_size, xds_buf_size);
+        return 1;
+        }
+     if (memcmp(xds_buf, xdr_buf, xds_buf_size) != 0)
+        {
+        printf("The buffers' contents is not identical!\n");
+        return 1;
+        }
+ 
+     /* Everything went fine. */
+ 
+     return 0;
+     }


ossp-pkg/xds/regression-tests/xdr-uint32.c -> 1.1

*** /dev/null    Sat Nov 23 05:07:11 2024
--- -    Sat Nov 23 05:07:26 2024
***************
*** 0 ****
--- 1,107 ----
+ /*
+    XDS - OSSP Extensible Data Serialization Library
+    Copyright (c) 2001 The OSSP Project (http://www.ossp.org/)
+    Copyright (c) 2001 Cable & Wireless Deutschland (http://www.cw.com/de/)
+ 
+    This file is part of OSSP XDS, an extensible data serialization
+    library which can be found at http://www.ossp.com/pkg/xds/.
+ 
+    Permission to use, copy, modify, and distribute this software for
+    any purpose with or without fee is hereby granted, provided that
+    the above copyright notice and this permission notice appear in all
+    copies.
+ 
+    THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
+    WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+    MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+    IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR
+    CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+    SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+    LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
+    USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+    ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+    OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+    OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+    SUCH DAMAGE.
+ */
+ 
+ #include <stdio.h>
+ #include <string.h>
+ #include <rpc/types.h>
+ #include <rpc/xdr.h>
+ #include "../internal.h"
+ 
+ int main()
+     {
+     XDR    xdrs;
+     char   xdr_buf[1024];
+     size_t xdr_buf_size;
+ 
+     xds_t* xds;
+     char*  xds_buf;
+     size_t xds_buf_size;
+ 
+     u_int32_t values[] =
+        {
+        0x00000000,
+        0x12345678,
+        0xabcdef01,
+        0xc500b3ef,
+        0xffffffff
+        };
+ 
+     size_t i;
+ 
+     /* Encode the values array using the RPC-XDR implementation. */
+ 
+     xdrmem_create(&xdrs, xdr_buf, sizeof(xdr_buf), XDR_ENCODE);
+     for (i = 0; i < sizeof(values)/sizeof(u_int32_t); ++i)
+        xdr_uint32_t(&xdrs, &values[i]);
+     xdr_buf_size = xdr_getpos(&xdrs);
+     xdr_destroy(&xdrs);
+ 
+     /* Encode the values array using the XDS implementation. */
+ 
+     xds = xds_init(XDS_ENCODE);
+     if (xds == NULL)
+        {
+        printf("Failed to initialize XDS context.\n");
+        return 1;
+        }
+     if (xds_register(xds, "uint", &xdr_encode_uint32, NULL) != XDS_OK)
+        {
+        printf("Failed to register my encoding engines.\n");
+        return 1;
+        }
+     for (i = 0; i < sizeof(values)/sizeof(uint32_t); ++i)
+        {
+        if (xds_encode(xds, "uint", values[i]) != XDS_OK)
+            {
+            printf("xds_encode(values[%d]) failed!", i);
+            return 1;
+            }
+        }
+     if (xds_getbuffer(xds, XDS_GIFT, (void**)&xds_buf, &xds_buf_size) != XDS_OK)
+        {
+        printf("getbuffer() failed.\n");
+        return 1;
+        }
+     xds_destroy(xds);
+ 
+     /* Both buffers must be equal now. */
+ 
+     if (xdr_buf_size != xds_buf_size)
+        {
+        printf("The buffer sizes don't match: %d != %d.\n", xdr_buf_size, xds_buf_size);
+        return 1;
+        }
+     if (memcmp(xds_buf, xdr_buf, xds_buf_size) != 0)
+        {
+        printf("The buffers' contents is not identical!\n");
+        return 1;
+        }
+ 
+     /* Everything went fine. */
+ 
+     return 0;
+     }

CVSTrac 2.0.1