annotate tests/unistdio/test-u8-printf1.h @ 12518:b5e42ef33b49

update nearly all FSF copyright year lists to include 2009 The files named by the following are exempted: grep -v '^#' config/srclist.txt|grep -v '^$' \ | while read src dst; do test -f "$dst" && { echo "$dst"; continue; } test -d "$dst" || continue echo "$dst"/$(basename "$src") done > exempt git ls-files tests/unictype >> exempt In the remaining files, convert to all-interval notation if - there is already at least one year interval like 2000-2003 - the file is maintained by me - the file is in lib/uni*/, where that style already prevails Otherwise, use update-copyright's default.
author Jim Meyering <meyering@redhat.com>
date Mon, 28 Dec 2009 10:50:36 +0100
parents e8d2c6fc33ad
children c2cbabec01dd
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
9030
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
1 /* Test of u8_v[a]s[n]printf() function.
12518
b5e42ef33b49 update nearly all FSF copyright year lists to include 2009
Jim Meyering <meyering@redhat.com>
parents: 12421
diff changeset
2 Copyright (C) 2007, 2009 Free Software Foundation, Inc.
9030
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
3
9309
bbbbbf4cd1c5 Change copyright notice from GPLv2+ to GPLv3+.
Bruno Haible <bruno@clisp.org>
parents: 9030
diff changeset
4 This program is free software: you can redistribute it and/or modify
9030
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
5 it under the terms of the GNU General Public License as published by
9309
bbbbbf4cd1c5 Change copyright notice from GPLv2+ to GPLv3+.
Bruno Haible <bruno@clisp.org>
parents: 9030
diff changeset
6 the Free Software Foundation; either version 3 of the License, or
bbbbbf4cd1c5 Change copyright notice from GPLv2+ to GPLv3+.
Bruno Haible <bruno@clisp.org>
parents: 9030
diff changeset
7 (at your option) any later version.
9030
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
8
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
9 This program is distributed in the hope that it will be useful,
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
10 but WITHOUT ANY WARRANTY; without even the implied warranty of
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
12 GNU General Public License for more details.
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
13
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
14 You should have received a copy of the GNU General Public License
9309
bbbbbf4cd1c5 Change copyright notice from GPLv2+ to GPLv3+.
Bruno Haible <bruno@clisp.org>
parents: 9030
diff changeset
15 along with this program. If not, see <http://www.gnu.org/licenses/>. */
9030
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
16
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
17 /* Written by Bruno Haible <bruno@clisp.org>, 2007. */
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
18
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
19 static void
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
20 test_xfunction (uint8_t * (*my_xasprintf) (const char *, ...))
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
21 {
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
22 /* Test support of size specifiers as in C99. */
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
23
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
24 {
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
25 uint8_t *result =
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
26 my_xasprintf ("%ju %d", (uintmax_t) 12345671, 33, 44, 55);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
27 static const uint8_t expected[] = "12345671 33";
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
28 ASSERT (result != NULL);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
29 ASSERT (u8_strcmp (result, expected) == 0);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
30 free (result);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
31 }
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
32
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
33 {
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
34 uint8_t *result =
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
35 my_xasprintf ("%zu %d", (size_t) 12345672, 33, 44, 55);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
36 static const uint8_t expected[] = "12345672 33";
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
37 ASSERT (result != NULL);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
38 ASSERT (u8_strcmp (result, expected) == 0);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
39 free (result);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
40 }
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
41
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
42 {
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
43 uint8_t *result =
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
44 my_xasprintf ("%tu %d", (ptrdiff_t) 12345673, 33, 44, 55);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
45 static const uint8_t expected[] = "12345673 33";
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
46 ASSERT (result != NULL);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
47 ASSERT (u8_strcmp (result, expected) == 0);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
48 free (result);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
49 }
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
50
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
51 {
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
52 uint8_t *result =
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
53 my_xasprintf ("%Lg %d", (long double) 1.5, 33, 44, 55);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
54 static const uint8_t expected[] = "1.5 33";
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
55 ASSERT (result != NULL);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
56 ASSERT (u8_strcmp (result, expected) == 0);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
57 free (result);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
58 }
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
59
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
60 /* Test the support of the 'U' conversion specifier for Unicode strings. */
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
61
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
62 {
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
63 static const uint8_t unicode_string[] = "Hello";
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
64 {
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
65 uint8_t *result =
12421
e8d2c6fc33ad Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents: 9309
diff changeset
66 my_xasprintf ("%U %d", unicode_string, 33, 44, 55);
9030
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
67 static const uint8_t expected[] = "Hello 33";
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
68 ASSERT (result != NULL);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
69 ASSERT (u8_strcmp (result, expected) == 0);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
70 free (result);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
71 }
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
72 { /* Width. */
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
73 uint8_t *result =
12421
e8d2c6fc33ad Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents: 9309
diff changeset
74 my_xasprintf ("%10U %d", unicode_string, 33, 44, 55);
9030
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
75 static const uint8_t expected[] = " Hello 33";
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
76 ASSERT (result != NULL);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
77 ASSERT (u8_strcmp (result, expected) == 0);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
78 free (result);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
79 }
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
80 { /* FLAG_LEFT. */
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
81 uint8_t *result =
12421
e8d2c6fc33ad Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents: 9309
diff changeset
82 my_xasprintf ("%-10U %d", unicode_string, 33, 44, 55);
9030
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
83 static const uint8_t expected[] = "Hello 33";
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
84 ASSERT (result != NULL);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
85 ASSERT (u8_strcmp (result, expected) == 0);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
86 free (result);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
87 }
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
88 { /* FLAG_ZERO: no effect. */
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
89 uint8_t *result =
12421
e8d2c6fc33ad Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents: 9309
diff changeset
90 my_xasprintf ("%010U %d", unicode_string, 33, 44, 55);
9030
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
91 static const uint8_t expected[] = " Hello 33";
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
92 ASSERT (result != NULL);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
93 ASSERT (u8_strcmp (result, expected) == 0);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
94 free (result);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
95 }
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
96 }
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
97
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
98 {
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
99 static const uint16_t unicode_string[] = { 'H', 'e', 'l', 'l', 'o', 0 };
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
100 {
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
101 uint8_t *result =
12421
e8d2c6fc33ad Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents: 9309
diff changeset
102 my_xasprintf ("%lU %d", unicode_string, 33, 44, 55);
9030
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
103 static const uint8_t expected[] = "Hello 33";
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
104 ASSERT (result != NULL);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
105 ASSERT (u8_strcmp (result, expected) == 0);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
106 free (result);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
107 }
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
108 { /* Width. */
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
109 uint8_t *result =
12421
e8d2c6fc33ad Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents: 9309
diff changeset
110 my_xasprintf ("%10lU %d", unicode_string, 33, 44, 55);
9030
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
111 static const uint8_t expected[] = " Hello 33";
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
112 ASSERT (result != NULL);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
113 ASSERT (u8_strcmp (result, expected) == 0);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
114 free (result);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
115 }
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
116 { /* FLAG_LEFT. */
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
117 uint8_t *result =
12421
e8d2c6fc33ad Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents: 9309
diff changeset
118 my_xasprintf ("%-10lU %d", unicode_string, 33, 44, 55);
9030
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
119 static const uint8_t expected[] = "Hello 33";
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
120 ASSERT (result != NULL);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
121 ASSERT (u8_strcmp (result, expected) == 0);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
122 free (result);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
123 }
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
124 { /* FLAG_ZERO: no effect. */
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
125 uint8_t *result =
12421
e8d2c6fc33ad Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents: 9309
diff changeset
126 my_xasprintf ("%010lU %d", unicode_string, 33, 44, 55);
9030
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
127 static const uint8_t expected[] = " Hello 33";
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
128 ASSERT (result != NULL);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
129 ASSERT (u8_strcmp (result, expected) == 0);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
130 free (result);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
131 }
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
132 }
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
133
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
134 {
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
135 static const uint32_t unicode_string[] = { 'H', 'e', 'l', 'l', 'o', 0 };
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
136 {
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
137 uint8_t *result =
12421
e8d2c6fc33ad Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents: 9309
diff changeset
138 my_xasprintf ("%llU %d", unicode_string, 33, 44, 55);
9030
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
139 static const uint8_t expected[] = "Hello 33";
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
140 ASSERT (result != NULL);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
141 ASSERT (u8_strcmp (result, expected) == 0);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
142 free (result);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
143 }
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
144 { /* Width. */
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
145 uint8_t *result =
12421
e8d2c6fc33ad Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents: 9309
diff changeset
146 my_xasprintf ("%10llU %d", unicode_string, 33, 44, 55);
9030
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
147 static const uint8_t expected[] = " Hello 33";
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
148 ASSERT (result != NULL);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
149 ASSERT (u8_strcmp (result, expected) == 0);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
150 free (result);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
151 }
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
152 { /* FLAG_LEFT. */
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
153 uint8_t *result =
12421
e8d2c6fc33ad Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents: 9309
diff changeset
154 my_xasprintf ("%-10llU %d", unicode_string, 33, 44, 55);
9030
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
155 static const uint8_t expected[] = "Hello 33";
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
156 ASSERT (result != NULL);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
157 ASSERT (u8_strcmp (result, expected) == 0);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
158 free (result);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
159 }
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
160 { /* FLAG_ZERO: no effect. */
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
161 uint8_t *result =
12421
e8d2c6fc33ad Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents: 9309
diff changeset
162 my_xasprintf ("%010llU %d", unicode_string, 33, 44, 55);
9030
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
163 static const uint8_t expected[] = " Hello 33";
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
164 ASSERT (result != NULL);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
165 ASSERT (u8_strcmp (result, expected) == 0);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
166 free (result);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
167 }
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
168 }
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
169
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
170 /* Test the support of the 's' conversion specifier for strings. */
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
171
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
172 {
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
173 uint8_t *result =
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
174 my_xasprintf ("Mr. %s %d", "Ronald Reagan", 33, 44, 55);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
175 static const uint8_t expected[] = "Mr. Ronald Reagan 33";
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
176 ASSERT (result != NULL);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
177 ASSERT (u8_strcmp (result, expected) == 0);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
178 free (result);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
179 }
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
180
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
181 { /* Width. */
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
182 uint8_t *result =
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
183 my_xasprintf ("Mr. %20s %d", "Ronald Reagan", 33, 44, 55);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
184 static const uint8_t expected[] = "Mr. Ronald Reagan 33";
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
185 ASSERT (result != NULL);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
186 ASSERT (u8_strcmp (result, expected) == 0);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
187 free (result);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
188 }
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
189
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
190 { /* FLAG_LEFT. */
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
191 uint8_t *result =
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
192 my_xasprintf ("Mr. %-20s %d", "Ronald Reagan", 33, 44, 55);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
193 static const uint8_t expected[] = "Mr. Ronald Reagan 33";
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
194 ASSERT (result != NULL);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
195 ASSERT (u8_strcmp (result, expected) == 0);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
196 free (result);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
197 }
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
198
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
199 { /* FLAG_ZERO: no effect. */
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
200 uint8_t *result =
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
201 my_xasprintf ("Mr. %020s %d", "Ronald Reagan", 33, 44, 55);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
202 static const uint8_t expected[] = "Mr. Ronald Reagan 33";
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
203 ASSERT (result != NULL);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
204 ASSERT (u8_strcmp (result, expected) == 0);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
205 free (result);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
206 }
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
207
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
208 /* Test the support of the 'a' and 'A' conversion specifier for hexadecimal
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
209 output of floating-point numbers. */
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
210
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
211 { /* A positive number. */
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
212 uint8_t *result =
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
213 my_xasprintf ("%a %d", 3.1416015625, 33, 44, 55);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
214 static const uint8_t expected1[] = "0x1.922p+1 33";
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
215 static const uint8_t expected2[] = "0x3.244p+0 33";
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
216 static const uint8_t expected3[] = "0x6.488p-1 33";
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
217 static const uint8_t expected4[] = "0xc.91p-2 33";
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
218 ASSERT (result != NULL);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
219 ASSERT (u8_strcmp (result, expected1) == 0
12421
e8d2c6fc33ad Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents: 9309
diff changeset
220 || u8_strcmp (result, expected2) == 0
e8d2c6fc33ad Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents: 9309
diff changeset
221 || u8_strcmp (result, expected3) == 0
e8d2c6fc33ad Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents: 9309
diff changeset
222 || u8_strcmp (result, expected4) == 0);
9030
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
223 free (result);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
224 }
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
225
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
226 { /* Width. */
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
227 uint8_t *result =
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
228 my_xasprintf ("%10a %d", 1.75, 33, 44, 55);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
229 static const uint8_t expected1[] = " 0x1.cp+0 33";
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
230 static const uint8_t expected2[] = " 0x3.8p-1 33";
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
231 static const uint8_t expected3[] = " 0x7p-2 33";
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
232 static const uint8_t expected4[] = " 0xep-3 33";
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
233 ASSERT (result != NULL);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
234 ASSERT (u8_strcmp (result, expected1) == 0
12421
e8d2c6fc33ad Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents: 9309
diff changeset
235 || u8_strcmp (result, expected2) == 0
e8d2c6fc33ad Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents: 9309
diff changeset
236 || u8_strcmp (result, expected3) == 0
e8d2c6fc33ad Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents: 9309
diff changeset
237 || u8_strcmp (result, expected4) == 0);
9030
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
238 free (result);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
239 }
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
240
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
241 { /* Small precision. */
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
242 uint8_t *result =
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
243 my_xasprintf ("%.10a %d", 1.75, 33, 44, 55);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
244 static const uint8_t expected1[] = "0x1.c000000000p+0 33";
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
245 static const uint8_t expected2[] = "0x3.8000000000p-1 33";
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
246 static const uint8_t expected3[] = "0x7.0000000000p-2 33";
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
247 static const uint8_t expected4[] = "0xe.0000000000p-3 33";
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
248 ASSERT (result != NULL);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
249 ASSERT (u8_strcmp (result, expected1) == 0
12421
e8d2c6fc33ad Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents: 9309
diff changeset
250 || u8_strcmp (result, expected2) == 0
e8d2c6fc33ad Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents: 9309
diff changeset
251 || u8_strcmp (result, expected3) == 0
e8d2c6fc33ad Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents: 9309
diff changeset
252 || u8_strcmp (result, expected4) == 0);
9030
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
253 free (result);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
254 }
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
255
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
256 { /* Large precision. */
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
257 uint8_t *result =
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
258 my_xasprintf ("%.50a %d", 1.75, 33, 44, 55);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
259 static const uint8_t expected1[] = "0x1.c0000000000000000000000000000000000000000000000000p+0 33";
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
260 static const uint8_t expected2[] = "0x3.80000000000000000000000000000000000000000000000000p-1 33";
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
261 static const uint8_t expected3[] = "0x7.00000000000000000000000000000000000000000000000000p-2 33";
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
262 static const uint8_t expected4[] = "0xe.00000000000000000000000000000000000000000000000000p-3 33";
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
263 ASSERT (result != NULL);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
264 ASSERT (u8_strcmp (result, expected1) == 0
12421
e8d2c6fc33ad Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents: 9309
diff changeset
265 || u8_strcmp (result, expected2) == 0
e8d2c6fc33ad Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents: 9309
diff changeset
266 || u8_strcmp (result, expected3) == 0
e8d2c6fc33ad Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents: 9309
diff changeset
267 || u8_strcmp (result, expected4) == 0);
9030
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
268 free (result);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
269 }
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
270
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
271 { /* A positive number. */
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
272 uint8_t *result =
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
273 my_xasprintf ("%La %d", 3.1416015625L, 33, 44, 55);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
274 static const uint8_t expected1[] = "0x1.922p+1 33";
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
275 static const uint8_t expected2[] = "0x3.244p+0 33";
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
276 static const uint8_t expected3[] = "0x6.488p-1 33";
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
277 static const uint8_t expected4[] = "0xc.91p-2 33";
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
278 ASSERT (result != NULL);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
279 ASSERT (u8_strcmp (result, expected1) == 0
12421
e8d2c6fc33ad Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents: 9309
diff changeset
280 || u8_strcmp (result, expected2) == 0
e8d2c6fc33ad Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents: 9309
diff changeset
281 || u8_strcmp (result, expected3) == 0
e8d2c6fc33ad Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents: 9309
diff changeset
282 || u8_strcmp (result, expected4) == 0);
9030
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
283 free (result);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
284 }
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
285
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
286 { /* Width. */
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
287 uint8_t *result =
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
288 my_xasprintf ("%10La %d", 1.75L, 33, 44, 55);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
289 static const uint8_t expected1[] = " 0x1.cp+0 33";
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
290 static const uint8_t expected2[] = " 0x3.8p-1 33";
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
291 static const uint8_t expected3[] = " 0x7p-2 33";
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
292 static const uint8_t expected4[] = " 0xep-3 33";
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
293 ASSERT (result != NULL);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
294 ASSERT (u8_strcmp (result, expected1) == 0
12421
e8d2c6fc33ad Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents: 9309
diff changeset
295 || u8_strcmp (result, expected2) == 0
e8d2c6fc33ad Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents: 9309
diff changeset
296 || u8_strcmp (result, expected3) == 0
e8d2c6fc33ad Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents: 9309
diff changeset
297 || u8_strcmp (result, expected4) == 0);
9030
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
298 free (result);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
299 }
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
300
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
301 { /* Small precision. */
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
302 uint8_t *result =
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
303 my_xasprintf ("%.10La %d", 1.75L, 33, 44, 55);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
304 static const uint8_t expected1[] = "0x1.c000000000p+0 33";
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
305 static const uint8_t expected2[] = "0x3.8000000000p-1 33";
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
306 static const uint8_t expected3[] = "0x7.0000000000p-2 33";
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
307 static const uint8_t expected4[] = "0xe.0000000000p-3 33";
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
308 ASSERT (result != NULL);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
309 ASSERT (u8_strcmp (result, expected1) == 0
12421
e8d2c6fc33ad Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents: 9309
diff changeset
310 || u8_strcmp (result, expected2) == 0
e8d2c6fc33ad Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents: 9309
diff changeset
311 || u8_strcmp (result, expected3) == 0
e8d2c6fc33ad Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents: 9309
diff changeset
312 || u8_strcmp (result, expected4) == 0);
9030
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
313 free (result);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
314 }
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
315
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
316 { /* Large precision. */
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
317 uint8_t *result =
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
318 my_xasprintf ("%.50La %d", 1.75L, 33, 44, 55);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
319 static const uint8_t expected1[] = "0x1.c0000000000000000000000000000000000000000000000000p+0 33";
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
320 static const uint8_t expected2[] = "0x3.80000000000000000000000000000000000000000000000000p-1 33";
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
321 static const uint8_t expected3[] = "0x7.00000000000000000000000000000000000000000000000000p-2 33";
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
322 static const uint8_t expected4[] = "0xe.00000000000000000000000000000000000000000000000000p-3 33";
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
323 ASSERT (result != NULL);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
324 ASSERT (u8_strcmp (result, expected1) == 0
12421
e8d2c6fc33ad Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents: 9309
diff changeset
325 || u8_strcmp (result, expected2) == 0
e8d2c6fc33ad Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents: 9309
diff changeset
326 || u8_strcmp (result, expected3) == 0
e8d2c6fc33ad Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents: 9309
diff changeset
327 || u8_strcmp (result, expected4) == 0);
9030
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
328 free (result);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
329 }
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
330
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
331 /* Test the support of the %f format directive. */
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
332
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
333 { /* A positive number. */
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
334 uint8_t *result =
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
335 my_xasprintf ("%f %d", 12.75, 33, 44, 55);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
336 static const uint8_t expected[] = "12.750000 33";
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
337 ASSERT (result != NULL);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
338 ASSERT (u8_strcmp (result, expected) == 0);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
339 free (result);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
340 }
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
341
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
342 { /* Width. */
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
343 uint8_t *result =
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
344 my_xasprintf ("%10f %d", 1.75, 33, 44, 55);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
345 static const uint8_t expected[] = " 1.750000 33";
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
346 ASSERT (result != NULL);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
347 ASSERT (u8_strcmp (result, expected) == 0);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
348 free (result);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
349 }
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
350
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
351 { /* Precision. */
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
352 uint8_t *result =
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
353 my_xasprintf ("%.f %d", 1234.0, 33, 44, 55);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
354 static const uint8_t expected[] = "1234 33";
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
355 ASSERT (result != NULL);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
356 ASSERT (u8_strcmp (result, expected) == 0);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
357 free (result);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
358 }
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
359
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
360 { /* A positive number. */
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
361 uint8_t *result =
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
362 my_xasprintf ("%Lf %d", 12.75L, 33, 44, 55);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
363 static const uint8_t expected[] = "12.750000 33";
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
364 ASSERT (result != NULL);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
365 ASSERT (u8_strcmp (result, expected) == 0);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
366 free (result);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
367 }
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
368
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
369 { /* Width. */
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
370 uint8_t *result =
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
371 my_xasprintf ("%10Lf %d", 1.75L, 33, 44, 55);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
372 static const uint8_t expected[] = " 1.750000 33";
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
373 ASSERT (result != NULL);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
374 ASSERT (u8_strcmp (result, expected) == 0);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
375 free (result);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
376 }
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
377
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
378 { /* Precision. */
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
379 uint8_t *result =
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
380 my_xasprintf ("%.Lf %d", 1234.0L, 33, 44, 55);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
381 static const uint8_t expected[] = "1234 33";
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
382 ASSERT (result != NULL);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
383 ASSERT (u8_strcmp (result, expected) == 0);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
384 free (result);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
385 }
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
386
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
387 /* Test the support of the %F format directive. */
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
388
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
389 { /* A positive number. */
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
390 uint8_t *result =
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
391 my_xasprintf ("%F %d", 12.75, 33, 44, 55);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
392 static const uint8_t expected[] = "12.750000 33";
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
393 ASSERT (result != NULL);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
394 ASSERT (u8_strcmp (result, expected) == 0);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
395 free (result);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
396 }
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
397
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
398 { /* Precision. */
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
399 uint8_t *result =
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
400 my_xasprintf ("%.F %d", 1234.0, 33, 44, 55);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
401 static const uint8_t expected[] = "1234 33";
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
402 ASSERT (result != NULL);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
403 ASSERT (u8_strcmp (result, expected) == 0);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
404 free (result);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
405 }
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
406
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
407 { /* A positive number. */
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
408 uint8_t *result =
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
409 my_xasprintf ("%LF %d", 12.75L, 33, 44, 55);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
410 static const uint8_t expected[] = "12.750000 33";
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
411 ASSERT (result != NULL);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
412 ASSERT (u8_strcmp (result, expected) == 0);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
413 free (result);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
414 }
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
415
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
416 { /* Precision. */
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
417 uint8_t *result =
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
418 my_xasprintf ("%.LF %d", 1234.0L, 33, 44, 55);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
419 static const uint8_t expected[] = "1234 33";
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
420 ASSERT (result != NULL);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
421 ASSERT (u8_strcmp (result, expected) == 0);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
422 free (result);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
423 }
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
424
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
425 /* Test the support of the %e format directive. */
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
426
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
427 { /* A positive number. */
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
428 uint8_t *result =
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
429 my_xasprintf ("%e %d", 12.75, 33, 44, 55);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
430 static const uint8_t expected1[] = "1.275000e+01 33";
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
431 static const uint8_t expected2[] = "1.275000e+001 33";
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
432 ASSERT (result != NULL);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
433 ASSERT (u8_strcmp (result, expected1) == 0
12421
e8d2c6fc33ad Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents: 9309
diff changeset
434 || u8_strcmp (result, expected2) == 0);
9030
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
435 free (result);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
436 }
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
437
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
438 { /* Width. */
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
439 uint8_t *result =
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
440 my_xasprintf ("%15e %d", 1.75, 33, 44, 55);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
441 static const uint8_t expected1[] = " 1.750000e+00 33";
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
442 static const uint8_t expected2[] = " 1.750000e+000 33";
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
443 ASSERT (result != NULL);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
444 ASSERT (u8_strcmp (result, expected1) == 0
12421
e8d2c6fc33ad Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents: 9309
diff changeset
445 || u8_strcmp (result, expected2) == 0);
9030
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
446 free (result);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
447 }
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
448
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
449 { /* Precision. */
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
450 uint8_t *result =
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
451 my_xasprintf ("%.e %d", 1234.0, 33, 44, 55);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
452 static const uint8_t expected1[] = "1e+03 33";
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
453 static const uint8_t expected2[] = "1e+003 33";
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
454 ASSERT (result != NULL);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
455 ASSERT (u8_strcmp (result, expected1) == 0
12421
e8d2c6fc33ad Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents: 9309
diff changeset
456 || u8_strcmp (result, expected2) == 0);
9030
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
457 free (result);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
458 }
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
459
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
460 { /* A positive number. */
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
461 uint8_t *result =
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
462 my_xasprintf ("%Le %d", 12.75L, 33, 44, 55);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
463 static const uint8_t expected[] = "1.275000e+01 33";
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
464 ASSERT (result != NULL);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
465 ASSERT (u8_strcmp (result, expected) == 0);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
466 free (result);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
467 }
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
468
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
469 { /* Width. */
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
470 uint8_t *result =
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
471 my_xasprintf ("%15Le %d", 1.75L, 33, 44, 55);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
472 static const uint8_t expected[] = " 1.750000e+00 33";
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
473 ASSERT (result != NULL);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
474 ASSERT (u8_strcmp (result, expected) == 0);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
475 free (result);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
476 }
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
477
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
478 { /* Precision. */
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
479 uint8_t *result =
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
480 my_xasprintf ("%.Le %d", 1234.0L, 33, 44, 55);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
481 static const uint8_t expected[] = "1e+03 33";
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
482 ASSERT (result != NULL);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
483 ASSERT (u8_strcmp (result, expected) == 0);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
484 free (result);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
485 }
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
486
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
487 /* Test the support of the %g format directive. */
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
488
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
489 { /* A positive number. */
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
490 uint8_t *result =
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
491 my_xasprintf ("%g %d", 12.75, 33, 44, 55);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
492 static const uint8_t expected[] = "12.75 33";
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
493 ASSERT (result != NULL);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
494 ASSERT (u8_strcmp (result, expected) == 0);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
495 free (result);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
496 }
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
497
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
498 { /* Width. */
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
499 uint8_t *result =
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
500 my_xasprintf ("%10g %d", 1.75, 33, 44, 55);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
501 static const uint8_t expected[] = " 1.75 33";
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
502 ASSERT (result != NULL);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
503 ASSERT (u8_strcmp (result, expected) == 0);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
504 free (result);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
505 }
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
506
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
507 { /* Precision. */
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
508 uint8_t *result =
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
509 my_xasprintf ("%.g %d", 1234.0, 33, 44, 55);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
510 static const uint8_t expected1[] = "1e+03 33";
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
511 static const uint8_t expected2[] = "1e+003 33";
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
512 ASSERT (result != NULL);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
513 ASSERT (u8_strcmp (result, expected1) == 0
12421
e8d2c6fc33ad Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents: 9309
diff changeset
514 || u8_strcmp (result, expected2) == 0);
9030
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
515 free (result);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
516 }
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
517
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
518 { /* A positive number. */
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
519 uint8_t *result =
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
520 my_xasprintf ("%Lg %d", 12.75L, 33, 44, 55);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
521 static const uint8_t expected[] = "12.75 33";
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
522 ASSERT (result != NULL);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
523 ASSERT (u8_strcmp (result, expected) == 0);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
524 free (result);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
525 }
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
526
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
527 { /* Width. */
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
528 uint8_t *result =
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
529 my_xasprintf ("%10Lg %d", 1.75L, 33, 44, 55);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
530 static const uint8_t expected[] = " 1.75 33";
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
531 ASSERT (result != NULL);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
532 ASSERT (u8_strcmp (result, expected) == 0);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
533 free (result);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
534 }
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
535
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
536 { /* Precision. */
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
537 uint8_t *result =
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
538 my_xasprintf ("%.Lg %d", 1234.0L, 33, 44, 55);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
539 static const uint8_t expected[] = "1e+03 33";
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
540 ASSERT (result != NULL);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
541 ASSERT (u8_strcmp (result, expected) == 0);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
542 free (result);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
543 }
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
544
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
545 /* Test the support of the %n format directive. */
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
546
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
547 {
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
548 int count = -1;
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
549 uint8_t *result =
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
550 my_xasprintf ("%d %n", 123, &count, 33, 44, 55);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
551 static const uint8_t expected[] = "123 ";
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
552 ASSERT (result != NULL);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
553 ASSERT (u8_strcmp (result, expected) == 0);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
554 ASSERT (count == 4);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
555 free (result);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
556 }
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
557
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
558 /* Test the support of the POSIX/XSI format strings with positions. */
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
559
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
560 {
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
561 uint8_t *result =
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
562 my_xasprintf ("%2$d %1$d", 33, 55);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
563 static const uint8_t expected[] = "55 33";
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
564 ASSERT (result != NULL);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
565 ASSERT (u8_strcmp (result, expected) == 0);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
566 free (result);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
567 }
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
568
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
569 /* Test the support of the grouping flag. */
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
570
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
571 {
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
572 uint8_t *result =
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
573 my_xasprintf ("%'d %d", 1234567, 99);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
574 ASSERT (result != NULL);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
575 ASSERT (result[u8_strlen (result) - 1] == '9');
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
576 free (result);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
577 }
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
578
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
579 /* Test the support of the 'U' conversion specifier for Unicode strings. */
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
580
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
581 {
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
582 static const uint8_t unicode_string[] = "Rafa\305\202 Maszkowski"; /* RafaƂ Maszkowski */
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
583 {
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
584 uint8_t *result =
12421
e8d2c6fc33ad Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents: 9309
diff changeset
585 my_xasprintf ("%U %d", unicode_string, 33, 44, 55);
9030
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
586 static const uint8_t expected[] = "Rafa\305\202 Maszkowski 33";
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
587 ASSERT (result != NULL);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
588 ASSERT (u8_strcmp (result, expected) == 0);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
589 free (result);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
590 }
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
591 { /* Width. */
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
592 uint8_t *result =
12421
e8d2c6fc33ad Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents: 9309
diff changeset
593 my_xasprintf ("%20U %d", unicode_string, 33, 44, 55);
9030
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
594 static const uint8_t expected[] = " Rafa\305\202 Maszkowski 33";
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
595 ASSERT (result != NULL);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
596 ASSERT (u8_strcmp (result, expected) == 0);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
597 free (result);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
598 }
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
599 { /* FLAG_LEFT. */
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
600 uint8_t *result =
12421
e8d2c6fc33ad Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents: 9309
diff changeset
601 my_xasprintf ("%-20U %d", unicode_string, 33, 44, 55);
9030
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
602 static const uint8_t expected[] = "Rafa\305\202 Maszkowski 33";
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
603 ASSERT (result != NULL);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
604 ASSERT (u8_strcmp (result, expected) == 0);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
605 free (result);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
606 }
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
607 { /* FLAG_ZERO: no effect. */
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
608 uint8_t *result =
12421
e8d2c6fc33ad Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents: 9309
diff changeset
609 my_xasprintf ("%020U %d", unicode_string, 33, 44, 55);
9030
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
610 static const uint8_t expected[] = " Rafa\305\202 Maszkowski 33";
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
611 ASSERT (result != NULL);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
612 ASSERT (u8_strcmp (result, expected) == 0);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
613 free (result);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
614 }
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
615 }
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
616
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
617 {
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
618 static const uint16_t unicode_string[] = /* RafaƂ Maszkowski */
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
619 {
12421
e8d2c6fc33ad Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents: 9309
diff changeset
620 'R', 'a', 'f', 'a', 0x0142, ' ', 'M', 'a', 's', 'z', 'k', 'o', 'w',
e8d2c6fc33ad Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents: 9309
diff changeset
621 's', 'k', 'i', 0
9030
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
622 };
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
623 {
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
624 uint8_t *result =
12421
e8d2c6fc33ad Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents: 9309
diff changeset
625 my_xasprintf ("%lU %d", unicode_string, 33, 44, 55);
9030
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
626 static const uint8_t expected[] = "Rafa\305\202 Maszkowski 33";
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
627 ASSERT (result != NULL);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
628 ASSERT (u8_strcmp (result, expected) == 0);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
629 free (result);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
630 }
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
631 { /* Width. */
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
632 uint8_t *result =
12421
e8d2c6fc33ad Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents: 9309
diff changeset
633 my_xasprintf ("%20lU %d", unicode_string, 33, 44, 55);
9030
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
634 static const uint8_t expected[] = " Rafa\305\202 Maszkowski 33";
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
635 ASSERT (result != NULL);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
636 ASSERT (u8_strcmp (result, expected) == 0);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
637 free (result);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
638 }
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
639 { /* FLAG_LEFT. */
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
640 uint8_t *result =
12421
e8d2c6fc33ad Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents: 9309
diff changeset
641 my_xasprintf ("%-20lU %d", unicode_string, 33, 44, 55);
9030
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
642 static const uint8_t expected[] = "Rafa\305\202 Maszkowski 33";
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
643 ASSERT (result != NULL);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
644 ASSERT (u8_strcmp (result, expected) == 0);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
645 free (result);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
646 }
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
647 { /* FLAG_ZERO: no effect. */
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
648 uint8_t *result =
12421
e8d2c6fc33ad Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents: 9309
diff changeset
649 my_xasprintf ("%020lU %d", unicode_string, 33, 44, 55);
9030
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
650 static const uint8_t expected[] = " Rafa\305\202 Maszkowski 33";
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
651 ASSERT (result != NULL);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
652 ASSERT (u8_strcmp (result, expected) == 0);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
653 free (result);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
654 }
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
655 }
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
656
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
657 {
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
658 static const uint32_t unicode_string[] = /* RafaƂ Maszkowski */
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
659 {
12421
e8d2c6fc33ad Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents: 9309
diff changeset
660 'R', 'a', 'f', 'a', 0x0142, ' ', 'M', 'a', 's', 'z', 'k', 'o', 'w',
e8d2c6fc33ad Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents: 9309
diff changeset
661 's', 'k', 'i', 0
9030
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
662 };
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
663 {
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
664 uint8_t *result =
12421
e8d2c6fc33ad Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents: 9309
diff changeset
665 my_xasprintf ("%llU %d", unicode_string, 33, 44, 55);
9030
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
666 static const uint8_t expected[] = "Rafa\305\202 Maszkowski 33";
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
667 ASSERT (result != NULL);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
668 ASSERT (u8_strcmp (result, expected) == 0);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
669 free (result);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
670 }
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
671 { /* Width. */
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
672 uint8_t *result =
12421
e8d2c6fc33ad Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents: 9309
diff changeset
673 my_xasprintf ("%20llU %d", unicode_string, 33, 44, 55);
9030
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
674 static const uint8_t expected[] = " Rafa\305\202 Maszkowski 33";
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
675 ASSERT (result != NULL);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
676 ASSERT (u8_strcmp (result, expected) == 0);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
677 free (result);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
678 }
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
679 { /* FLAG_LEFT. */
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
680 uint8_t *result =
12421
e8d2c6fc33ad Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents: 9309
diff changeset
681 my_xasprintf ("%-20llU %d", unicode_string, 33, 44, 55);
9030
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
682 static const uint8_t expected[] = "Rafa\305\202 Maszkowski 33";
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
683 ASSERT (result != NULL);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
684 ASSERT (u8_strcmp (result, expected) == 0);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
685 free (result);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
686 }
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
687 { /* FLAG_ZERO: no effect. */
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
688 uint8_t *result =
12421
e8d2c6fc33ad Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents: 9309
diff changeset
689 my_xasprintf ("%020llU %d", unicode_string, 33, 44, 55);
9030
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
690 static const uint8_t expected[] = " Rafa\305\202 Maszkowski 33";
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
691 ASSERT (result != NULL);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
692 ASSERT (u8_strcmp (result, expected) == 0);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
693 free (result);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
694 }
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
695 }
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
696
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
697 /* Test non-ASCII characters in the format string. */
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
698
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
699 {
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
700 uint8_t *result =
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
701 my_xasprintf ("\304rger", 33, 44, 55);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
702 ASSERT (result == NULL && errno == EINVAL);
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
703 }
870029929d86 Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
704 }