Mercurial > hg > octave-nkf > gnulib-hg
annotate tests/unistdio/test-u8-printf1.h @ 9030:870029929d86
Formatted output functions for Unicode strings.
author | Bruno Haible <bruno@clisp.org> |
---|---|
date | Mon, 02 Jul 2007 01:34:46 +0000 |
parents | |
children | bbbbbf4cd1c5 |
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. |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
2 Copyright (C) 2007 Free Software Foundation, Inc. |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
3 |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
4 This program is free software; you can redistribute it and/or modify |
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 |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
6 the Free Software Foundation; either version 2, or (at your option) |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
7 any later version. |
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 |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
15 along with this program; if not, write to the Free Software Foundation, |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
16 Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
17 |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
18 /* Written by Bruno Haible <bruno@clisp.org>, 2007. */ |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
19 |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
20 static void |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
21 test_xfunction (uint8_t * (*my_xasprintf) (const char *, ...)) |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
22 { |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
23 /* Test support of size specifiers as in C99. */ |
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 { |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
26 uint8_t *result = |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
27 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
|
28 static const uint8_t expected[] = "12345671 33"; |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
29 ASSERT (result != NULL); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
30 ASSERT (u8_strcmp (result, expected) == 0); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
31 free (result); |
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 { |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
35 uint8_t *result = |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
36 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
|
37 static const uint8_t expected[] = "12345672 33"; |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
38 ASSERT (result != NULL); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
39 ASSERT (u8_strcmp (result, expected) == 0); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
40 free (result); |
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 { |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
44 uint8_t *result = |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
45 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
|
46 static const uint8_t expected[] = "12345673 33"; |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
47 ASSERT (result != NULL); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
48 ASSERT (u8_strcmp (result, expected) == 0); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
49 free (result); |
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 { |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
53 uint8_t *result = |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
54 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
|
55 static const uint8_t expected[] = "1.5 33"; |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
56 ASSERT (result != NULL); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
57 ASSERT (u8_strcmp (result, expected) == 0); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
58 free (result); |
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 |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
61 /* 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
|
62 |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
63 { |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
64 static const uint8_t unicode_string[] = "Hello"; |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
65 { |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
66 uint8_t *result = |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
67 my_xasprintf ("%U %d", unicode_string, 33, 44, 55); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
68 static const uint8_t expected[] = "Hello 33"; |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
69 ASSERT (result != NULL); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
70 ASSERT (u8_strcmp (result, expected) == 0); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
71 free (result); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
72 } |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
73 { /* Width. */ |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
74 uint8_t *result = |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
75 my_xasprintf ("%10U %d", unicode_string, 33, 44, 55); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
76 static const uint8_t expected[] = " Hello 33"; |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
77 ASSERT (result != NULL); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
78 ASSERT (u8_strcmp (result, expected) == 0); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
79 free (result); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
80 } |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
81 { /* FLAG_LEFT. */ |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
82 uint8_t *result = |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
83 my_xasprintf ("%-10U %d", unicode_string, 33, 44, 55); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
84 static const uint8_t expected[] = "Hello 33"; |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
85 ASSERT (result != NULL); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
86 ASSERT (u8_strcmp (result, expected) == 0); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
87 free (result); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
88 } |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
89 { /* FLAG_ZERO: no effect. */ |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
90 uint8_t *result = |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
91 my_xasprintf ("%010U %d", unicode_string, 33, 44, 55); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
92 static const uint8_t expected[] = " Hello 33"; |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
93 ASSERT (result != NULL); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
94 ASSERT (u8_strcmp (result, expected) == 0); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
95 free (result); |
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 { |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
100 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
|
101 { |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
102 uint8_t *result = |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
103 my_xasprintf ("%lU %d", unicode_string, 33, 44, 55); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
104 static const uint8_t expected[] = "Hello 33"; |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
105 ASSERT (result != NULL); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
106 ASSERT (u8_strcmp (result, expected) == 0); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
107 free (result); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
108 } |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
109 { /* Width. */ |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
110 uint8_t *result = |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
111 my_xasprintf ("%10lU %d", unicode_string, 33, 44, 55); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
112 static const uint8_t expected[] = " Hello 33"; |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
113 ASSERT (result != NULL); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
114 ASSERT (u8_strcmp (result, expected) == 0); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
115 free (result); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
116 } |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
117 { /* FLAG_LEFT. */ |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
118 uint8_t *result = |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
119 my_xasprintf ("%-10lU %d", unicode_string, 33, 44, 55); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
120 static const uint8_t expected[] = "Hello 33"; |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
121 ASSERT (result != NULL); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
122 ASSERT (u8_strcmp (result, expected) == 0); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
123 free (result); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
124 } |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
125 { /* FLAG_ZERO: no effect. */ |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
126 uint8_t *result = |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
127 my_xasprintf ("%010lU %d", unicode_string, 33, 44, 55); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
128 static const uint8_t expected[] = " Hello 33"; |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
129 ASSERT (result != NULL); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
130 ASSERT (u8_strcmp (result, expected) == 0); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
131 free (result); |
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 { |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
136 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
|
137 { |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
138 uint8_t *result = |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
139 my_xasprintf ("%llU %d", unicode_string, 33, 44, 55); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
140 static const uint8_t expected[] = "Hello 33"; |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
141 ASSERT (result != NULL); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
142 ASSERT (u8_strcmp (result, expected) == 0); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
143 free (result); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
144 } |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
145 { /* Width. */ |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
146 uint8_t *result = |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
147 my_xasprintf ("%10llU %d", unicode_string, 33, 44, 55); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
148 static const uint8_t expected[] = " Hello 33"; |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
149 ASSERT (result != NULL); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
150 ASSERT (u8_strcmp (result, expected) == 0); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
151 free (result); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
152 } |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
153 { /* FLAG_LEFT. */ |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
154 uint8_t *result = |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
155 my_xasprintf ("%-10llU %d", unicode_string, 33, 44, 55); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
156 static const uint8_t expected[] = "Hello 33"; |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
157 ASSERT (result != NULL); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
158 ASSERT (u8_strcmp (result, expected) == 0); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
159 free (result); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
160 } |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
161 { /* FLAG_ZERO: no effect. */ |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
162 uint8_t *result = |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
163 my_xasprintf ("%010llU %d", unicode_string, 33, 44, 55); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
164 static const uint8_t expected[] = " Hello 33"; |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
165 ASSERT (result != NULL); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
166 ASSERT (u8_strcmp (result, expected) == 0); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
167 free (result); |
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 |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
171 /* 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
|
172 |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
173 { |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
174 uint8_t *result = |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
175 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
|
176 static const uint8_t expected[] = "Mr. Ronald Reagan 33"; |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
177 ASSERT (result != NULL); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
178 ASSERT (u8_strcmp (result, expected) == 0); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
179 free (result); |
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 |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
182 { /* Width. */ |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
183 uint8_t *result = |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
184 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
|
185 static const uint8_t expected[] = "Mr. Ronald Reagan 33"; |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
186 ASSERT (result != NULL); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
187 ASSERT (u8_strcmp (result, expected) == 0); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
188 free (result); |
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 |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
191 { /* FLAG_LEFT. */ |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
192 uint8_t *result = |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
193 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
|
194 static const uint8_t expected[] = "Mr. Ronald Reagan 33"; |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
195 ASSERT (result != NULL); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
196 ASSERT (u8_strcmp (result, expected) == 0); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
197 free (result); |
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 |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
200 { /* FLAG_ZERO: no effect. */ |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
201 uint8_t *result = |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
202 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
|
203 static const uint8_t expected[] = "Mr. Ronald Reagan 33"; |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
204 ASSERT (result != NULL); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
205 ASSERT (u8_strcmp (result, expected) == 0); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
206 free (result); |
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 |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
209 /* 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
|
210 output of floating-point numbers. */ |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
211 |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
212 { /* A positive number. */ |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
213 uint8_t *result = |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
214 my_xasprintf ("%a %d", 3.1416015625, 33, 44, 55); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
215 static const uint8_t expected1[] = "0x1.922p+1 33"; |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
216 static const uint8_t expected2[] = "0x3.244p+0 33"; |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
217 static const uint8_t expected3[] = "0x6.488p-1 33"; |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
218 static const uint8_t expected4[] = "0xc.91p-2 33"; |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
219 ASSERT (result != NULL); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
220 ASSERT (u8_strcmp (result, expected1) == 0 |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
221 || u8_strcmp (result, expected2) == 0 |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
222 || u8_strcmp (result, expected3) == 0 |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
223 || u8_strcmp (result, expected4) == 0); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
224 free (result); |
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 |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
227 { /* Width. */ |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
228 uint8_t *result = |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
229 my_xasprintf ("%10a %d", 1.75, 33, 44, 55); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
230 static const uint8_t expected1[] = " 0x1.cp+0 33"; |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
231 static const uint8_t expected2[] = " 0x3.8p-1 33"; |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
232 static const uint8_t expected3[] = " 0x7p-2 33"; |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
233 static const uint8_t expected4[] = " 0xep-3 33"; |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
234 ASSERT (result != NULL); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
235 ASSERT (u8_strcmp (result, expected1) == 0 |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
236 || u8_strcmp (result, expected2) == 0 |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
237 || u8_strcmp (result, expected3) == 0 |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
238 || u8_strcmp (result, expected4) == 0); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
239 free (result); |
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 |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
242 { /* Small precision. */ |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
243 uint8_t *result = |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
244 my_xasprintf ("%.10a %d", 1.75, 33, 44, 55); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
245 static const uint8_t expected1[] = "0x1.c000000000p+0 33"; |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
246 static const uint8_t expected2[] = "0x3.8000000000p-1 33"; |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
247 static const uint8_t expected3[] = "0x7.0000000000p-2 33"; |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
248 static const uint8_t expected4[] = "0xe.0000000000p-3 33"; |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
249 ASSERT (result != NULL); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
250 ASSERT (u8_strcmp (result, expected1) == 0 |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
251 || u8_strcmp (result, expected2) == 0 |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
252 || u8_strcmp (result, expected3) == 0 |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
253 || u8_strcmp (result, expected4) == 0); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
254 free (result); |
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 |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
257 { /* Large precision. */ |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
258 uint8_t *result = |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
259 my_xasprintf ("%.50a %d", 1.75, 33, 44, 55); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
260 static const uint8_t expected1[] = "0x1.c0000000000000000000000000000000000000000000000000p+0 33"; |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
261 static const uint8_t expected2[] = "0x3.80000000000000000000000000000000000000000000000000p-1 33"; |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
262 static const uint8_t expected3[] = "0x7.00000000000000000000000000000000000000000000000000p-2 33"; |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
263 static const uint8_t expected4[] = "0xe.00000000000000000000000000000000000000000000000000p-3 33"; |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
264 ASSERT (result != NULL); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
265 ASSERT (u8_strcmp (result, expected1) == 0 |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
266 || u8_strcmp (result, expected2) == 0 |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
267 || u8_strcmp (result, expected3) == 0 |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
268 || u8_strcmp (result, expected4) == 0); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
269 free (result); |
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 |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
272 { /* A positive number. */ |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
273 uint8_t *result = |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
274 my_xasprintf ("%La %d", 3.1416015625L, 33, 44, 55); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
275 static const uint8_t expected1[] = "0x1.922p+1 33"; |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
276 static const uint8_t expected2[] = "0x3.244p+0 33"; |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
277 static const uint8_t expected3[] = "0x6.488p-1 33"; |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
278 static const uint8_t expected4[] = "0xc.91p-2 33"; |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
279 ASSERT (result != NULL); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
280 ASSERT (u8_strcmp (result, expected1) == 0 |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
281 || u8_strcmp (result, expected2) == 0 |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
282 || u8_strcmp (result, expected3) == 0 |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
283 || u8_strcmp (result, expected4) == 0); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
284 free (result); |
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 |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
287 { /* Width. */ |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
288 uint8_t *result = |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
289 my_xasprintf ("%10La %d", 1.75L, 33, 44, 55); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
290 static const uint8_t expected1[] = " 0x1.cp+0 33"; |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
291 static const uint8_t expected2[] = " 0x3.8p-1 33"; |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
292 static const uint8_t expected3[] = " 0x7p-2 33"; |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
293 static const uint8_t expected4[] = " 0xep-3 33"; |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
294 ASSERT (result != NULL); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
295 ASSERT (u8_strcmp (result, expected1) == 0 |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
296 || u8_strcmp (result, expected2) == 0 |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
297 || u8_strcmp (result, expected3) == 0 |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
298 || u8_strcmp (result, expected4) == 0); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
299 free (result); |
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 |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
302 { /* Small precision. */ |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
303 uint8_t *result = |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
304 my_xasprintf ("%.10La %d", 1.75L, 33, 44, 55); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
305 static const uint8_t expected1[] = "0x1.c000000000p+0 33"; |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
306 static const uint8_t expected2[] = "0x3.8000000000p-1 33"; |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
307 static const uint8_t expected3[] = "0x7.0000000000p-2 33"; |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
308 static const uint8_t expected4[] = "0xe.0000000000p-3 33"; |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
309 ASSERT (result != NULL); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
310 ASSERT (u8_strcmp (result, expected1) == 0 |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
311 || u8_strcmp (result, expected2) == 0 |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
312 || u8_strcmp (result, expected3) == 0 |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
313 || u8_strcmp (result, expected4) == 0); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
314 free (result); |
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 |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
317 { /* Large precision. */ |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
318 uint8_t *result = |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
319 my_xasprintf ("%.50La %d", 1.75L, 33, 44, 55); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
320 static const uint8_t expected1[] = "0x1.c0000000000000000000000000000000000000000000000000p+0 33"; |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
321 static const uint8_t expected2[] = "0x3.80000000000000000000000000000000000000000000000000p-1 33"; |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
322 static const uint8_t expected3[] = "0x7.00000000000000000000000000000000000000000000000000p-2 33"; |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
323 static const uint8_t expected4[] = "0xe.00000000000000000000000000000000000000000000000000p-3 33"; |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
324 ASSERT (result != NULL); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
325 ASSERT (u8_strcmp (result, expected1) == 0 |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
326 || u8_strcmp (result, expected2) == 0 |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
327 || u8_strcmp (result, expected3) == 0 |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
328 || u8_strcmp (result, expected4) == 0); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
329 free (result); |
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 |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
332 /* Test the support of the %f format directive. */ |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
333 |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
334 { /* A positive number. */ |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
335 uint8_t *result = |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
336 my_xasprintf ("%f %d", 12.75, 33, 44, 55); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
337 static const uint8_t expected[] = "12.750000 33"; |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
338 ASSERT (result != NULL); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
339 ASSERT (u8_strcmp (result, expected) == 0); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
340 free (result); |
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 |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
343 { /* Width. */ |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
344 uint8_t *result = |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
345 my_xasprintf ("%10f %d", 1.75, 33, 44, 55); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
346 static const uint8_t expected[] = " 1.750000 33"; |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
347 ASSERT (result != NULL); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
348 ASSERT (u8_strcmp (result, expected) == 0); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
349 free (result); |
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 |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
352 { /* Precision. */ |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
353 uint8_t *result = |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
354 my_xasprintf ("%.f %d", 1234.0, 33, 44, 55); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
355 static const uint8_t expected[] = "1234 33"; |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
356 ASSERT (result != NULL); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
357 ASSERT (u8_strcmp (result, expected) == 0); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
358 free (result); |
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 |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
361 { /* A positive number. */ |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
362 uint8_t *result = |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
363 my_xasprintf ("%Lf %d", 12.75L, 33, 44, 55); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
364 static const uint8_t expected[] = "12.750000 33"; |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
365 ASSERT (result != NULL); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
366 ASSERT (u8_strcmp (result, expected) == 0); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
367 free (result); |
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 |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
370 { /* Width. */ |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
371 uint8_t *result = |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
372 my_xasprintf ("%10Lf %d", 1.75L, 33, 44, 55); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
373 static const uint8_t expected[] = " 1.750000 33"; |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
374 ASSERT (result != NULL); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
375 ASSERT (u8_strcmp (result, expected) == 0); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
376 free (result); |
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 |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
379 { /* Precision. */ |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
380 uint8_t *result = |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
381 my_xasprintf ("%.Lf %d", 1234.0L, 33, 44, 55); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
382 static const uint8_t expected[] = "1234 33"; |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
383 ASSERT (result != NULL); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
384 ASSERT (u8_strcmp (result, expected) == 0); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
385 free (result); |
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 |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
388 /* Test the support of the %F format directive. */ |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
389 |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
390 { /* A positive number. */ |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
391 uint8_t *result = |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
392 my_xasprintf ("%F %d", 12.75, 33, 44, 55); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
393 static const uint8_t expected[] = "12.750000 33"; |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
394 ASSERT (result != NULL); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
395 ASSERT (u8_strcmp (result, expected) == 0); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
396 free (result); |
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 |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
399 { /* Precision. */ |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
400 uint8_t *result = |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
401 my_xasprintf ("%.F %d", 1234.0, 33, 44, 55); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
402 static const uint8_t expected[] = "1234 33"; |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
403 ASSERT (result != NULL); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
404 ASSERT (u8_strcmp (result, expected) == 0); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
405 free (result); |
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 |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
408 { /* A positive number. */ |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
409 uint8_t *result = |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
410 my_xasprintf ("%LF %d", 12.75L, 33, 44, 55); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
411 static const uint8_t expected[] = "12.750000 33"; |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
412 ASSERT (result != NULL); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
413 ASSERT (u8_strcmp (result, expected) == 0); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
414 free (result); |
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 |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
417 { /* Precision. */ |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
418 uint8_t *result = |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
419 my_xasprintf ("%.LF %d", 1234.0L, 33, 44, 55); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
420 static const uint8_t expected[] = "1234 33"; |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
421 ASSERT (result != NULL); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
422 ASSERT (u8_strcmp (result, expected) == 0); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
423 free (result); |
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 |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
426 /* Test the support of the %e format directive. */ |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
427 |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
428 { /* A positive number. */ |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
429 uint8_t *result = |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
430 my_xasprintf ("%e %d", 12.75, 33, 44, 55); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
431 static const uint8_t expected1[] = "1.275000e+01 33"; |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
432 static const uint8_t expected2[] = "1.275000e+001 33"; |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
433 ASSERT (result != NULL); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
434 ASSERT (u8_strcmp (result, expected1) == 0 |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
435 || u8_strcmp (result, expected2) == 0); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
436 free (result); |
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 |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
439 { /* Width. */ |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
440 uint8_t *result = |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
441 my_xasprintf ("%15e %d", 1.75, 33, 44, 55); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
442 static const uint8_t expected1[] = " 1.750000e+00 33"; |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
443 static const uint8_t expected2[] = " 1.750000e+000 33"; |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
444 ASSERT (result != NULL); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
445 ASSERT (u8_strcmp (result, expected1) == 0 |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
446 || u8_strcmp (result, expected2) == 0); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
447 free (result); |
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 |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
450 { /* Precision. */ |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
451 uint8_t *result = |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
452 my_xasprintf ("%.e %d", 1234.0, 33, 44, 55); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
453 static const uint8_t expected1[] = "1e+03 33"; |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
454 static const uint8_t expected2[] = "1e+003 33"; |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
455 ASSERT (result != NULL); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
456 ASSERT (u8_strcmp (result, expected1) == 0 |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
457 || u8_strcmp (result, expected2) == 0); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
458 free (result); |
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 |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
461 { /* A positive number. */ |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
462 uint8_t *result = |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
463 my_xasprintf ("%Le %d", 12.75L, 33, 44, 55); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
464 static const uint8_t expected[] = "1.275000e+01 33"; |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
465 ASSERT (result != NULL); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
466 ASSERT (u8_strcmp (result, expected) == 0); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
467 free (result); |
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 |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
470 { /* Width. */ |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
471 uint8_t *result = |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
472 my_xasprintf ("%15Le %d", 1.75L, 33, 44, 55); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
473 static const uint8_t expected[] = " 1.750000e+00 33"; |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
474 ASSERT (result != NULL); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
475 ASSERT (u8_strcmp (result, expected) == 0); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
476 free (result); |
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 |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
479 { /* Precision. */ |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
480 uint8_t *result = |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
481 my_xasprintf ("%.Le %d", 1234.0L, 33, 44, 55); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
482 static const uint8_t expected[] = "1e+03 33"; |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
483 ASSERT (result != NULL); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
484 ASSERT (u8_strcmp (result, expected) == 0); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
485 free (result); |
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 |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
488 /* Test the support of the %g format directive. */ |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
489 |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
490 { /* A positive number. */ |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
491 uint8_t *result = |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
492 my_xasprintf ("%g %d", 12.75, 33, 44, 55); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
493 static const uint8_t expected[] = "12.75 33"; |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
494 ASSERT (result != NULL); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
495 ASSERT (u8_strcmp (result, expected) == 0); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
496 free (result); |
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 |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
499 { /* Width. */ |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
500 uint8_t *result = |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
501 my_xasprintf ("%10g %d", 1.75, 33, 44, 55); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
502 static const uint8_t expected[] = " 1.75 33"; |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
503 ASSERT (result != NULL); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
504 ASSERT (u8_strcmp (result, expected) == 0); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
505 free (result); |
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 |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
508 { /* Precision. */ |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
509 uint8_t *result = |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
510 my_xasprintf ("%.g %d", 1234.0, 33, 44, 55); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
511 static const uint8_t expected1[] = "1e+03 33"; |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
512 static const uint8_t expected2[] = "1e+003 33"; |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
513 ASSERT (result != NULL); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
514 ASSERT (u8_strcmp (result, expected1) == 0 |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
515 || u8_strcmp (result, expected2) == 0); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
516 free (result); |
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 |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
519 { /* A positive number. */ |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
520 uint8_t *result = |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
521 my_xasprintf ("%Lg %d", 12.75L, 33, 44, 55); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
522 static const uint8_t expected[] = "12.75 33"; |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
523 ASSERT (result != NULL); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
524 ASSERT (u8_strcmp (result, expected) == 0); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
525 free (result); |
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 |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
528 { /* Width. */ |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
529 uint8_t *result = |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
530 my_xasprintf ("%10Lg %d", 1.75L, 33, 44, 55); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
531 static const uint8_t expected[] = " 1.75 33"; |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
532 ASSERT (result != NULL); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
533 ASSERT (u8_strcmp (result, expected) == 0); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
534 free (result); |
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 |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
537 { /* Precision. */ |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
538 uint8_t *result = |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
539 my_xasprintf ("%.Lg %d", 1234.0L, 33, 44, 55); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
540 static const uint8_t expected[] = "1e+03 33"; |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
541 ASSERT (result != NULL); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
542 ASSERT (u8_strcmp (result, expected) == 0); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
543 free (result); |
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 |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
546 /* Test the support of the %n format directive. */ |
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 { |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
549 int count = -1; |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
550 uint8_t *result = |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
551 my_xasprintf ("%d %n", 123, &count, 33, 44, 55); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
552 static const uint8_t expected[] = "123 "; |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
553 ASSERT (result != NULL); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
554 ASSERT (u8_strcmp (result, expected) == 0); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
555 ASSERT (count == 4); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
556 free (result); |
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 |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
559 /* 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
|
560 |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
561 { |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
562 uint8_t *result = |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
563 my_xasprintf ("%2$d %1$d", 33, 55); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
564 static const uint8_t expected[] = "55 33"; |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
565 ASSERT (result != NULL); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
566 ASSERT (u8_strcmp (result, expected) == 0); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
567 free (result); |
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 |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
570 /* Test the support of the grouping flag. */ |
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 { |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
573 uint8_t *result = |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
574 my_xasprintf ("%'d %d", 1234567, 99); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
575 ASSERT (result != NULL); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
576 ASSERT (result[u8_strlen (result) - 1] == '9'); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
577 free (result); |
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 |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
580 /* 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
|
581 |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
582 { |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
583 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
|
584 { |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
585 uint8_t *result = |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
586 my_xasprintf ("%U %d", unicode_string, 33, 44, 55); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
587 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
|
588 ASSERT (result != NULL); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
589 ASSERT (u8_strcmp (result, expected) == 0); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
590 free (result); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
591 } |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
592 { /* Width. */ |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
593 uint8_t *result = |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
594 my_xasprintf ("%20U %d", unicode_string, 33, 44, 55); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
595 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
|
596 ASSERT (result != NULL); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
597 ASSERT (u8_strcmp (result, expected) == 0); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
598 free (result); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
599 } |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
600 { /* FLAG_LEFT. */ |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
601 uint8_t *result = |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
602 my_xasprintf ("%-20U %d", unicode_string, 33, 44, 55); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
603 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
|
604 ASSERT (result != NULL); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
605 ASSERT (u8_strcmp (result, expected) == 0); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
606 free (result); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
607 } |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
608 { /* FLAG_ZERO: no effect. */ |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
609 uint8_t *result = |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
610 my_xasprintf ("%020U %d", unicode_string, 33, 44, 55); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
611 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
|
612 ASSERT (result != NULL); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
613 ASSERT (u8_strcmp (result, expected) == 0); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
614 free (result); |
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 { |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
619 static const uint16_t unicode_string[] = /* RafaĆ Maszkowski */ |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
620 { |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
621 'R', 'a', 'f', 'a', 0x0142, ' ', 'M', 'a', 's', 'z', 'k', 'o', 'w', |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
622 's', 'k', 'i', 0 |
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 { |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
625 uint8_t *result = |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
626 my_xasprintf ("%lU %d", unicode_string, 33, 44, 55); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
627 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
|
628 ASSERT (result != NULL); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
629 ASSERT (u8_strcmp (result, expected) == 0); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
630 free (result); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
631 } |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
632 { /* Width. */ |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
633 uint8_t *result = |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
634 my_xasprintf ("%20lU %d", unicode_string, 33, 44, 55); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
635 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
|
636 ASSERT (result != NULL); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
637 ASSERT (u8_strcmp (result, expected) == 0); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
638 free (result); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
639 } |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
640 { /* FLAG_LEFT. */ |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
641 uint8_t *result = |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
642 my_xasprintf ("%-20lU %d", unicode_string, 33, 44, 55); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
643 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
|
644 ASSERT (result != NULL); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
645 ASSERT (u8_strcmp (result, expected) == 0); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
646 free (result); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
647 } |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
648 { /* FLAG_ZERO: no effect. */ |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
649 uint8_t *result = |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
650 my_xasprintf ("%020lU %d", unicode_string, 33, 44, 55); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
651 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
|
652 ASSERT (result != NULL); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
653 ASSERT (u8_strcmp (result, expected) == 0); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
654 free (result); |
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 { |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
659 static const uint32_t unicode_string[] = /* RafaĆ Maszkowski */ |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
660 { |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
661 'R', 'a', 'f', 'a', 0x0142, ' ', 'M', 'a', 's', 'z', 'k', 'o', 'w', |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
662 's', 'k', 'i', 0 |
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 { |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
665 uint8_t *result = |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
666 my_xasprintf ("%llU %d", unicode_string, 33, 44, 55); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
667 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
|
668 ASSERT (result != NULL); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
669 ASSERT (u8_strcmp (result, expected) == 0); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
670 free (result); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
671 } |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
672 { /* Width. */ |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
673 uint8_t *result = |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
674 my_xasprintf ("%20llU %d", unicode_string, 33, 44, 55); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
675 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
|
676 ASSERT (result != NULL); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
677 ASSERT (u8_strcmp (result, expected) == 0); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
678 free (result); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
679 } |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
680 { /* FLAG_LEFT. */ |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
681 uint8_t *result = |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
682 my_xasprintf ("%-20llU %d", unicode_string, 33, 44, 55); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
683 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
|
684 ASSERT (result != NULL); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
685 ASSERT (u8_strcmp (result, expected) == 0); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
686 free (result); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
687 } |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
688 { /* FLAG_ZERO: no effect. */ |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
689 uint8_t *result = |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
690 my_xasprintf ("%020llU %d", unicode_string, 33, 44, 55); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
691 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
|
692 ASSERT (result != NULL); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
693 ASSERT (u8_strcmp (result, expected) == 0); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
694 free (result); |
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 |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
698 /* Test non-ASCII characters in the format string. */ |
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 { |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
701 uint8_t *result = |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
702 my_xasprintf ("\304rger", 33, 44, 55); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
703 ASSERT (result == NULL && errno == EINVAL); |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
704 } |
870029929d86
Formatted output functions for Unicode strings.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
705 } |