⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 i18nmb.c

📁 eCos/RedBoot for勤研ARM AnywhereII(4510) 含全部源代码
💻 C
📖 第 1 页 / 共 2 页
字号:
      CYG_TEST_PASS_FAIL( *wcptr == mbtowcjis0[j], "*wcptr");
      ptr += result;
      wcptr++;
      ++j;
    }  

  CYG_TEST_PASS_FAIL( wcptr - wcbuff == 7, "wcptr - wcbuff");
  CYG_TEST_PASS_FAIL( wcbuff[6] == 0, "wcbuff[6]");
 
  memset (buff, 'K', 40);
  ptr = buff;
  wcptr = wcbuff;
  result = 1;

  for (i = 0; i < 7; ++i)
    {
      result = wctomb (ptr, *wcptr);
      ptr += result;
      wcptr++;
    }  

  CYG_TEST_PASS_FAIL( strcmp(testjis[0], buff) == 0, "strcmp(testjis[0], buff");

  result = wctomb (buff, (wchar_t)0x1111);
  CYG_TEST_PASS_FAIL( result == -1, "wctomb(buff, (wchar_t)0x1111)");

  result = mbstowcs (wcbuff, testjis[3], 8);
  CYG_TEST_PASS_FAIL( result == -1, "mbstowcs(wcbuff, testjis[3], 8)");
  
  memset (wcbuff, 'K', 40);
  result = mbstowcs (wcbuff, testjis[0], 8);
  CYG_TEST_PASS_FAIL( result == 6, "mbstowcs(wcbuff, testjis[0], 8)");
  CYG_TEST_PASS_FAIL( *((char *)(&wcbuff[7])) == 'K', "*((char *)(&wcbuff[7]))");
  CYG_TEST_PASS_FAIL( wcbuff[6] == 0, "wcbuff[6]");

  memset (wcbuff, 'K', 40);
  result = mbstowcs (wcbuff, testjis[0], 6);
  CYG_TEST_PASS_FAIL( result == 6, "mbstowcs (wcbuff, testjis[0], 6)");
  CYG_TEST_PASS_FAIL( *((char *)(&wcbuff[6])) == 'K', "*((char *)(&wcbuff[6]))");

  memset (wcbuff, 'K', 40);
  result = mbstowcs (wcbuff, testjis[0], 7);
  CYG_TEST_PASS_FAIL( result == 6, "mbstowcs (wcbuff, testjis[0], 7)");
  CYG_TEST_PASS_FAIL(*((char *)(&wcbuff[7])) == 'K', "*((char *)(&wcbuff[7]))");
  CYG_TEST_PASS_FAIL( wcbuff[6] == 0, "wcbuff[6]"); 

  memset(buff, 'K', 20);
  result = wcstombs (buff, wcbuff, 20);
  CYG_TEST_PASS_FAIL( result == 14, "wcstombs (buff, wcbuff, 20)");
  CYG_TEST_PASS_FAIL( strcmp(buff, testjis[0]) == 0, "strcmp(buff, testjis[0])");

  memset (buff, 'K', 20);
  result = wcstombs (buff, wcbuff, 14);
  CYG_TEST_PASS_FAIL( result == 14, "wcstombs (buff, wcbuff, 14)");
  CYG_TEST_PASS_FAIL( memcmp (buff, testjis[0], 14) == 0, "memcmp (buff, testjis[0], 14)");
  CYG_TEST_PASS_FAIL( buff[14] == 'K', "buff[14]");

  memset (buff, 'K', 20);
  result = wcstombs (buff, wcbuff, 15);
  CYG_TEST_PASS_FAIL( result == 14, "wcstombs (buff, wcbuff, 15)");
  CYG_TEST_PASS_FAIL( memcmp (buff, testjis[0], 14) == 0, "memcmp (buff, testjis[0], 14)");
  CYG_TEST_PASS_FAIL( buff[14] == '\0', "buff[14]");

  result = wcstombs (buff, (wchar_t *)"\x23\x10", 2);
  CYG_TEST_PASS_FAIL( result == -1, "wcstombs (buff, (wchar_t *)\"\x23\x10\", 2)");

  result = sscanf (in_jis, fmt_jis, &k);
  CYG_TEST_PASS_FAIL( result == 1, "sscanf (in_jis, fmt_jis, &k)");
  CYG_TEST_PASS_FAIL( k == 23, "k"); 

  sprintf (buff, fmt_jis, 23);
  CYG_TEST_PASS_FAIL( strcmp(buff, in_jis) == 0, "sprintf(buff, fmt_jis, 23)");

  locale = setlocale(LC_ALL, "C");
  locale = setlocale(LC_CTYPE, NULL);

  CYG_TEST_PASS_FAIL( strcmp(locale, "C") == 0, "previous locale");
  CYG_TEST_PASS_FAIL( MB_CUR_MAX == 1, "MB_CUR_MAX");

