Logo Search packages:      
Sourcecode: belocs-locales-data version File versions  Download package

dat_wctomb.c

/*
 *  TEST SUITE FOR MB/WC FUNCTIONS IN C LIBRARY
 *
 *     FILE:      dat_wctomb.c
 *
 *     WCTOMB:  int wctomb (char *s, wchar_t wc)
 */


/*
 *  FUNCTION:
 *
 *      int  wctomb (char *s, wchar_t wc);
 *
 *           return: the number of bytes
 *
 *  NOTE:
 *
 *     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_wctomb(), set
 *       ret_flg=0 always. It's a special case, and the test
 *       function takes care of it.
 *
 *          Input   Expect
 *
 *          s_flg=0             ret_flg=0
 *          |             |
 *          { 0, 0 },     { 0, 0, 0,  x,  "" }
 *             |              |
 *             not used       ret_val: 0/+1
 * (expected val)
 */


TST_WCTOMB tst_wctomb_loc [] = {
  {
    { Twctomb, TST_LOC_de },
    {
      /* #01 : normal case             */
      { /*input.*/ { 1,    0x00C4  },
      /*expect*/ { 0,1,1,  ""         },
      },
      /* #02 : normal case             */
      { /*input.*/ { 1,    0x00DC  },
      /*expect*/ { 0,1,1,  ""         },
      },
      /* #03 : normal case             */
      { /*input.*/ { 1,    0x0092  },
      /*expect*/ { 0,1,1,  "\222"  },
      },
      /* #04 : error case              */
      { /*input.*/ { 1,    0x3041  },
      /*expect*/ { 0,1,-1, ""    },
      },
      /* #05 : state dependency        */
      { /*input.*/ { 0,    0x0000  },
      /*expect*/ { 0,0,0,  ""    },
      },
      { .is_last = 1 }
    }
  },
  {
    { Twctomb, TST_LOC_enUS },
    {
      /* #01 : normal case             */
      { /*input.*/ { 1,    0x0041  },
      /*expect*/ { 0,1,1,  "A"         },
      },
      /* #02 : normal case             */
      { /*input.*/ { 1,    0x0042  },
      /*expect*/ { 0,1,1,  "B"         },
      },
      /* #03 : error case              */
      /* <WAIVER> */
      { /*input.*/ { 1,    0x00C4  },
      /*expect*/ { 0,1,-1, ""    },
      },
      /* #04 : error case              */
      { /*input.*/ { 1,    0x30A4  },
      /*expect*/ { 0,1,-1, ""    },
      },
      /* #05 : state dependency        */
      { /*input.*/ { 0,    0x0000  },
      /*expect*/ { 0,0,0,  ""    },
      },
      { .is_last = 1 }
    }
  },
  {
    { Twctomb, TST_LOC_eucJP },
    {
      /* #01 : normal case             */
      { /*input.*/ { 1,    0x3042  },
      /*expect*/ { 0,1,2,  "\244\242"   },
      },
      /* #02 : normal case             */
      { /*input.*/ { 1,    0x3044  },
      /*expect*/ { 0,1,2,  "\244\244"   },
      },
      /* #03 : normal case             */
      { /*input.*/ { 1,    0x008E  },
      /*expect*/ { 0,1,-1, ""    },
      },
      /* #04 : jisX0212          */
      { /*input.*/ { 1,    0x00C4     },
      /*expect*/ { 0,1,3,  "\217\252\243" }, /* jisx0210  returns 3 */
      },
      /* #05 : state dependency        */
      { /*input.*/ { 0,    0x008E  },
      /*expect*/ { 0,0,0,  ""    },
      },
      { .is_last = 1 }
    }
  },
  {
    { Twctomb, TST_LOC_end }
  }
};

Generated by  Doxygen 1.6.0   Back to index