Edit

kc3-lang/gnulib/tests/unistdio/test-ulc-vsprintf1.c

Branch :

  • Show log

    Commit

  • Author : Bruno Haible
    Date : 2007-07-02 01:34:46
    Hash : 2625ca90
    Message : Formatted output functions for Unicode strings.

  • tests/unistdio/test-ulc-vsprintf1.c
  • /* Test of ulc_vsprintf() function.
       Copyright (C) 2007 Free Software Foundation, Inc.
    
       This program is free software; you can redistribute it and/or modify
       it under the terms of the GNU General Public License as published by
       the Free Software Foundation; either version 2, or (at your option)
       any later version.
    
       This program is distributed in the hope that it will be useful,
       but WITHOUT ANY WARRANTY; without even the implied warranty of
       MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
       GNU General Public License for more details.
    
       You should have received a copy of the GNU General Public License
       along with this program; if not, write to the Free Software Foundation,
       Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
    
    /* Written by Bruno Haible <bruno@clisp.org>, 2007.  */
    
    #include <config.h>
    
    #include "unistdio.h"
    
    #include <stdarg.h>
    #include <stddef.h>
    #include <stdio.h>
    #include <stdint.h>
    #include <stdlib.h>
    #include <string.h>
    
    #include "xalloc.h"
    
    #define SIZEOF(array) (sizeof (array) / sizeof (array[0]))
    #define ASSERT(expr) \
      do									     \
        {									     \
          if (!(expr))							     \
            {								     \
              fprintf (stderr, "%s:%d: assertion failed\n", __FILE__, __LINE__); \
              abort ();							     \
            }								     \
        }									     \
      while (0)
    
    #include "test-ulc-printf1.h"
    
    static char *
    my_xasprintf (const char *format, ...)
    {
      va_list args;
      char result[1000];
      int retval;
    
      va_start (args, format);
      retval = ulc_vsprintf (result, format, args);
      va_end (args);
      if (retval < 0 || retval >= (int) sizeof (result))
        return NULL;
      return xstrdup (result);
    }
    
    static void
    test_vsprintf ()
    {
      test_xfunction (my_xasprintf);
    }
    
    int
    main (int argc, char *argv[])
    {
      test_vsprintf ();
      return 0;
    }