#endif /* CYGFUN_LIBC_I18N_LOCALE_C_JIS */

#ifdef CYGFUN_LIBC_I18N_LOCALE_C_SJIS

  CYG_TEST_INFO( "Testing C-SJIS locale" );

  locale = setlocale (LC_CTYPE, "C-SJIS");
  CYG_TEST_PASS_FAIL( locale != NULL, "setlocale (LC_CTYPE, \"C-SJIS\")");
  
  CYG_TEST_PASS_FAIL( strcmp(locale, "C-SJIS") == 0, "setlocale(LC_CTYPE, \"C-SJIS\")");

  locale = setlocale (LC_CTYPE, NULL);
  CYG_TEST_PASS_FAIL( strcmp(locale, "C-SJIS") == 0, "setlocale(LC_CTYPE, NULL)");

  CYG_TEST_PASS_FAIL( MB_CUR_MAX == 2, "MB_CUR_MAX");

  CYG_TEST_PASS_FAIL( mblen(NULL, 0) == 0, "mblen(NULL, 0)");

  CYG_TEST_PASS_FAIL( mbtowc(NULL, NULL, 0) == 0, "mbtowc(NULL, NULL, 0)");

  CYG_TEST_PASS_FAIL( wctomb(NULL, 0) == 0, "wctomb(NULL, 0)");

  for (i = 0; i < sizeof(testsjis) / sizeof(char *); ++i)
    {
      ptr = testsjis[i];
      result = 1;
      j = 0;
      while (result > 0) 
        {
          result = mblen (ptr, MB_CUR_MAX);
	  CYG_TEST_PASS_FAIL( result == mblensjis[i][j], "mblen (ptr, MB_CUR_MAX)");
          ptr += result;
          ++j;
        }  
    }
  
  ptr = testsjis[0];
  wcptr = wcbuff;
  memset(wcbuff, 'K', 40);
  result = 1;
  j = 0;
  while (result > 0) 
    {
      result = mbtowc (wcptr, ptr, MB_CUR_MAX);
      CYG_TEST_PASS_FAIL( result == mblensjis0[j], "mbtowc (wcptr, ptr, MB_CUR_MAX)");
      CYG_TEST_PASS_FAIL( *wcptr == mbtowcsjis0[j], "*wcptr");
      ptr += result;
      wcptr++;
      ++j;
    }  

  CYG_TEST_PASS_FAIL( wcptr - wcbuff == 9, "wcptr - wcbuff");
  CYG_TEST_PASS_FAIL( wcbuff[8] == 0, "wcbuff[8]");
 
  memset (buff, 'K', 40);
  ptr = buff;
  wcptr = wcbuff;
  result = 1;

  for (i = 0; i < 9; ++i)
    {
      result = wctomb (ptr, *wcptr);
      ptr += result;
      wcptr++;
    }  

  CYG_TEST_PASS_FAIL( strcmp(testsjis[0], buff) == 0, "strcmp(testsjis[0], buff");

  result = wctomb (buff, (wchar_t)0x1111);
  CYG_TEST_PASS_FAIL( result == -1, "wctomb(buff, (wchar_t)0x1111)");

  result = mbstowcs (wcbuff, testsjis[5], 8);
  CYG_TEST_PASS_FAIL( result == -1, "mbstowcs(wcbuff, testjis[3], 8)");
  
  memset (wcbuff, 'K', 40);
  result = mbstowcs (wcbuff, testsjis[0], 20);
  CYG_TEST_PASS_FAIL( result == 8, "mbstowcs(wcbuff, testsjis[0], 20)");
  CYG_TEST_PASS_FAIL( *((char *)(&wcbuff[9])) == 'K', "*((char *)(&wcbuff[9]))");
  CYG_TEST_PASS_FAIL( wcbuff[8] == 0, "wcbuff[8]");

  memset (wcbuff, 'K', 40);
  result = mbstowcs (wcbuff, testsjis[0], 8);
  CYG_TEST_PASS_FAIL( result == 8, "mbstowcs (wcbuff, testsjis[0], 8)");
  CYG_TEST_PASS_FAIL( *((char *)(&wcbuff[8])) == 'K', "*((char *)(&wcbuff[8]))");

  memset (wcbuff, 'K', 40);
  result = mbstowcs (wcbuff, testsjis[0], 9);
  CYG_TEST_PASS_FAIL( result == 8, "mbstowcs (wcbuff, testsjis[0], 9)");
  CYG_TEST_PASS_FAIL(*((char *)(&wcbuff[9])) == 'K', "*((char *)(&wcbuff[9]))");
  CYG_TEST_PASS_FAIL( wcbuff[8] == 0, "wcbuff[8]"); 

  memset(buff, 'K', 20);
  result = wcstombs (buff, wcbuff, 20);
  CYG_TEST_PASS_FAIL( result == 12, "wcstombs (buff, wcbuff, 20)");
  CYG_TEST_PASS_FAIL( strcmp(buff, testsjis[0]) == 0, "strcmp(buff, testjis[0])");

  memset (buff, 'K', 20);
  result = wcstombs (buff, wcbuff, 12);
  CYG_TEST_PASS_FAIL( result == 12, "wcstombs (buff, wcbuff, 12)");
  CYG_TEST_PASS_FAIL( memcmp (buff, testsjis[0], 12) == 0, "memcmp (buff, testsjis[0], 12)");
  CYG_TEST_PASS_FAIL( buff[12] == 'K', "buff[12]");

  memset (buff, 'K', 20);
  result = wcstombs (buff, wcbuff, 13);
  CYG_TEST_PASS_FAIL( result == 12, "wcstombs (buff, wcbuff, 12)");
  CYG_TEST_PASS_FAIL( memcmp (buff, testsjis[0], 13) == 0, "memcmp (buff, testsjis[0], 13)");
  CYG_TEST_PASS_FAIL( buff[12] == '\0', "buff[12]");

  result = wcstombs (buff, (wchar_t *)"\x23\x10", 2);
  CYG_TEST_PASS_FAIL( result == -1, "wcstombs (buff, (wchar_t *)\"\x23\x10\", 2)");

  result = sscanf (in_sjis, fmt_sjis, &k);
  CYG_TEST_PASS_FAIL( result == 1, "sscanf (in_sjis, fmt_sjis, &k)");
  CYG_TEST_PASS_FAIL( k == 23, "k"); 

  sprintf (buff, fmt_sjis, 23);
  CYG_TEST_PASS_FAIL( strcmp(buff, in_sjis) == 0, "sprintf(buff, fmt_sjis, 23)");

  locale = setlocale(LC_ALL, "C");
  locale = setlocale(LC_CTYPE, NULL);

  CYG_TEST_PASS_FAIL( strcmp(locale, "C") == 0, "previous locale");
  CYG_TEST_PASS_FAIL( MB_CUR_MAX == 1, "MB_CUR_MAX");

