Mercurial > gnulib
annotate tests/test-xmemdup0.c @ 40196:e63f5d3edab5
relocatable-prog: Update documentation.
* doc/relocatable-maint.texi (Supporting Relocation): Update to match
the recent changes.
author | Bruno Haible <bruno@clisp.org> |
---|---|
date | Sun, 24 Feb 2019 01:49:15 +0100 |
parents | b06060465f09 |
children |
rev | line source |
---|---|
10069 | 1 /* Test of xmemdup0() function. |
40057
b06060465f09
maint: Run 'make update-copyright'
Paul Eggert <eggert@cs.ucla.edu>
parents:
19484
diff
changeset
|
2 Copyright (C) 2008-2019 Free Software Foundation, Inc. |
10069 | 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 3, 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 | |
19190 | 15 along with this program; if not, see <https://www.gnu.org/licenses/>. */ |
10069 | 16 |
17 /* Written by Eric Blake <ebb9@byu.net>, 2008. */ | |
18 | |
19 #include <config.h> | |
20 | |
21 #include "xmemdup0.h" | |
22 | |
23 #include <stdlib.h> | |
24 #include <string.h> | |
25 | |
12496
a48d3d749ca5
Refactor common macros used in tests.
Bruno Haible <bruno@clisp.org>
parents:
12421
diff
changeset
|
26 #include "macros.h" |
10069 | 27 |
28 int | |
29 main (int argc, char **argv) | |
30 { | |
31 char buffer[10] = { 'a', 'b', 'c', 'd', '\0', | |
12421
e8d2c6fc33ad
Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents:
11040
diff
changeset
|
32 'f', 'g', 'h', 'i', 'j' }; |
10069 | 33 |
34 /* Empty string. */ | |
35 { | |
36 char *result = xmemdup0 (NULL, 0); | |
37 ASSERT (result); | |
38 ASSERT (!*result); | |
39 free (result); | |
40 } | |
41 { | |
42 char *result = xmemdup0 ("", 0); | |
43 ASSERT (result); | |
44 ASSERT (!*result); | |
45 free (result); | |
46 } | |
47 | |
48 /* Various buffer lengths. */ | |
49 { | |
50 char *result = xmemdup0 (buffer, 4); | |
51 ASSERT (result); | |
52 ASSERT (strcmp (result, buffer) == 0); | |
53 free (result); | |
54 } | |
55 { | |
56 char *result = xmemdup0 (buffer, 5); | |
57 ASSERT (result); | |
58 ASSERT (strcmp (result, buffer) == 0); | |
59 ASSERT (result[5] == '\0'); | |
60 free (result); | |
61 } | |
62 { | |
63 char *result = xmemdup0 (buffer, 9); | |
64 ASSERT (result); | |
65 ASSERT (memcmp (result, buffer, 9) == 0); | |
66 ASSERT (result[9] == '\0'); | |
67 free (result); | |
68 } | |
69 { | |
70 char *result = xmemdup0 (buffer, 10); | |
71 ASSERT (result); | |
72 ASSERT (memcmp (result, buffer, 10) == 0); | |
73 ASSERT (result[10] == '\0'); | |
74 free (result); | |
75 } | |
76 | |
77 return 0; | |
78 } |