1294109Sbapt/* $Id: test-vasprintf.c,v 1.3 2015/10/06 18:32:20 schwarze Exp $ */ 2294109Sbapt/* 3294109Sbapt * Copyright (c) 2015 Ingo Schwarze <schwarze@openbsd.org> 4294109Sbapt * 5294109Sbapt * Permission to use, copy, modify, and distribute this software for any 6294109Sbapt * purpose with or without fee is hereby granted, provided that the above 7294109Sbapt * copyright notice and this permission notice appear in all copies. 8294109Sbapt * 9294109Sbapt * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 10294109Sbapt * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 11294109Sbapt * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 12294109Sbapt * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 13294109Sbapt * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 14294109Sbapt * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 15294109Sbapt * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 16294109Sbapt */ 17294109Sbapt 18294109Sbapt#if defined(__linux__) || defined(__MINT__) 19294109Sbapt#define _GNU_SOURCE /* vasprintf() */ 20294109Sbapt#endif 21294109Sbapt 22294109Sbapt#include <stdarg.h> 23294109Sbapt#include <stdio.h> 24294109Sbapt#include <string.h> 25294109Sbapt 26294109Sbaptint 27294109Sbapttestfunc(char **ret, const char *format, ...) 28294109Sbapt{ 29294109Sbapt va_list ap; 30294109Sbapt int irc; 31294109Sbapt 32294109Sbapt va_start(ap, format); 33294109Sbapt irc = vasprintf(ret, format, ap); 34294109Sbapt va_end(ap); 35294109Sbapt 36294109Sbapt return irc; 37294109Sbapt} 38294109Sbapt 39294109Sbaptint 40294109Sbaptmain(void) 41294109Sbapt{ 42294109Sbapt char *ret; 43294109Sbapt 44294109Sbapt if (testfunc(&ret, "%s.", "Text") != 5) 45294109Sbapt return 1; 46294109Sbapt if (strcmp(ret, "Text.")) 47294109Sbapt return 2; 48294109Sbapt return 0; 49294109Sbapt} 50