* 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:
Oliver Tappe 2009-07-23 13:57:38 +00:00
parent 130e0a69f8
commit 5c454bb4ce
2 changed files with 62 additions and 0 deletions

View File

@ -72,6 +72,10 @@ SimpleTest mbtest
: mbtest.c
;
SimpleTest testmb
: testmb.c
;
SimpleTest tst-btowc
: tst-btowc.c
;

View File

@ -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;
}