#endif /* CYGFUN_LIBC_I18N_LOCALE_C_SJIS */

#ifdef CYGFUN_LIBC_I18N_LOCALE_C_EUCJP

  CYG_TEST_INFO( "Testing C-EUCJP locale" );

  locale = setlocale (LC_CTYPE, "C-EUCJP");
  CYG_TEST_PASS_FAIL( locale != NULL, "setlocale (LC_CTYPE, \"C-EUCJP\")");
  
  CYG_TEST_PASS_FAIL( strcmp(locale, "C-EUCJP") == 0, "setlocale(LC_CTYPE, \"C-EUCJP\")");

  locale = setlocale (LC_CTYPE, NULL);
  CYG_TEST_PASS_FAIL( strcmp(locale, "C-EUCJP") == 0, "current locale");

  CYG_TEST_PASS_FAIL( MB_CUR_MAX == 2, "MB_CUR_MAX");

  CYG_TEST_PASS_FAIL( mblen(NULL, 0) == 0, "mblen(NULL, 0)");

  CYG_TEST_PASS_FAIL( mbtowc(NULL, NULL, 0) == 0, "mbtowc(NULL, NULL, 0)");

  CYG_TEST_PASS_FAIL( wctomb(NULL, 0) == 0, "wctomb(NULL, 0)");

  for (i = 0; i < sizeof(testeucjp) / sizeof(char *); ++i)
    {
      ptr = testeucjp[i];
      result = 1;
      j = 0;
      while (result > 0) 
        {
          result = mblen (ptr, MB_CUR_MAX);
	  CYG_TEST_PASS_FAIL( result == mbleneucjp[i][j], "mblen (ptr, MB_CUR_MAX)");
          ptr += result;
          ++j;
        }  
    }
  
  ptr = testeucjp[0];
  wcptr = wcbuff;
  memset(wcbuff, 'K', 40);
  result = 1;
  j = 0;
  while (result > 0) 
    {
      result = mbtowc (wcptr, ptr, MB_CUR_MAX);
      CYG_TEST_PASS_FAIL( result == mbleneucjp0[j], "mbtowc (wcptr, ptr, MB_CUR_MAX)");
      CYG_TEST_PASS_FAIL( *wcptr == mbtowceucjp0[j], "*wcptr");
      ptr += result;
      wcptr++;
      ++j;
    }  

  CYG_TEST_PASS_FAIL( wcptr - wcbuff == 9, "wcptr - wcbuff");
  CYG_TEST_PASS_FAIL( wcbuff[8] == 0, "wcbuff[8]");
 
  memset (buff, 'K', 40);
  ptr = buff;
  wcptr = wcbuff;
  result = 1;

  for (i = 0; i < 9; ++i)
    {
      result = wctomb (ptr, *wcptr);
      ptr += result;
      wcptr++;
    }  

  CYG_TEST_PASS_FAIL( strcmp(testeucjp[0], buff) == 0, "strcmp(testeucjp[0], buff");

  result = wctomb (buff, (wchar_t)0x1111);
  CYG_TEST_PASS_FAIL( result == -1, "wctomb(buff, (wchar_t)0x1111)");

  result = mbstowcs (wcbuff, testeucjp[5], 8);
  CYG_TEST_PASS_FAIL( result == -1, "mbstowcs(wcbuff, testjis[3], 8)");
  
  memset (wcbuff, 'K', 40);
  result = mbstowcs (wcbuff, testeucjp[0], 20);
  CYG_TEST_PASS_FAIL( result == 8, "mbstowcs(wcbuff, testeucjp[0], 20)");
  CYG_TEST_PASS_FAIL( *((char *)(&wcbuff[9])) == 'K', "*((char *)(&wcbuff[9]))");
  CYG_TEST_PASS_FAIL( wcbuff[8] == 0, "wcbuff[8]");

  memset (wcbuff, 'K', 40);
  result = mbstowcs (wcbuff, testeucjp[0], 8);
  CYG_TEST_PASS_FAIL( result == 8, "mbstowcs (wcbuff, testeucjp[0], 8)");
  CYG_TEST_PASS_FAIL( *((char *)(&wcbuff[8])) == 'K', "*((char *)(&wcbuff[8]))");

  memset (wcbuff, 'K', 40);
  result = mbstowcs (wcbuff, testeucjp[0], 9);
  CYG_TEST_PASS_FAIL( result == 8, "mbstowcs (wcbuff, testeucjp[0], 9)");
  CYG_TEST_PASS_FAIL(*((char *)(&wcbuff[9])) == 'K', "*((char *)(&wcbuff[9]))");
  CYG_TEST_PASS_FAIL( wcbuff[8] == 0, "wcbuff[8]"); 

  memset(buff, 'K', 20);
  result = wcstombs (buff, wcbuff, 20);
  CYG_TEST_PASS_FAIL( result == 12, "wcstombs (buff, wcbuff, 20)");
  CYG_TEST_PASS_FAIL( strcmp(buff, testeucjp[0]) == 0, "strcmp(buff, testjis[0])");

  memset (buff, 'K', 20);
  result = wcstombs (buff, wcbuff, 12);
  CYG_TEST_PASS_FAIL( result == 12, "wcstombs (buff, wcbuff, 12)");
  CYG_TEST_PASS_FAIL( memcmp (buff, testeucjp[0], 12) == 0, "memcmp (buff, testeucjp[0], 12)");
  CYG_TEST_PASS_FAIL( buff[12] == 'K', "buff[12]");

  memset (buff, 'K', 20);
  result = wcstombs (buff, wcbuff, 13);
  CYG_TEST_PASS_FAIL( result == 12, "wcstombs (buff, wcbuff, 12)");
  CYG_TEST_PASS_FAIL( memcmp (buff, testeucjp[0], 13) == 0, "memcmp (buff, testeucjp[0], 13)");
  CYG_TEST_PASS_FAIL( buff[12] == '\0', "buff[12]");

  result = wcstombs (buff, (wchar_t *)"\x23\x10", 2);
  CYG_TEST_PASS_FAIL( result == -1, "wcstombs (buff, (wchar_t *)\"\x23\x10\", 2)");

  result = sscanf (in_eucjp, fmt_eucjp, &k);
  CYG_TEST_PASS_FAIL( result == 1, "sscanf (in_eucjp, fmt_eucjp, &k)");
  CYG_TEST_PASS_FAIL( k == 23, "k"); 

  sprintf (buff, fmt_eucjp, 23);
  CYG_TEST_PASS_FAIL( strcmp(buff, in_eucjp) == 0, "sprintf(buff, fmt_eucjp, 23)");

  locale = setlocale(LC_ALL, "C");
  locale = setlocale(LC_CTYPE, NULL);

  CYG_TEST_PASS_FAIL( strcmp(locale, "C") == 0, "previous locale");
  CYG_TEST_PASS_FAIL( MB_CUR_MAX == 1, "MB_CUR_MAX");

#endif /* CYGFUN_LIBC_I18N_LOCALE_C_EUCJP */


  CYG_TEST_FINISH( "Finished tests from testcase " __FILE__ " for C library "
                     "<stdlib.h> multibyte character functions" );
  
  return 0;

}  

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -