(root)/
glibc-2.38/
localedata/
tests-mbwc/
dat_wctomb.c
       1  /*
       2   *  TEST SUITE FOR MB/WC FUNCTIONS IN C LIBRARY
       3   *
       4   *	 FILE:	dat_wctomb.c
       5   *
       6   *	 WCTOMB:  int wctomb (char *s, wchar_t wc)
       7   */
       8  
       9  
      10  /*
      11   *  FUNCTION:
      12   *
      13   *	  int  wctomb (char *s, wchar_t wc);
      14   *
      15   *	       return: the number of bytes
      16   *
      17   *  NOTE:
      18   *
      19   *	 o When you feed a null pointer for a string (s) to the function,
      20   *	   set s_flg=0 instead of putting just a 'NULL' there.
      21   *	   Even if you put a 'NULL', it means a null string as well as "".
      22   *
      23   *	 o When s is a null pointer, the function checks state dependency.
      24   *
      25   *	       state-dependent encoding	     - return  NON-zero
      26   *	       state-independent encoding    - return  0
      27   *
      28   *	   If state-dependent encoding is expected, set
      29   *
      30   *	       s_flg = 0,  ret_flg = 0,	 ret_val = +1
      31   *
      32   *	   If state-independent encoding is expected, set
      33   *
      34   *	       s_flg = 0,  ret_flg = 0,	 ret_val = 0
      35   *
      36   *
      37   *	   When you set ret_flg=1, the test program simply compares an
      38   *	   actual return value with an expected value. You can check
      39   *	   state-independent case (return value is 0) in that way, but
      40   *	   you can not check state-dependent case. So when you check
      41   *	   state- dependency in this test function: tst_wctomb(), set
      42   *	   ret_flg=0 always. It's a special case, and the test
      43   *	   function takes care of it.
      44   *
      45   *	      Input	  Expect
      46   *
      47   *		s_flg=0		  ret_flg=0
      48   *		|		  |
      49   *	      { 0, 0 },	  { 0, 0, 0,  x,  "" }
      50   *		   |		      |
      51   *		   not used	      ret_val: 0/+1
      52   * (expected val)
      53   */
      54  
      55  
      56  TST_WCTOMB tst_wctomb_loc [] = {
      57    {
      58      { Twctomb, TST_LOC_de },
      59      {
      60        /* #01 : normal case		   */
      61        { /*input.*/ { 1,	   0x00C4  },
      62  	/*expect*/ { 0,1,1,  ""	   },
      63        },
      64        /* #02 : normal case		   */
      65        { /*input.*/ { 1,	   0x00DC  },
      66  	/*expect*/ { 0,1,1,  ""	   },
      67        },
      68        /* #03 : normal case		   */
      69        { /*input.*/ { 1,	   0x0092  },
      70  	/*expect*/ { 0,1,1,  "\222"  },
      71        },
      72        /* #04 : error case		   */
      73        { /*input.*/ { 1,	   0x3041  },
      74  	/*expect*/ { 0,1,-1, ""	   },
      75        },
      76        /* #05 : state dependency	   */
      77        { /*input.*/ { 0,	   0x0000  },
      78  	/*expect*/ { 0,0,0,  ""	   },
      79        },
      80        { .is_last = 1 }
      81      }
      82    },
      83    {
      84      { Twctomb, TST_LOC_enUS },
      85      {
      86        /* #01 : normal case		   */
      87        { /*input.*/ { 1,	   0x0041  },
      88  	/*expect*/ { 0,1,1,  "A"	   },
      89        },
      90        /* #02 : normal case		   */
      91        { /*input.*/ { 1,	   0x0042  },
      92  	/*expect*/ { 0,1,1,  "B"	   },
      93        },
      94        /* #03 : error case		   */
      95        /* <WAIVER> */
      96        { /*input.*/ { 1,	   0x00C4  },
      97  	/*expect*/ { 0,1,-1, ""	   },
      98        },
      99        /* #04 : error case		   */
     100        { /*input.*/ { 1,	   0x30A4  },
     101  	/*expect*/ { 0,1,-1, ""	   },
     102        },
     103        /* #05 : state dependency	   */
     104        { /*input.*/ { 0,	   0x0000  },
     105  	/*expect*/ { 0,0,0,  ""	   },
     106        },
     107        { .is_last = 1 }
     108      }
     109    },
     110    {
     111      { Twctomb, TST_LOC_eucJP },
     112      {
     113        /* #01 : normal case		   */
     114        { /*input.*/ { 1,	   0x3042  },
     115  	/*expect*/ { 0,1,2,  "\244\242"   },
     116        },
     117        /* #02 : normal case		   */
     118        { /*input.*/ { 1,	   0x3044  },
     119  	/*expect*/ { 0,1,2,  "\244\244"   },
     120        },
     121        /* #03 : normal case		   */
     122        { /*input.*/ { 1,	   0x008E  },
     123  	/*expect*/ { 0,1,-1, ""	   },
     124        },
     125        /* #04 : jisX0212		   */
     126        { /*input.*/ { 1,	   0x00C4	  },
     127  	/*expect*/ { 0,1,3,  "\217\252\243" }, /* jisx0210  returns 3 */
     128        },
     129        /* #05 : state dependency	   */
     130        { /*input.*/ { 0,	   0x008E  },
     131  	/*expect*/ { 0,0,0,  ""	   },
     132        },
     133        { .is_last = 1 }
     134      }
     135    },
     136    {
     137      { Twctomb, TST_LOC_end }
     138    }
     139  };