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

dat_mblen.c

/*
 *  TEST SUITE FOR MB/WC FUNCTIONS IN C LIBRARY
 *
 *     FILE:      dat_mblen.c
 *
 *     MBLEN:      int mblen (char *s, size_t n);
 */


/*
 *  NOTE:
 *      int  mblen (char *s, size_t n);
 *
 *      where          n: a maximum number of bytes
 *
 *      return - the number of bytes
 *
 *  CAUTION:
 *
 *     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 set a 'NULL', it doens't mean a NULL pointer.
 *
 *     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_mblen(), set
 *       ret_flg=0 always. It's a special case, and the test
 *       function takes care of it.
 *
 *           s_flg=0           ret_flg=0
 *           |           |
 *         { 0, 0 },     { 0, 0, 0,  x }
 *            |              |
 *            not used       ret_val: 0/+1
 *                           (expected val) */


TST_MBLEN tst_mblen_loc [] = {
  {
    { Tmblen, TST_LOC_de },
    {
      /* 01: a character.  */
      {      { 1, "\300",        USE_MBCURMAX }, { 0, 1,  1 }      },
      /* 02: a character.  */
      {      { 1, "\309",        USE_MBCURMAX }, { 0, 1,  1 }      },
      /* 03: a character + an invalid byte.  */
      {      { 1, "Z\204",       USE_MBCURMAX }, { 0, 1, +1 }      },
      /* 04: control/invalid characters.  */
      {      { 1, "\177\000",  USE_MBCURMAX }, { 0,   1, +1 }      },
      /* 05: a null string.  */
      {      { 1, "",      USE_MBCURMAX }, { 0, 1,  0 }      },
      /* 06: a null pointer.  */
      {      { 0, "",      USE_MBCURMAX }, { 0, 0,  0 }      },
      /* Last element.  */
      {      .is_last = 1 }
    }
  },
  {
    { Tmblen, TST_LOC_enUS },
    {
      /* 01: a character.  */
      {      { 1, "A",     USE_MBCURMAX }, { 0, 1,  1 }      },
      /* 02: a character.  */
      {      { 1, "a",     USE_MBCURMAX }, { 0, 1,  1 }      },
      /* 03: a character + an invalid byte.  */
      {      { 1, "Z\204",       USE_MBCURMAX }, { 0, 1, +1 }      },
      /* 04: control/invalid characters.  */ 
      {      { 1, "\177\000",  USE_MBCURMAX }, { 0,   1, +1 }      },
      /* 05: a null string.  */                
      {      { 1, "",      USE_MBCURMAX }, { 0, 1,  0 }      },
      /* 06: a null pointer.  */         
      {      { 0, "",      USE_MBCURMAX }, { 0, 0,  0 }      },
      /* Last element.  */
      {      .is_last = 1 }
    }
  },
  {
    { Tmblen, TST_LOC_eucJP },
    {
      /* 01: a character.  */
      {      { 1, "\264\301",    USE_MBCURMAX }, { 0, 1,  2 }      },
      /* 02: a character.  */                  
      {      { 1, "\216\261",    USE_MBCURMAX }, { 0, 1,  2 }  },
      /* 03: a character + an invalid byte.  */      
      {      { 1, "\260\241\200",      USE_MBCURMAX }, { 0, 1,  2 }      },
      /* 04: control/invalid characters.  */
      {      { 1, "\377\202",  USE_MBCURMAX }, { EILSEQ, 1, -1 }   },
      /* 05: a null string.  */                
      {      { 1, "",      USE_MBCURMAX }, { 0, 1,  0 }      },
      /* 06: a null pointer.  */         
      {      { 0, "",      USE_MBCURMAX }, { 0, 0,  0 }      },
      /* Last element.  */
      {      .is_last = 1 }
    }
  },
  {
    { Tmblen, TST_LOC_end}
  }
};

Generated by  Doxygen 1.6.0   Back to index