Blame localedata/tests-mbwc/dat_wctomb.c

Packit 6c4009
/*
Packit 6c4009
 *  TEST SUITE FOR MB/WC FUNCTIONS IN C LIBRARY
Packit 6c4009
 *
Packit 6c4009
 *	 FILE:	dat_wctomb.c
Packit 6c4009
 *
Packit 6c4009
 *	 WCTOMB:  int wctomb (char *s, wchar_t wc)
Packit 6c4009
 */
Packit 6c4009
Packit 6c4009
Packit 6c4009
/*
Packit 6c4009
 *  FUNCTION:
Packit 6c4009
 *
Packit 6c4009
 *	  int  wctomb (char *s, wchar_t wc);
Packit 6c4009
 *
Packit 6c4009
 *	       return: the number of bytes
Packit 6c4009
 *
Packit 6c4009
 *  NOTE:
Packit 6c4009
 *
Packit 6c4009
 *	 o When you feed a null pointer for a string (s) to the function,
Packit 6c4009
 *	   set s_flg=0 instead of putting just a 'NULL' there.
Packit 6c4009
 *	   Even if you put a 'NULL', it means a null string as well as "".
Packit 6c4009
 *
Packit 6c4009
 *	 o When s is a null pointer, the function checks state dependency.
Packit 6c4009
 *
Packit 6c4009
 *	       state-dependent encoding	     - return  NON-zero
Packit 6c4009
 *	       state-independent encoding    - return  0
Packit 6c4009
 *
Packit 6c4009
 *	   If state-dependent encoding is expected, set
Packit 6c4009
 *
Packit 6c4009
 *	       s_flg = 0,  ret_flg = 0,	 ret_val = +1
Packit 6c4009
 *
Packit 6c4009
 *	   If state-independent encoding is expected, set
Packit 6c4009
 *
Packit 6c4009
 *	       s_flg = 0,  ret_flg = 0,	 ret_val = 0
Packit 6c4009
 *
Packit 6c4009
 *
Packit 6c4009
 *	   When you set ret_flg=1, the test program simply compares an
Packit 6c4009
 *	   actual return value with an expected value. You can check
Packit 6c4009
 *	   state-independent case (return value is 0) in that way, but
Packit 6c4009
 *	   you can not check state-dependent case. So when you check
Packit 6c4009
 *	   state- dependency in this test function: tst_wctomb(), set
Packit 6c4009
 *	   ret_flg=0 always. It's a special case, and the test
Packit 6c4009
 *	   function takes care of it.
Packit 6c4009
 *
Packit 6c4009
 *	      Input	  Expect
Packit 6c4009
 *
Packit 6c4009
 *		s_flg=0		  ret_flg=0
Packit 6c4009
 *		|		  |
Packit 6c4009
 *	      { 0, 0 },	  { 0, 0, 0,  x,  "" }
Packit 6c4009
 *		   |		      |
Packit 6c4009
 *		   not used	      ret_val: 0/+1
Packit 6c4009
 * (expected val)
Packit 6c4009
 */
