1 /* Test of uN_strcat() functions.
2 Copyright (C) 2010-2017 Free Software Foundation, Inc.
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 of the License, or
7 (at your option) any later version.
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.
14 You should have received a copy of the GNU General Public License
15 along with this program. If not, see <https://www.gnu.org/licenses/>. */
17 /* Written by Bruno Haible <bruno@clisp.org>, 2010. */
22 /* Test small copying operations. */
24 static const UNIT base
[] = { 'C', 'h', 'a', 'n', 'g', 'i', 'n', 'g', 0 };
25 static const UNIT src
[] = { 'c', 'l', 'i', 'm', 'a', 't', 'e', 0 };
29 for (m
= 0; m
< SIZEOF (base
); m
++)
30 for (n
= 1; n
<= SIZEOF (src
); n
++)
32 UNIT dest
[1 + (SIZEOF (base
) - 1) + SIZEOF (src
) + 1] =
33 { MAGIC
, MAGIC
, MAGIC
, MAGIC
, MAGIC
, MAGIC
, MAGIC
, MAGIC
, MAGIC
,
34 MAGIC
, MAGIC
, MAGIC
, MAGIC
, MAGIC
, MAGIC
, MAGIC
, MAGIC
, MAGIC
39 for (i
= 0; i
< m
; i
++)
40 dest
[1 + i
] = base
[i
];
43 result
= U_STRCAT (dest
+ 1, src
+ SIZEOF (src
) - n
);
44 ASSERT (result
== dest
+ 1);
46 ASSERT (dest
[0] == MAGIC
);
47 for (i
= 0; i
< m
; i
++)
48 ASSERT (dest
[1 + i
] == base
[i
]);
49 for (i
= 0; i
< n
; i
++)
50 ASSERT (dest
[1 + m
+ i
] == src
[SIZEOF (src
) - n
+ i
]);
51 ASSERT (dest
[1 + m
+ n
] == MAGIC
);