about summary refs log tree commit diff
path: root/localedata/tests-mbwc/dat_mbtowc.c
diff options
context:
space:
mode:
authorAndreas Jaeger <aj@suse.de>2000-06-29 07:13:12 +0000
committerAndreas Jaeger <aj@suse.de>2000-06-29 07:13:12 +0000
commit2e23c3cc3fede8cc080af74f1b4f124b12955138 (patch)
tree40f76b9203246a3e70247b56743b442313179732 /localedata/tests-mbwc/dat_mbtowc.c
parent4eeccd750dce53d7b168d227cb5cfcf70d674310 (diff)
downloadglibc-2e23c3cc3fede8cc080af74f1b4f124b12955138.tar.gz
glibc-2e23c3cc3fede8cc080af74f1b4f124b12955138.tar.xz
glibc-2e23c3cc3fede8cc080af74f1b4f124b12955138.zip
Update.
2000-06-29  Andreas Jaeger  <aj@suse.de>

	* Makefile (locale_test_suite): Add new test files.
	(tst_mblen-ENV): New.
	(tst_mbtowc-ENV): New.
	(tst_strcoll-ENV): New.
	(tst_strxfrm-ENV): New.
	(tst_wctomb-ENV): New.

	* tests-mbwc/tst_wctomb.c: New test file from Shoji Kuwabara
	<kuwahara@cthulhu.engr.sgi.com>.
	* tests-mbwc/dat_wctomb.c: Likewise.
	* tests-mbwc/tst_mbtowc.c: Likewise.
	* tests-mbwc/dat_mbtowc.c: Likewise.
	* tests-mbwc/tst_strxfrm.c: Likewise.
	* tests-mbwc/dat_strxfrm.c: Likewise.
	* tests-mbwc/dat_strcoll.c: Likewise.
	* tests-mbwc/tst_strcoll.c: Likewise.
	* tests-mbwc/tst_mblen.c: Likewise.
	* tests-mbwc/dat_mblen.c: Likewise.
Diffstat (limited to 'localedata/tests-mbwc/dat_mbtowc.c')
-rw-r--r--localedata/tests-mbwc/dat_mbtowc.c327
1 files changed, 327 insertions, 0 deletions
diff --git a/localedata/tests-mbwc/dat_mbtowc.c b/localedata/tests-mbwc/dat_mbtowc.c
new file mode 100644
index 0000000000..1e3359465c
--- /dev/null
+++ b/localedata/tests-mbwc/dat_mbtowc.c
@@ -0,0 +1,327 @@
+/*
+ *  TEST SUITE FOR MB/WC FUNCTIONS IN C LIBRARY
+ *
+ *	 FILE:	dat_mbtowc.c
+ *
+ *	 MBTOWC:  int  mbtowc (wchar_t *wp, char *s, size_t n);
+ */
+
+/*  NOTE:
+ *
+ *	 int  mbtowc (wchar_t *wp, char *s, size_t n);
+ *
+ *	 where	     n: a maximum number of bytes
+ *		return: the number of bytes
+ *
+ *
+ *	  o When you feed a null pointer for a string (s) to the function,
+ *	    set s_flg=0 instead of putting just a 'NULL' there.
+ *	    Even if you put a 'NULL', it means a null string as well as "".
+ *
+ *	  o When s is a null pointer, the function checks state dependency.
+ *
+ *		state-dependent encoding      - return	NON-zero
+ *		state-independent encoding    - return	0
+ *
+ *	    If state-dependent encoding is expected, set
+ *
+ *		s_flg = 0,  ret_flg = 0,  ret_val = +1
+ *
+ *	    If state-independent encoding is expected, set
+ *
+ *		s_flg = 0,  ret_flg = 0,  ret_val = 0
+ *
+ *
+ *	    When you set ret_flg=1, the test program simply compares
+ *	    an actual return value with an expected value. You can
+ *	    check state-independent case (return value is 0) in that
+ *	    way, but you can not check state-dependent case. So when
+ *	    you check state- dependency in this test function:
+ *	    tst_mbtowc(), set ret_flg=0 always. It's a special case
+ *	    and the test function takes care of it.
+ *
+ *			  w_flg
+ *			  |	s: (a null string; can't be (char *)NULL)
+ *			  |	|
+ *	       input.	{ 1, 0, (char)NULL, MB_LEN_MAX	},
+ *			     |
+ *			     s_flg=0: makes _s_ a null pointer.
+ *
+ *	       expect	{ 0,0,0,x,     0x0000	  },
+ *			      | |
+ *			      | ret_val: 0/+1
+ *			      ret_flg=0
+ *
+ *
+ *    Test data for State dependent encodings:
+ *
+ *	  mbtowc( NULL, NULL, 0 );	 ... first  data
+ *	  mbtowc( &wc,	s1,  n1 );	 ... second data
+ *	  mbtowc( &wc,	s2,  n2 );	 ... third  data
+ * */
+
+#include <limits.h>
+
+TST_MBTOWC tst_mbtowc_loc [] = {
+  {
+    { Tmbtowc, TST_LOC_de },
+    {
+      { /*----------------- #01 -----------------*/
+	{
+	  {
+	    { 1, 1, "üäö",	    1	       },
+	    { 1, 1, "üäö",	    2	       },
+	    { 1, 1, "üäö",	    MB_LEN_MAX },
+	  }
+	},
+	{
+	  {
+	    { 0,	  0,  1,  1,   0x00FC },
+	    { 0,	  0,  1,  1,   0x00FC },
+	    { 0,	  0,  1,  1,   0x00FC },
+	  }
+	}
+      },
+      { /*----------------- #02 -----------------*/
+	{
+	  {
+	    { 1, 1, "\177",	    MB_LEN_MAX },
+	    { 1, 1, "\200",	    MB_LEN_MAX },
+	    { 1, 1, "\201",	    MB_LEN_MAX },
+	  }
+	},
+	{
+	  {
+	    { 0,	  0,  1,  1,   0x007F },
+	    { 1,	  0,  1,  1,   0x0080 },
+	    { 1,	  0,  1,  1,   0x0081 },
+	  }
+	}
+      },
+      { /*----------------- #03 -----------------*/
+	{
+	  {
+	    { 1, 1, "",	    MB_LEN_MAX },
+	    { 0, 1, "üäö",	    1	       },
+	    { 0, 1, "üäö",	    2	       },
+	  }
+	},
+	{
+	  {
+	    { 0,	  0,  1,  0,   0x0000 },
+	    { 0,	  0,  1,  1,   0x0000 },
+	    { 0,	  0,  1,  1,   0x0000 },
+	  }
+	}
+      },
+      { /*----------------- #04 -----------------*/
+	{
+	  {
+	    { 0, 1, "üäö",	    MB_LEN_MAX },
+	    { 0, 1, "\177",	    MB_LEN_MAX },
+	    { 0, 1, "",	    MB_LEN_MAX },
+	  }
+	},
+	{
+	  {
+	    { 0,	  0,  1,  1,   0x0000 },
+	    { 0,	  0,  1,  1,   0x0000 },
+	    { 0,	  0,  1,  0,   0x0000 },
+	  }
+	}
+      },
+      { /*----------------- #05 -----------------*/
+	{
+	  {
+	    { 0, 1, "üäö",	    MB_LEN_MAX },
+	    { 0, 1, "\177",	    MB_LEN_MAX },
+	    { 0, 0, (char)NULL, MB_LEN_MAX },
+	  }
+	},
+	{
+	  {
+	    { 0,	  0,  1,  1,   0x0000 },
+	    { 0,	  0,  1,  1,   0x0000 },
+	    { 0,	  0,  0,  0,   0x0000 },
+	  }
+	}
+      },
+      { is_last: 1 }
+    }
+  },
+  {
+    { Tmbtowc, TST_LOC_enUS },
+    {
+      { /*----------------- #01 -----------------*/
+	{
+	  {
+	    { 1, 1, "ABC",	    1	       },
+	    { 1, 1, "ABC",	    2	       },
+	    { 1, 1, "ABC",	    MB_LEN_MAX },
+	  }
+	},
+	{
+	  {
+	    { 0,	  0,  1,  1,   0x0041 },
+	    { 0,	  0,  1,  1,   0x0041 },
+	    { 0,	  0,  1,  1,   0x0041 },
+	  }
+	}
+      },
+      { /*----------------- #02 -----------------*/
+	{
+	  {
+	    { 1, 1, "\177",	    MB_LEN_MAX },
+	    { 1, 1, "\200",	    MB_LEN_MAX },
+	    { 1, 1, "\201",	    MB_LEN_MAX },
+	  }
+	},
+	{
+	  {
+	    { 0,	  0,  1,  1,   0x007F },
+	    { 1, EILSEQ,  1, -1,   0x0000 },
+	    { 1, EILSEQ,  1, -1,   0x0000 },
+	  }
+	}
+      },
+      { /*----------------- #03 -----------------*/
+	{
+	  {
+	    { 1, 1, "",	    MB_LEN_MAX },
+	    { 0, 1, "ABC",	    1	       },
+	    { 0, 1, "ABC",	    2	       },
+	  }
+	},
+	{
+	  {
+	    { 0,	  0,  1,  0,   0x0000 },
+	    { 0,	  0,  1,  1,   0x0000 },
+	    { 0,	  0,  1,  1,   0x0000 },
+	  }
+	}
+      },
+      { /*----------------- #04 -----------------*/
+	{
+	  {
+	    { 0, 1, "ABC",	    MB_LEN_MAX },
+	    { 0, 1, "\177",	    MB_LEN_MAX },
+	    { 0, 1, "",	    MB_LEN_MAX },
+	  }
+	},
+	{
+	  {
+	    { 0,	  0,  1,  1,   0x0000 },
+	    { 0,	  0,  1,  1,   0x0000 },
+	    { 0,	  0,  1,  0,   0x0000 },
+	  }
+	}
+      },
+      { /*----------------- #05 -----------------*/
+	{
+	  {
+	    { 0, 1, "ABC",	    MB_LEN_MAX },
+	    { 0, 1, "\177",	    MB_LEN_MAX },
+	    { 0, 0, (char)NULL, MB_LEN_MAX },
+	  }
+	},
+	{
+	  {
+	    { 0,	  0,  1,  1,   0x0000 },
+	    { 0,	  0,  1,  1,   0x0000 },
+	    { 0,	  0,  0,  0,   0x0000 },
+	  }
+	}
+      },
+      { is_last: 1 }
+    }
+  },
+  {
+    { Tmbtowc, TST_LOC_eucJP },
+    {
+      { /*----------------- #01 -----------------*/
+	{
+	  {
+	    { 1, 1, "\244\242A",      1          },
+	    { 1, 1, "\244\242A",      2          },
+	    { 1, 1, "\244\242A",      MB_LEN_MAX },
+	  }
+	},
+	{
+	  {
+	    { 1, EILSEQ,  1, -1,   0x0000 },
+	    { 0,	  0,  1,  2,   0x3042 },
+	    { 0,	  0,  1,  2,   0x3042 },
+	  }
+	}
+      },
+      { /*----------------- #02 -----------------*/
+	{
+	  {
+	    { 1, 1, "\177\244\242",   MB_LEN_MAX },
+	    { 1, 1, "\200\244\242",   MB_LEN_MAX },
+	    { 1, 1, "\201\244\242",   MB_LEN_MAX },
+	  }
+	},
+	{
+	  {
+	    { 0,	  0,  1, +1,   0x007F },
+	    { 1, EILSEQ,  1, -1,   0x0000 },
+	    { 1, EILSEQ,  1, -1,   0x0000 },
+	  }
+	}
+      },
+      { /*----------------- #03 -----------------*/
+	{
+	  {
+	    { 1, 1, "",         MB_LEN_MAX },
+	    { 0, 1, "\244\242A",      1          },
+	    { 0, 1, "\244\242A",      2          },
+	  }
+	},
+	{
+	  {
+	    { 0,	  0,  1,  0,   0x0000 },
+	    { 1, EILSEQ,  1, -1,   0x0000 },
+	    { 0,	  0,  1,  2,   0x0000 },
+	  }
+	}
+      },
+      { /*----------------- #04 -----------------*/
+	{
+	  {
+	    { 0, 1, "\244\242A",      MB_LEN_MAX },
+	    { 0, 1, "\177\244\242",   MB_LEN_MAX },
+	    { 0, 1, "",         MB_LEN_MAX },
+	  }
+	},
+	{
+	  {
+	    { 0,	  0,  1,  2,   0x0000 },
+	    { 0,	  0,  1, +1,   0x0000 },
+	    { 0,	  0,  1,  0,   0x0000 },
+	  }
+	}
+      },
+      { /*----------------- #05 -----------------*/
+	{
+	  {
+	    { 0, 1, "\244\242A",      MB_LEN_MAX },
+	    { 0, 1, "\177\244\242",   MB_LEN_MAX },
+	    { 0, 0, (char)NULL, MB_LEN_MAX },
+	  }
+	},
+	{
+	  {
+	    { 0,	  0,  1,  2,   0x0000 },
+	    { 0,	  0,  1, +1,   0x0000 },
+	    { 0,	  0,  0,  0,   0x0000 },
+	  }
+	}
+      },
+      { is_last: 1 }
+    }
+  },
+  {
+    { Tmbtowc, TST_LOC_end }
+  }
+};