Packit 6c4009
Packit 6c4009
Packit 6c4009
TST_WCTOMB tst_wctomb_loc [] = {
Packit 6c4009
  {
Packit 6c4009
    { Twctomb, TST_LOC_de },
Packit 6c4009
    {
Packit 6c4009
      /* #01 : normal case		   */
Packit 6c4009
      { /*input.*/ { 1,	   0x00C4  },
Packit 6c4009
	/*expect*/ { 0,1,1,  "Ä"	   },
Packit 6c4009
      },
Packit 6c4009
      /* #02 : normal case		   */
Packit 6c4009
      { /*input.*/ { 1,	   0x00DC  },
Packit 6c4009
	/*expect*/ { 0,1,1,  "Ü"	   },
Packit 6c4009
      },
Packit 6c4009
      /* #03 : normal case		   */
Packit 6c4009
      { /*input.*/ { 1,	   0x0092  },
Packit 6c4009
	/*expect*/ { 0,1,1,  "\222"  },
Packit 6c4009
      },
Packit 6c4009
      /* #04 : error case		   */
Packit 6c4009
      { /*input.*/ { 1,	   0x3041  },
Packit 6c4009
	/*expect*/ { 0,1,-1, ""	   },
Packit 6c4009
      },
Packit 6c4009
      /* #05 : state dependency	   */
Packit 6c4009
      { /*input.*/ { 0,	   0x0000  },
Packit 6c4009
	/*expect*/ { 0,0,0,  ""	   },
Packit 6c4009
      },
Packit 6c4009
      { .is_last = 1 }
Packit 6c4009
    }
Packit 6c4009
  },
Packit 6c4009
  {
Packit 6c4009
    { Twctomb, TST_LOC_enUS },
Packit 6c4009
    {
Packit 6c4009
      /* #01 : normal case		   */
Packit 6c4009
      { /*input.*/ { 1,	   0x0041  },
Packit 6c4009
	/*expect*/ { 0,1,1,  "A"	   },
Packit 6c4009
      },
Packit 6c4009
      /* #02 : normal case		   */
Packit 6c4009
      { /*input.*/ { 1,	   0x0042  },
Packit 6c4009
	/*expect*/ { 0,1,1,  "B"	   },
Packit 6c4009
      },
Packit 6c4009
      /* #03 : error case		   */
Packit 6c4009
      /* <WAIVER> */
Packit 6c4009
      { /*input.*/ { 1,	   0x00C4  },
Packit 6c4009
	/*expect*/ { 0,1,-1, ""	   },
Packit 6c4009
      },
Packit 6c4009
      /* #04 : error case		   */
Packit 6c4009
      { /*input.*/ { 1,	   0x30A4  },
Packit 6c4009
	/*expect*/ { 0,1,-1, ""	   },
Packit 6c4009
      },
Packit 6c4009
      /* #05 : state dependency	   */
Packit 6c4009
      { /*input.*/ { 0,	   0x0000  },
Packit 6c4009
	/*expect*/ { 0,0,0,  ""	   },
Packit 6c4009
      },
Packit 6c4009
      { .is_last = 1 }
Packit 6c4009
    }
Packit 6c4009
  },
Packit 6c4009
  {
Packit 6c4009
    { Twctomb, TST_LOC_eucJP },
Packit 6c4009
    {
Packit 6c4009
      /* #01 : normal case		   */
Packit 6c4009
      { /*input.*/ { 1,	   0x3042  },
Packit 6c4009
	/*expect*/ { 0,1,2,  "\244\242"   },
Packit 6c4009
      },
Packit 6c4009
      /* #02 : normal case		   */
Packit 6c4009
      { /*input.*/ { 1,	   0x3044  },
Packit 6c4009
	/*expect*/ { 0,1,2,  "\244\244"   },
Packit 6c4009
      },
Packit 6c4009
      /* #03 : normal case		   */
Packit 6c4009
      { /*input.*/ { 1,	   0x008E  },
Packit 6c4009
	/*expect*/ { 0,1,-1, ""	   },
Packit 6c4009
      },
Packit 6c4009
      /* #04 : jisX0212		   */
Packit 6c4009
      { /*input.*/ { 1,	   0x00C4	  },
Packit 6c4009
	/*expect*/ { 0,1,3,  "\217\252\243" }, /* jisx0210  returns 3 */
Packit 6c4009
      },
Packit 6c4009
      /* #05 : state dependency	   */
Packit 6c4009
      { /*input.*/ { 0,	   0x008E  },
Packit 6c4009
	/*expect*/ { 0,0,0,  ""	   },
Packit 6c4009
      },
Packit 6c4009
      { .is_last = 1 }
Packit 6c4009
    }
Packit 6c4009
  },
Packit 6c4009
  {
Packit 6c4009
    { Twctomb, TST_LOC_end }
Packit 6c4009
  }
Packit 6c4009
};