1
1
/* Test of vasnprintf() and asnprintf() functions.
2
Copyright (C) 2007-2008 Free Software Foundation, Inc.
2
Copyright (C) 2007-2010 Free Software Foundation, Inc.
4
4
This program is free software: you can redistribute it and/or modify
5
5
it under the terms of the GNU General Public License as published by
21
21
#include "vasnprintf.h"
23
23
#include <stdarg.h>
25
24
#include <stdlib.h>
26
25
#include <string.h>
28
#define ASSERT(expr) \
33
fprintf (stderr, "%s:%d: assertion failed\n", __FILE__, __LINE__); \
30
test_function (char * (*my_asnprintf) (char *, size_t *, const char *, ...))
35
for (size = 0; size <= 8; size++)
38
char *result = my_asnprintf (NULL, &length, "%d", 12345);
39
ASSERT (result != NULL);
40
ASSERT (strcmp (result, "12345") == 0);
45
for (size = 0; size <= 8; size++)
50
memcpy (buf, "DEADBEEF", 8);
52
result = my_asnprintf (buf, &length, "%d", 12345);
53
ASSERT (result != NULL);
54
ASSERT (strcmp (result, "12345") == 0);
57
ASSERT (result != buf);
58
ASSERT (memcmp (buf + size, "DEADBEEF" + size, 8 - size) == 0);
41
65
my_asnprintf (char *resultbuf, size_t *lengthp, const char *format, ...)
58
for (size = 0; size <= 8; size++)
61
char *result = my_asnprintf (NULL, &length, "%d", 12345);
62
ASSERT (result != NULL);
63
ASSERT (strcmp (result, "12345") == 0);
68
for (size = 0; size <= 8; size++)
73
memcpy (buf, "DEADBEEF", 8);
75
result = my_asnprintf (buf, &length, "%d", 12345);
76
ASSERT (result != NULL);
77
ASSERT (strcmp (result, "12345") == 0);
80
ASSERT (result != buf);
81
ASSERT (memcmp (buf + size, "DEADBEEF" + size, 8 - size) == 0);
79
test_function (my_asnprintf);
93
for (size = 0; size <= 8; size++)
96
char *result = asnprintf (NULL, &length, "%d", 12345);
97
ASSERT (result != NULL);
98
ASSERT (strcmp (result, "12345") == 0);
103
for (size = 0; size <= 8; size++)
108
memcpy (buf, "DEADBEEF", 8);
110
result = asnprintf (buf, &length, "%d", 12345);
111
ASSERT (result != NULL);
112
ASSERT (strcmp (result, "12345") == 0);
113
ASSERT (length == 5);
115
ASSERT (result != buf);
116
ASSERT (memcmp (buf + size, "DEADBEEF" + size, 8 - size) == 0);
85
test_function (asnprintf);