OSSP CVS Repository

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

Check-in Number: 4173
Date: 2001-Jul-08 18:02:56 (local)
2001-Jul-08 16:02:56 (UTC)
User:simons
Branch:
Comment: Added preliminary version of the xds-encode test case.
Tickets:
Inspections:
Files:
ossp-pkg/xds/regression-tests/Makefile      1.5 -> 1.6     1 inserted, 1 deleted
ossp-pkg/xds/regression-tests/xds-encode.c      added-> 1.1

ossp-pkg/xds/regression-tests/Makefile 1.5 -> 1.6

--- Makefile     2001/07/08 15:22:00     1.5
+++ Makefile     2001/07/08 16:02:56     1.6
@@ -8,7 +8,7 @@
 CFLAGS          =
 LDFLAGS         = -L..
 
-TESTS           = xds-core.exe xds-find-engine.exe xds-register.exe xds-callback-semantics.exe
+TESTS           = xds-core.exe xds-find-engine.exe xds-register.exe xds-encode.exe
 
 .SUFFIXES:
 .SUFFIXES:      .c .exe


ossp-pkg/xds/regression-tests/xds-encode.c -> 1.1

*** /dev/null    Sat May 11 22:45:32 2024
--- -    Sat May 11 22:51:30 2024
***************
*** 0 ****
--- 1,134 ----
+ /*
+    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 <unistd.h>
+ #include <assert.h>
+ #include "../internal.h"
+ 
+ static int dummy_engine(xds_t* xds, void* engine_context, void* buffer, size_t buffer_size, va_list args)
+     {
+     if (xds == NULL)
+        {
+        printf("XDS context isn't passed through to registered engine.\n");
+        exit(1);
+        }
+     if (engine_context != (void*)42)
+        {
+        printf("Engine context isn't passed through to registered engine.\n");
+        exit(1);
+        }
+     if (buffer == NULL)
+        {
+        printf("Buffer passed to engine is NULL.\n");
+        exit(1);
+        }
+     if (buffer_size == 0)
+        {
+        printf("Buffer size passed to engine is NULL.\n");
+        exit(1);
+        }
+     return 0;
+     }
+ 
+ int main()
+     {
+     xds_t* xds;
+     size_t i;
+ 
+     /* Create contexts for encoding and decoding. */
+ 
+     xds = xds_init(XDS_ENCODE);
+     if (xds == NULL)
+            {
+            printf("Failed to initialize XDS context.\n");
+            return 1;
+            }
+ 
+     /* Register the dummy callback under multiple names. */
+ 
+     if (xds_register(xds, "foo", &dummy_engine, (void*)42) != XDS_OK)
+        {
+        printf("Failed to register engine for 'foo'.\n");
+        return 1;
+        }
+     if (xds_register(xds, "bar", &dummy_engine, (void*)42) != XDS_OK)
+        {
+        printf("Failed to register engine for 'bar'.\n");
+        return 1;
+        }
+     if (xds_register(xds, "zarah", &dummy_engine, (void*)42) != XDS_OK)
+        {
+        printf("Failed to register engine for 'zarah'.\n");
+        return 1;
+        }
+     if (xds_register(xds, "caesar", &dummy_engine, (void*)42) != XDS_OK)
+        {
+        printf("Failed to register engine for 'caesar'.\n");
+        return 1;
+        }
+     if (xds_register(xds, "claus", &dummy_engine, (void*)42) != XDS_OK)
+        {
+        printf("Failed to register engine for 'claus'.\n");
+        return 1;
+        }
+     if (xds_register(xds, "heinz", &dummy_engine, (void*)42) != XDS_OK)
+        {
+        printf("Failed to register engine for 'heinz'.\n");
+        return 1;
+        }
+ 
+     /* Register the callback again, overwriting an existing entry. */
+ 
+     if (xds_register(xds, "claus", &dummy_engine, (void*)42) != XDS_OK)
+        {
+        printf("Failed to re-register engine for 'claus'.\n");
+        return 1;
+        }
+ 
+     /* Ensure that everything is in alphabetical order. */
+ 
+     for (i = 1; i < xds->engines_len; ++i)
+        {
+        assert(xds->engines[i-1].name != NULL);
+        assert(xds->engines[i].name != NULL);
+        if (strcmp(xds->engines[i-1].name, xds->engines[i].name) >= 0)
+            {
+            printf("xds->engines is not in alphabetical order!\n");
+            exit(1);
+            }
+        }
+ 
+     /* Clean up. */
+ 
+     xds_destroy(xds);
+ 
+     /* Everything went fine. */
+ 
+     return 0;
+     }

CVSTrac 2.0.1