tizen 2.3.1 release
[framework/base/tizen-locale.git] / localedata / tests-mbwc / dat_swscanf.c
1 /*
2  *  TEST SUITE FOR MB/WC FUNCTIONS IN CLIBRARY
3  *
4  *       FILE:  dat_swscanf.c
5  *
6  *       SWSCANF:  int  swscanf (const wchar_t *s, const wchar_t *fmt, ...);
7  */
8
9
10 #include <errno.h>
11 #include <stdlib.h>
12 #include "tst_types.h"
13 #include "tgn_locdef.h"
14
15
16 TST_SWSCANF tst_swscanf_loc [] =
17 {
18   {
19     { Tswscanf, TST_LOC_de },
20     {
21       /*------------------------ 01 -----------------------*/
22       { { {
23         0x002D, 0x0031,         0x003A,    /* %d: -1   */
24         0x0032,                 0x003A,    /* %u:  2   */
25         0x0033, 0x002C, 0x0033, 0x003A,    /* %f:  3.3 */
26         0x00E4,                 0x003A,    /* %c: 'ä'  */
27         0x00C4, 0x00DC, 0x0000, 0x0000,    /* %s: "ÄÜ" */
28       },
29           L"%d:%u:%f:%c:%s", 0
30       },
31         { /* The fields are: err_val, ret_flag, ret_val,
32              val_int, val_uns, val_flt, val_c, val_s, val_S.  */
33           0,1,5,
34           -1, 2, 3.3, 'ä', "ÄÜ", { 0x0000, },
35         },
36       },
37       /*------------------------ 02 -----------------------*/
38       { { {
39         0x00E4, 0x00C4, 0x0000                 /* "äÄ" */
40       },
41           L"%lc", 'C'
42       },
43         { 0,1,1,
44           0,0,0,0,"", { 0x00E4, 0x0000 },
45         },
46       },
47       /*------------------------ 03 -----------------------*/
48       { { {
49         0x00E4, 0x00C4, 0x0000                 /* "äÄ" */
50       },
51           L"%ls", 'S'
52       },
53         { 0,1,1,
54           0,0,0,0,"", { 0x00E4, 0x00C4, 0x0000 },
55         },
56       },
57       /*------------------------ 04 -----------------------*/
58       /* <NO_WAIVER> x 2 */
59       { { {
60         0x00E4, 0x00C4, 0x0000                 /* "äÄ" */
61       },
62           L"1%d:2%d:3%d:4%d:5%d:6%d:7%d:8%d:9%d", 0
63       },
64 #ifdef SHOJI_IS_RIGHT
65         { 1,EINVAL,1,WEOF,
66           0,0,0,0,"", { 0x0000 },
67 #else
68         { 0,1,0,
69           0,0,0,0,"", { 0x0000 },
70 #endif
71         },
72       },
73       /*---------------------------------------------------*/
74       { .is_last = 1}   /* Last element.  */
75     }
76   },
77   {
78     { Tswscanf, TST_LOC_enUS },
79     {
80       /*------------------------ 01 -----------------------*/
81       { { { 0x002D, 0x0031,                                         0x003A,
82             0x0032,                                                 0x003A,
83             0x0035, 0x0034, 0x002E, 0x0033, 0x0045, 0x002D, 0x0031, 0x003A,
84             0x0041,                                                 0x003A,
85             0x0061, 0x0062, 0x0000,                                 0x0000,
86       },
87           L"%d:%u:%f:%c:%s", 0
88       },
89         { 0,1,5,
90           -1, 2, 5.43, 'A', "ab", { 0x0000 },
91         },
92       },
93       /*------------------------ 02 -----------------------*/
94       /* <NO_WAIVER> x 2 */
95       { { {
96         0x0063, 0x0064, 0x0000
97       },
98           L"%C", 'C'
99       },
100         { 0,1,1,
101           0,0,0,0,"", { 0x0063, 0x0000 },
102         },
103       },
104       /*------------------------ 03 -----------------------*/
105       { { {
106         0x0063, 0x0064, 0x0000
107       },
108           L"%S", 'S'
109       },
110         { 0,1,1,
111           0,0,0,0,"", { 0x0063, 0x0064, 0x0000 },
112         },
113       },
114       /*---------------------------------------------------*/
115       { .is_last = 1}   /* Last element.  */
116     }
117   },
118   {
119     { Tswscanf, TST_LOC_eucJP },
120     {
121       /*------------------------ 01 -----------------------*/
122       { { { 0x002D, 0x0031,         0x003A,
123             0x0032,                 0x003A,
124             0x0033, 0x002E, 0x0033, 0x003A,
125             0x0062,                 0x003A,
126             0x0061, 0x0062, 0x0000, 0x0000,
127       },
128           L"%d:%u:%f:%c:%s", 0
129       },
130         { 0,1,5,
131           -1, 2, 3.3, 'b', "ab", { 0x0000 }
132         },
133       },
134       /*------------------------ 02 -----------------------*/
135       { { {
136         0x30A2, 0x30A4, 0x0000
137       },
138           L"%ls", 'S'
139       },
140         { 0,1,1,
141           0,0,0,0,"", { 0x30A2, 0x30A4, 0x0000 }
142         },
143       },
144       /*------------------------ 03 -----------------------*/
145       { { {
146         0x0031,                 0x003A,
147         0x0030,                 0x003A,
148         0x0033, 0x002E, 0x0039, 0x003A,
149         0x0061,                 0x003A,
150         0x0063, 0x0064, 0x0000, 0x0000,
151       },
152           L"%2$d:%1$u:%3$f:%4$c:%5$s", 0
153       },
154         { 0,1,5,
155           0, 1, 3.9, 'a', "cd", { 0x0000 }
156         },
157       },
158 #ifdef SHOJI_IS_RIGHT
159       /* XXX This test does not make sense.  The format string is
160          L"\x1\x2\x25\x53" and it is supposed to match the words
161          0x30A2, 0x30A4, 0x0001.  */
162       /*------------------------ 04 -----------------------*/
163       /* <NO_WAIVER> x 2 */
164       { { {
165         0x30A2, 0x30A4, 0x0001, 0x0000
166       },
167           { 0x0001,0x0002,0x0025,0x0053,0x0000 }, 'S'
168       },
169         { EILSEQ,1,EOF,
170           0,0,0,0,"", { 0x0000 }
171         },
172       },
173 #endif
174       /*---------------------------------------------------*/
175       { .is_last = 1}   /* Last element.  */
176     }
177   },
178   {
179     { Tswscanf, TST_LOC_end }
180   }
181 };