* added another tiny glibc-test, testmb.c, which covers a couple of mb-/wc-related
functions (in a failed attempt to reproduce #4113) git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31717 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
parent
130e0a69f8
commit
5c454bb4ce
|
@ -72,6 +72,10 @@ SimpleTest mbtest
|
|||
: mbtest.c
|
||||
;
|
||||
|
||||
SimpleTest testmb
|
||||
: testmb.c
|
||||
;
|
||||
|
||||
SimpleTest tst-btowc
|
||||
: tst-btowc.c
|
||||
;
|
||||
|
|
|
@ -0,0 +1,58 @@
|
|||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
|
||||
int
|
||||
main(int argc, char *argv[])
|
||||
{
|
||||
wchar_t w[10];
|
||||
char c[10];
|
||||
int i;
|
||||
int lose = 0;
|
||||
|
||||
i = mbstowcs(w, "bar", 4);
|
||||
if (!(i == 3 && w[1] == 'a')) {
|
||||
puts("mbstowcs FAILED!");
|
||||
lose = 1;
|
||||
}
|
||||
|
||||
mbstowcs(w, "blah", 5);
|
||||
i = wcstombs(c, w, 10);
|
||||
if (i != 4) {
|
||||
puts("wcstombs FAILED!");
|
||||
lose = 1;
|
||||
}
|
||||
|
||||
if (mblen("foobar", 7) != 1) {
|
||||
puts("mblen 1 FAILED!");
|
||||
lose = 1;
|
||||
}
|
||||
|
||||
if (mblen("", 1) != 0) {
|
||||
puts("mblen 2 FAILED!");
|
||||
lose = 1;
|
||||
}
|
||||
|
||||
{
|
||||
int r;
|
||||
char c = 'x';
|
||||
wchar_t wc;
|
||||
char mbc[MB_CUR_MAX];
|
||||
|
||||
if ((r = mbtowc(&wc, &c, MB_CUR_MAX)) <= 0) {
|
||||
printf("conversion to wide failed, result: %d\n", r);
|
||||
lose = 1;
|
||||
} else {
|
||||
printf("wide value: 0x%04lx\n", (unsigned long) wc);
|
||||
mbc[0] = '\0';
|
||||
if ((r = wctomb(mbc, wc)) <= 0) {
|
||||
printf("conversion to multibyte failed, result: %d\n", r);
|
||||
lose = 1;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
puts(lose ? "Test FAILED!" : "Test succeeded.");
|
||||
return lose;
|
||||
}
|
Loading…
Reference in New Issue