You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@apr.apache.org by br...@apache.org on 2003/01/23 22:00:38 UTC

cvs commit: apr-util/test testxlate.c

brane       2003/01/23 13:00:38

  Modified:    test     testxlate.c
  Log:
  Make testxlate.c mode modular and add latin1<->latin2 identity test.
  
  Revision  Changes    Path
  1.2       +37 -55    apr-util/test/testxlate.c
  
  Index: testxlate.c
  ===================================================================
  RCS file: /home/cvs/apr-util/test/testxlate.c,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- testxlate.c	12 Jan 2003 22:48:26 -0000	1.1
  +++ testxlate.c	23 Jan 2003 21:00:38 -0000	1.2
  @@ -56,30 +56,27 @@
   #include <stdlib.h>
   
   #include "apr.h"
  -#include "apr_general.h"
   #include "apr_errno.h"
  +#include "apr_general.h"
  +#include "apr_strings.h"
   #include "apr_xlate.h"
   
  -
   static const char test_utf8[] = "Edelwei\xc3\x9f";
   static const char test_utf7[] = "Edelwei+AN8-";
   static const char test_latin1[] = "Edelwei\xdf";
  +static const char test_latin2[] = "Edelwei\xdf";
   
   
   static int check_status (apr_status_t status, const char *msg)
   {
  -    if (!status)
  -    {
  -        printf("PASS: %s\n", msg);
  -        return 0;
  -    }
  -    else
  +    if (status)
       {
           static char buf[1024];
  -        printf("FAIL: %s\n      %s\n", msg,
  +        printf("ERROR: %s\n      %s\n", msg,
                  apr_strerror(status, buf, sizeof(buf)));
           return 1;
       }
  +    return 0;
   }
   
   static int test_conversion (apr_xlate_t *convset,
  @@ -99,23 +96,34 @@
       if ((!status || APR_STATUS_IS_INCOMPLETE(status))
           && strcmp(buf, expected))
       {
  -        printf("FAIL: expected: '%s'\n      actual:   '%s'"
  -               "\n      inbytes_left: %"APR_SIZE_T_FMT"\n",
  +        printf("ERROR: expected: '%s'\n       actual:   '%s'"
  +               "\n       inbytes_left: %"APR_SIZE_T_FMT"\n",
                  expected, buf, inbytes_left);
           retcode |= 1;
       }
  -    else
  +    return retcode;
  +}
  +
  +static int one_test (const char *cs1, const char *cs2,
  +                     const char *str1, const char *str2,
  +                     apr_pool_t *pool)
  +{
  +    apr_xlate_t *convset;
  +    const char *msg = apr_psprintf(pool, "apr_xlate_open(%s, %s)", cs2, cs1);
  +    int retcode = check_status(apr_xlate_open(&convset, cs2, cs1, pool), msg);
  +    if (!retcode)
       {
  -        printf("PASS: Expected and actual output match\n");
  +        retcode |= test_conversion(convset, str1, str2);
  +        retcode |= check_status(apr_xlate_close(convset), "apr_xlate_close");
       }
  +    printf("%s:  %s -> %s\n", (retcode ? "FAIL" : "PASS"), cs1, cs2);
       return retcode;
   }
   
  +
   int main (int argc, char **argv)
   {
       apr_pool_t *pool;
  -    apr_xlate_t *convset;
  -    apr_status_t status;
       int retcode = 0;
   
   #ifndef APR_HAS_XLATE
  @@ -128,47 +136,21 @@
       apr_pool_create(&pool, NULL);
   
       /* 1. Identity transformation: UTF-8 -> UTF-8 */
  -    puts("START: identity transformation");
  -    status = apr_xlate_open(&convset, "UTF-8", "UTF-8", pool);
  -    retcode |= check_status(status, "apr_xlate_open(UTF-8, UTF-8)");
  -    if (!status)
  -    {
  -        retcode |= test_conversion(convset, test_utf8, test_utf8);
  -        retcode |= check_status(apr_xlate_close(convset), "apr_xlate_close");
  -    }
  -    puts("END: identity transformation");
  -
  -    /* 2. UTF-8 -> ISO-8859-1 */
  -    puts("START: UTF-8 -> ISO-8859-1");
  -    status = apr_xlate_open(&convset, "ISO-8859-1", "UTF-8", pool);
  -    retcode |= check_status(status, "apr_xlate_open(ISO-8859-1, UTF-8)");
  -    if (!status)
  -    {
  -        retcode |= test_conversion(convset, test_utf8, test_latin1);
  -        retcode |= check_status(apr_xlate_close(convset), "apr_xlate_close");
  -    }
  -    puts("END: UTF-8 -> ISO-8859-1");
  +    retcode |= one_test("UTF-8", "UTF-8", test_utf8, test_utf8, pool);
   
  -    /* 3. Transformation using charset aliases */
  -    puts("START: UTF-8 -> UTF-7 (alias)");
  -    status = apr_xlate_open(&convset, "UTF-7", "UTF-8", pool);
  -    retcode |= check_status(status, "apr_xlate_open(UTF-7, UTF-8)");
  -    if (!status)
  -    {
  -        retcode |= test_conversion(convset, test_utf8, test_utf7);
  -        retcode |= check_status(apr_xlate_close(convset), "apr_xlate_close");
  -    }
  -    puts("END: UTF-8 -> UTF-7 (alias)");
  -
  -    puts("START: UTF-7 (alias) -> UTF-8");
  -    status = apr_xlate_open(&convset, "UTF-8", "UTF-7", pool);
  -    retcode |= check_status(status, "apr_xlate_open(UTF-8, UTF-7)");
  -    if (!status)
  -    {
  -        retcode |= test_conversion(convset, test_utf7, test_utf8);
  -        retcode |= check_status(apr_xlate_close(convset), "apr_xlate_close");
  -    }
  -    puts("END: UTF-7 (alias) -> UTF-8");
  +    /* 2. UTF-8 <-> ISO-8859-1 */
  +    retcode |= one_test("UTF-8", "ISO-8859-1", test_utf8, test_latin1, pool);
  +    retcode |= one_test("ISO-8859-1", "UTF-8", test_latin1, test_utf8, pool);
  +
  +    /* 3. ISO-8859-1 <-> ISO-8859-2, identity */
  +    retcode |= one_test("ISO-8859-1", "ISO-8859-2",
  +                        test_latin1, test_latin2, pool);
  +    retcode |= one_test("ISO-8859-2", "ISO-8859-1",
  +                        test_latin2, test_latin1, pool);
  +
  +    /* 4. Transformation using charset aliases */
  +    retcode |= one_test("UTF-8", "UTF-7", test_utf8, test_utf7, pool);
  +    retcode |= one_test("UTF-7", "UTF-8", test_utf7, test_utf8, pool);
   
       return retcode;
   }