gecko-dev/extensions/xmlterm/linetest/unitest.c
svn%xmlterm.org 8747d1f24c xmlterm changes only;
Removed all wchar dependence by recoding the primitive Unicode string
functions used by lineterm. (FreeBSD doesn't have a wchar implementation!)
2000-03-31 04:14:39 +00:00

212 lines
8.0 KiB
C

/* unitest.c: Test driver for Unicode strings module unistring.c */
/* public declarations */
#include "unistring.h"
#include <assert.h>
int main(int argc, char *argv[])
{
UNICHAR dest[6], dest2[6];
printf("\nTesting ucscopy and ucslen ...\n");
ucscopy(dest, "abcdef", 0);
printf("ucscopy(dest, \"abcdef\", 0)\n");
ucscopy(dest, "abcdef", 6);
printf("ucscopy(dest, \"abcdef\", 6): dest=");
ucsprint(stdout, dest, 6);
printf(" (abcdef)\n");
ucscopy(dest, "", 6);
printf("ucscopy(dest, \"\", 6): dest=");
ucsprint(stdout, dest, 6);
printf(" (^@^@^@^@^@^@)\n");
printf("ucslen(dest) = %d (0)\n", ucslen(dest));
ucscopy(dest, "babc", 6);
printf("ucscopy(dest, \"babc\", 6): dest=");
ucsprint(stdout, dest, 6);
printf(" (babc^@^@)\n");
printf("ucslen(dest) = %d (4)\n", ucslen(dest));
printf("\nTesting ucschr ...\n");
printf("*ucschr(\"babc\", U_NUL) = '%c',%d ('',4)\n",
(char) *ucschr(dest, U_NUL), ucschr(dest, U_NUL)-dest);
printf("*ucschr(\"babc\", U_b_CHAR) = '%c',%d ('b',0)\n",
(char) *ucschr(dest, U_b_CHAR), ucschr(dest, U_b_CHAR)-dest);
printf("*ucschr(\"babc\", U_a_CHAR) = '%c',%d ('a',1)\n",
(char) *ucschr(dest, U_a_CHAR), ucschr(dest, U_a_CHAR)-dest);
printf("*ucschr(\"babc\", U_c_CHAR) = '%c',%d ('c',3)\n",
(char) *ucschr(dest, U_c_CHAR), ucschr(dest, U_c_CHAR)-dest);
printf("ucschr(\"babc\", U_d_CHAR) = 0x%x (0x0)\n", ucschr(dest, U_d_CHAR));
printf("\nTesting ucsrchr ...\n");
printf("*ucsrchr(\"babc\", U_NUL) = '%c',%d ('',4)\n",
(char) *ucsrchr(dest, U_NUL), ucsrchr(dest, U_NUL)-dest);
printf("*ucsrchr(\"babc\", U_b_CHAR) = '%c',%d ('b',2)\n",
(char) *ucsrchr(dest, U_b_CHAR), ucsrchr(dest, U_b_CHAR)-dest);
printf("*ucsrchr(\"babc\", U_a_CHAR) = '%c', %d ('a',1)\n",
(char) *ucsrchr(dest, U_a_CHAR), ucsrchr(dest, U_a_CHAR)-dest);
printf("*ucschr(\"babc\", U_c_CHAR) = '%c',%d ('c',3)\n",
(char) *ucschr(dest, U_c_CHAR), ucschr(dest, U_c_CHAR)-dest);
printf("ucsrchr(\"babc\", U_d_CHAR) = 0x%x (0x0)\n", ucsrchr(dest, U_d_CHAR));
printf("\nTesting ucscmp ...\n");
ucscopy(dest, "", 6);
ucscopy(dest2, "", 6);
printf("ucscmp(\"\",\"\") = %d (0)\n", ucscmp(dest,dest));
ucscopy(dest, "abc", 6);
printf("ucscmp(\"abc\",\"\") = %d (97)\n", ucscmp(dest,dest2));
printf("ucscmp(\"\",\"abc\") = %d (-97)\n", ucscmp(dest2,dest));
ucscopy(dest2, "abe", 6);
printf("ucscmp(\"abc\",\"abc\") = %d (0)\n", ucscmp(dest,dest));
printf("ucscmp(\"abc\",\"abe\") = %d (-2)\n", ucscmp(dest,dest2));
printf("ucscmp(\"abe\",\"abc\") = %d (2)\n", ucscmp(dest2,dest));
ucscopy(dest2, "abcd", 6);
printf("ucscmp(\"abc\",\"abcd\") = %d (-100)\n", ucscmp(dest,dest2));
printf("ucscmp(\"abcd\",\"abc\") = %d (100)\n", ucscmp(dest2,dest));
printf("\nTesting ucsncmp ...\n");
ucscopy(dest, "", 6);
ucscopy(dest2, "", 6);
printf("ucsncmp(\"\",\"\",6) = %d (0)\n", ucsncmp(dest,dest,6));
ucscopy(dest, "abc", 6);
printf("ucsncmp(\"abc\",\"\",6) = %d (97)\n", ucsncmp(dest,dest2,6));
printf("ucsncmp(\"\",\"abc\",6) = %d (-97)\n", ucsncmp(dest2,dest,6));
ucscopy(dest2, "abe", 6);
printf("ucsncmp(\"abc\",\"abc\",4) = %d (0)\n", ucsncmp(dest,dest,4));
printf("ucsncmp(\"abc\",\"abc\",3) = %d (0)\n", ucsncmp(dest,dest,3));
printf("ucsncmp(\"abc\",\"abe\",5) = %d (-2)\n", ucsncmp(dest,dest2,5));
printf("ucsncmp(\"abc\",\"abe\",4) = %d (-2)\n", ucsncmp(dest,dest2,4));
printf("ucsncmp(\"abc\",\"abe\",3) = %d (-2)\n", ucsncmp(dest,dest2,3));
printf("ucsncmp(\"abc\",\"abe\",2) = %d (0)\n", ucsncmp(dest,dest2,2));
printf("ucsncmp(\"abc\",\"abe\",1) = %d (0)\n", ucsncmp(dest,dest2,1));
printf("ucsncmp(\"abc\",\"abe\",0) = %d (0)\n", ucsncmp(dest,dest2,0));
printf("ucsncmp(\"abe\",\"abc\",4) = %d (2)\n", ucsncmp(dest2,dest,4));
printf("ucsncmp(\"abe\",\"abc\",3) = %d (2)\n", ucsncmp(dest2,dest,3));
ucscopy(dest, "abcde", 6);
printf("ucsncmp(\"abcde\",\"abe\",2) = %d (0)\n", ucsncmp(dest,dest2,2));
printf("ucsncmp(\"abcde\",\"abe\",3) = %d (-2)\n", ucsncmp(dest,dest2,3));
printf("ucsncmp(\"abcde\",\"abe\",4) = %d (-2)\n", ucsncmp(dest,dest2,4));
printf("ucsncmp(\"abe\",\"abcde\",2) = %d (0)\n", ucsncmp(dest2,dest,2));
printf("ucsncmp(\"abe\",\"abcde\",6) = %d (2)\n", ucsncmp(dest2,dest,6));
printf("\nTesting ucsncpy ...\n");
ucscopy(dest2, "abcde", 5);
ucsncpy(dest, dest2, 0);
printf("ucsncpy(dest, \"abcde\", 0)\n");
ucsncpy(dest, dest2, 5);
printf("ucsncpy(dest, \"abcde\", 5): dest=");
ucsprint(stdout, dest, 5);
printf(" (abcde)\n");
ucscopy(dest2, "", 6);
ucsncpy(dest, dest2, 5);
printf("ucsncpy(dest, \"\", 5): dest=");
ucsprint(stdout, dest, 5);
printf(" (^@^@^@^@^@)\n");
ucscopy(dest2, "bab", 6);
ucsncpy(dest, dest2, 5);
printf("ucsncpy(dest, \"bab\", 5): dest=");
ucsprint(stdout, dest, 5);
printf(" (bab^@^@)\n");
printf("\nTesting ucsstr ...\n");
ucscopy(dest, "abc", 6);
ucscopy(dest2, "", 6);
printf("ucsstr(\"abc\",\"\") = %d (0)\n", ucsstr(dest, dest2)-dest);
ucscopy(dest2, "a", 6);
printf("ucsstr(\"abc\",\"a\") = %d (0)\n", ucsstr(dest, dest2)-dest);
ucscopy(dest2, "ab", 6);
printf("ucsstr(\"abc\",\"ab\") = %d (0)\n", ucsstr(dest, dest2)-dest);
ucscopy(dest2, "abc", 6);
printf("ucsstr(\"abc\",\"abc\") = %d (0)\n", ucsstr(dest, dest2)-dest);
ucscopy(dest2, "bc", 6);
printf("ucsstr(\"abc\",\"bc\") = %d (1)\n", ucsstr(dest, dest2)-dest);
ucscopy(dest2, "c", 6);
printf("ucsstr(\"abc\",\"c\") = %d (2)\n", ucsstr(dest, dest2)-dest);
ucscopy(dest2, "d", 6);
printf("ucsstr(\"abc\",\"d\") = 0x%x (0x0)\n", ucsstr(dest, dest2));
ucscopy(dest2, "ac", 6);
printf("ucsstr(\"abc\",\"ac\") = 0x%x (0x0)\n", ucsstr(dest, dest2));
ucscopy(dest2, "acb", 6);
printf("ucsstr(\"abc\",\"acb\") = 0x%x (0x0)\n", ucsstr(dest, dest2));
ucscopy(dest2, "abcd", 6);
printf("ucsstr(\"abc\",\"abcd\") = 0x%x (0x0)\n", ucsstr(dest, dest2));
printf("\nTesting ucsspn ...\n");
ucscopy(dest, "babc", 6);
ucscopy(dest2, "", 6);
printf("ucsspn(\"babc\",\"\") = %d (0)\n", ucsspn(dest, dest2));
ucscopy(dest2, "b", 6);
printf("ucsspn(\"babc\",\"b\") = %d (1)\n", ucsspn(dest, dest2));
ucscopy(dest2, "ab", 6);
printf("ucsspn(\"babc\",\"ab\") = %d (3)\n", ucsspn(dest, dest2));
ucscopy(dest2, "abc", 6);
printf("ucsspn(\"babc\",\"abc\") = %d (4)\n", ucsspn(dest, dest2));
ucscopy(dest2, "cba", 6);
printf("ucsspn(\"babc\",\"cba\") = %d (4)\n", ucsspn(dest, dest2));
ucscopy(dest2, "abcd", 6);
printf("ucsspn(\"babc\",\"abcd\") = %d (4)\n", ucsspn(dest, dest2));
ucscopy(dest2, "abcde", 6);
printf("ucsspn(\"babc\",\"abcde\") = %d (4)\n", ucsspn(dest, dest2));
ucscopy(dest2, "c", 6);
printf("ucsspn(\"babc\",\"c\") = %d (0)\n", ucsspn(dest, dest2));
ucscopy(dest2, "d", 6);
printf("ucsspn(\"babc\",\"d\") = %d (0)\n", ucsspn(dest, dest2));
ucscopy(dest2, "cd", 6);
printf("ucsspn(\"babc\",\"cd\") = %d (0)\n", ucsspn(dest, dest2));
printf("\nTesting ucscspn ...\n");
ucscopy(dest, "babc", 6);
ucscopy(dest2, "", 6);
printf("ucscspn(\"babc\",\"\") = %d (4)\n", ucscspn(dest, dest2));
ucscopy(dest2, "b", 6);
printf("ucscspn(\"babc\",\"b\") = %d (0)\n", ucscspn(dest, dest2));
ucscopy(dest2, "ab", 6);
printf("ucscspn(\"babc\",\"ab\") = %d (0)\n", ucscspn(dest, dest2));
ucscopy(dest2, "abc", 6);
printf("ucscspn(\"babc\",\"abc\") = %d (0)\n", ucscspn(dest, dest2));
ucscopy(dest2, "cba", 6);
printf("ucscspn(\"babc\",\"cba\") = %d (0)\n", ucscspn(dest, dest2));
ucscopy(dest2, "abcd", 6);
printf("ucscspn(\"babc\",\"abcd\") = %d (0)\n", ucscspn(dest, dest2));
ucscopy(dest2, "abcde", 6);
printf("ucscspn(\"babc\",\"abcde\") = %d (0)\n", ucscspn(dest, dest2));
ucscopy(dest2, "a", 6);
printf("ucscspn(\"babc\",\"a\") = %d (1)\n", ucscspn(dest, dest2));
ucscopy(dest2, "c", 6);
printf("ucscspn(\"babc\",\"c\") = %d (3)\n", ucscspn(dest, dest2));
ucscopy(dest2, "cd", 6);
printf("ucscspn(\"babc\",\"cd\") = %d (3)\n", ucscspn(dest, dest2));
ucscopy(dest2, "d", 6);
printf("ucscspn(\"babc\",\"d\") = %d (4)\n", ucscspn(dest, dest2));
return;
}