Mercurial > hg > octave-lojdl > gnulib-hg
comparison tests/test-snprintf.c @ 8327:ce1d4fb435ff
Tests for module 'snprintf'.
author | Bruno Haible <bruno@clisp.org> |
---|---|
date | Sun, 04 Mar 2007 18:03:19 +0000 |
parents | |
children | 1f57552cdb11 |
comparison
equal
deleted
inserted
replaced
8326:f5958c21416d | 8327:ce1d4fb435ff |
---|---|
1 /* Test of snprintf() function. | |
2 Copyright (C) 2007 Free Software Foundation, Inc. | |
3 | |
4 This program is free software; you can redistribute it and/or modify | |
5 it under the terms of the GNU General Public License as published by | |
6 the Free Software Foundation; either version 2, or (at your option) | |
7 any later version. | |
8 | |
9 This program is distributed in the hope that it will be useful, | |
10 but WITHOUT ANY WARRANTY; without even the implied warranty of | |
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
12 GNU General Public License for more details. | |
13 | |
14 You should have received a copy of the GNU General Public License | |
15 along with this program; if not, write to the Free Software Foundation, | |
16 Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ | |
17 | |
18 /* Written by Bruno Haible <bruno@clisp.org>, 2007. */ | |
19 | |
20 #ifdef HAVE_CONFIG_H | |
21 # include <config.h> | |
22 #endif | |
23 | |
24 #include <stdio.h> | |
25 | |
26 #include <stdlib.h> | |
27 #include <string.h> | |
28 | |
29 #define ASSERT(expr) if (!(expr)) abort (); | |
30 | |
31 int | |
32 main (int argc, char *argv[]) | |
33 { | |
34 char buf[8]; | |
35 int size; | |
36 int retval; | |
37 | |
38 for (size = 0; size <= 8; size++) | |
39 { | |
40 memcpy (buf, "DEADBEEF", 8); | |
41 retval = snprintf (buf, size, "%d", 12345); | |
42 if (size < 6) | |
43 { | |
44 ASSERT (retval < 0 || retval >= size); | |
45 if (size > 0) | |
46 { | |
47 ASSERT (memcmp (buf, "12345", size - 1) == 0); | |
48 ASSERT (buf[size - 1] == '\0' || buf[size - 1] == '0' + size); | |
49 } | |
50 ASSERT (memcmp (buf + size, "DEADBEEF" + size, 8 - size) == 0); | |
51 } | |
52 else | |
53 { | |
54 ASSERT (retval == 5); | |
55 ASSERT (memcmp (buf, "12345\0EF", 8) == 0); | |
56 } | |
57 } | |
58 | |
59 return 0; | |
60 } |