aboutsummaryrefslogtreecommitdiff
path: root/stdio-common/tst-fphex.c
diff options
context:
space:
mode:
Diffstat (limited to 'stdio-common/tst-fphex.c')
-rw-r--r--stdio-common/tst-fphex.c57
1 files changed, 39 insertions, 18 deletions
diff --git a/stdio-common/tst-fphex.c b/stdio-common/tst-fphex.c
index 212e4ed9ec..c2e8961d62 100644
--- a/stdio-common/tst-fphex.c
+++ b/stdio-common/tst-fphex.c
@@ -3,30 +3,48 @@
#include <stdio.h>
#include <string.h>
+#ifndef WIDE
+# define STR_LEN strlen
+# define STR_CMP strcmp
+# define SPRINT snprintf
+# define CHAR_T char
+# define PRINT printf
+# define L_(Str) Str
+# define S "%s"
+#else
+# define STR_LEN wcslen
+# define SPRINT swprintf
+# define STR_CMP wcscmp
+# define CHAR_T wchar_t
+# define PRINT wprintf
+# define L_(Str) L##Str
+# define S "%ls"
+#endif
+
struct testcase
{
double value;
- const char *fmt;
- const char *expect;
+ const CHAR_T *fmt;
+ const CHAR_T *expect;
};
static const struct testcase testcases[] =
{
- { 0x0.0030p+0, "%a", "0x1.8p-11" },
- { 0x0.0040p+0, "%a", "0x1p-10" },
- { 0x0.0030p+0, "%040a", "0x00000000000000000000000000000001.8p-11" },
- { 0x0.0040p+0, "%040a", "0x0000000000000000000000000000000001p-10" },
- { 0x0.0040p+0, "%40a", " 0x1p-10" },
- { 0x0.0040p+0, "%#40a", " 0x1.p-10" },
- { 0x0.0040p+0, "%-40a", "0x1p-10 " },
- { 0x0.0040p+0, "%#-40a", "0x1.p-10 " },
- { 0x0.0030p+0, "%040e", "00000000000000000000000000007.324219e-04" },
- { 0x0.0040p+0, "%040e", "00000000000000000000000000009.765625e-04" },
+ { 0x0.0030p+0, L_("%a"), L_("0x1.8p-11") },
+ { 0x0.0040p+0, L_("%a"), L_("0x1p-10") },
+ { 0x0.0030p+0, L_("%040a"), L_("0x00000000000000000000000000000001.8p-11") },
+ { 0x0.0040p+0, L_("%040a"), L_("0x0000000000000000000000000000000001p-10") },
+ { 0x0.0040p+0, L_("%40a"), L_(" 0x1p-10") },
+ { 0x0.0040p+0, L_("%#40a"), L_(" 0x1.p-10") },
+ { 0x0.0040p+0, L_("%-40a"), L_("0x1p-10 ") },
+ { 0x0.0040p+0, L_("%#-40a"), L_("0x1.p-10 ") },
+ { 0x0.0030p+0, L_("%040e"), L_("00000000000000000000000000007.324219e-04") },
+ { 0x0.0040p+0, L_("%040e"), L_("00000000000000000000000000009.765625e-04") },
};
static int
-do_test (int argc, char **argv)
+do_test (void)
{
const struct testcase *t;
int result = 0;
@@ -35,12 +53,14 @@ do_test (int argc, char **argv)
t < &testcases[sizeof testcases / sizeof testcases[0]];
++t)
{
- char buf[1024];
- int n = snprintf (buf, sizeof buf, t->fmt, t->value);
- if (n != strlen (t->expect) || strcmp (buf, t->expect) != 0)
+ CHAR_T buf[1024];
+ int n = SPRINT (buf, sizeof buf / sizeof (buf[0]), t->fmt, t->value);
+ if (n != STR_LEN (t->expect) || STR_CMP (buf, t->expect) != 0)
{
- printf ("%s\tExpected \"%s\" (%Zu)\n\tGot \"%s\" (%d, %Zu)\n",
- t->fmt, t->expect, strlen (t->expect), buf, n, strlen (buf));
+ PRINT (L_("" S "\tExpected \"" S "\" (%Zu)\n\tGot \""
+ S "\" (%d, %Zu)\n"),
+ t->fmt, t->expect, STR_LEN (t->expect),
+ buf, n, STR_LEN (buf));
result = 1;
}
}
@@ -48,4 +68,5 @@ do_test (int argc, char **argv)
return result;
}
+#define TEST_FUNCTION do_test ()
#include "../test-skeleton.c"