* 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:
@@ -72,6 +72,10 @@ SimpleTest mbtest
|
|||||||
: mbtest.c
|
: mbtest.c
|
||||||
;
|
;
|
||||||
|
|
||||||
|
SimpleTest testmb
|
||||||
|
: testmb.c
|
||||||
|
;
|
||||||
|
|
||||||
SimpleTest tst-btowc
|
SimpleTest tst-btowc
|
||||||
: tst-btowc.c
|
: 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;
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user