Author: tfaber
Date: Sat Jun 3 07:05:31 2017
New Revision: 74758
URL:
http://svn.reactos.org/svn/reactos?rev=74758&view=rev
Log:
[KERNEL32_APITEST]
- Add tests for IsDBCSLeadByteEx. Patch by Katayama Hirofumi MZ.
ROSTESTS-281 #resolve
Added:
trunk/rostests/apitests/kernel32/IsDBCSLeadByteEx.c (with props)
Modified:
trunk/rostests/apitests/kernel32/CMakeLists.txt
trunk/rostests/apitests/kernel32/testlist.c
Modified: trunk/rostests/apitests/kernel32/CMakeLists.txt
URL:
http://svn.reactos.org/svn/reactos/trunk/rostests/apitests/kernel32/CMakeLi…
==============================================================================
--- trunk/rostests/apitests/kernel32/CMakeLists.txt [iso-8859-1] (original)
+++ trunk/rostests/apitests/kernel32/CMakeLists.txt [iso-8859-1] Sat Jun 3 07:05:31 2017
@@ -14,6 +14,7 @@
GetDriveType.c
GetModuleFileName.c
interlck.c
+ IsDBCSLeadByteEx.c
LoadLibraryExW.c
lstrcpynW.c
lstrlen.c
Added: trunk/rostests/apitests/kernel32/IsDBCSLeadByteEx.c
URL:
http://svn.reactos.org/svn/reactos/trunk/rostests/apitests/kernel32/IsDBCSL…
==============================================================================
--- trunk/rostests/apitests/kernel32/IsDBCSLeadByteEx.c (added)
+++ trunk/rostests/apitests/kernel32/IsDBCSLeadByteEx.c [iso-8859-1] Sat Jun 3 07:05:31
2017
@@ -0,0 +1,125 @@
+/*
+ * PROJECT: ReactOS api tests
+ * LICENSE: GPLv2+ - See COPYING in the top level directory
+ * PURPOSE: Tests for IsDBCSLeadByteEx
+ * PROGRAMMER: Katayama Hirofumi MZ <katayama.hirofumi.mz(a)gmail.com>
+ */
+
+#include <apitest.h>
+
+#define WIN32_NO_STATUS
+#define _INC_WINDOWS
+#define COM_NO_WINDOWS_H
+#include <stdio.h>
+#include <winnls.h>
+
+#define MAX_RANGE 4
+
+typedef struct RANGE
+{
+ int StartIndex;
+ int EndIndex;
+} RANGE;
+
+typedef struct ENTRY
+{
+ const char *Name;
+ int CodePage;
+ int RangeCount;
+ RANGE Ranges[MAX_RANGE];
+} ENTRY;
+
+START_TEST(IsDBCSLeadByteEx)
+{
+ static const ENTRY Entries[] =
+ {
+ {
+ "English", 437,
+ 0
+ },
+ {
+ "ChineseSimpilified", 936,
+ 1,
+ {
+ { 0x81, 0xFE }
+ }
+ },
+ {
+ "ChineseTraditional", 950,
+ 1,
+ {
+ { 0x81, 0xFE }
+ }
+ },
+ {
+ "Japanese", 932,
+ 2,
+ {
+ { 0x81, 0x9F }, { 0xE0, 0xFC }
+ }
+ },
+ {
+ "Korean", 949,
+ 1,
+ {
+ { 0x81, 0xFE }
+ }
+ }
+ };
+ int i;
+
+ for (i = 0; i < _countof(Entries); ++i)
+ {
+ int Index, iRange;
+ int CodePage = Entries[i].CodePage, StartIndex = 0, RangeCount = 0;
+ BOOL InRange = FALSE;
+ RANGE Ranges[MAX_RANGE];
+ const char *Name = Entries[i].Name;
+
+ ZeroMemory(&Ranges, sizeof(Ranges));
+
+ for (Index = 0; Index < 256; ++Index)
+ {
+ if (InRange)
+ {
+ if (!IsDBCSLeadByteEx(CodePage, Index))
+ {
+ Ranges[RangeCount].StartIndex = StartIndex;
+ Ranges[RangeCount].EndIndex = Index - 1;
+ ++RangeCount;
+ InRange = FALSE;
+ }
+ }
+ else
+ {
+ if (IsDBCSLeadByteEx(CodePage, Index))
+ {
+ StartIndex = Index;
+ InRange = TRUE;
+ }
+ }
+ }
+ if (InRange)
+ {
+ Ranges[RangeCount].StartIndex = StartIndex;
+ Ranges[RangeCount].EndIndex = Index - 1;
+ ++RangeCount;
+ }
+
+ ok(RangeCount == Entries[i].RangeCount,
+ "%s: RangeCount expected %d, was %d\n",
+ Name, Entries[i].RangeCount, RangeCount);
+ for (iRange = 0; iRange < Entries[i].RangeCount; ++iRange)
+ {
+ const RANGE *pRange = &Entries[i].Ranges[iRange];
+ int iStart = Ranges[iRange].StartIndex;
+ int iEnd = Ranges[iRange].EndIndex;
+ ok(iStart == pRange->StartIndex,
+ "%s: Ranges[%d].StartIndex expected: 0x%02X, was: 0x%02X\n",
+ Name, iRange, pRange->StartIndex, iStart);
+ ok(iEnd == pRange->EndIndex,
+ "%s: Ranges[%d].EndIndex was expected: 0x%02X, was: 0x%02X\n",
+ Name, iRange, pRange->EndIndex, iEnd);
+ }
+ }
+}
Propchange: trunk/rostests/apitests/kernel32/IsDBCSLeadByteEx.c
------------------------------------------------------------------------------
svn:eol-style = native
Modified: trunk/rostests/apitests/kernel32/testlist.c
URL:
http://svn.reactos.org/svn/reactos/trunk/rostests/apitests/kernel32/testlis…
==============================================================================
--- trunk/rostests/apitests/kernel32/testlist.c [iso-8859-1] (original)
+++ trunk/rostests/apitests/kernel32/testlist.c [iso-8859-1] Sat Jun 3 07:05:31 2017
@@ -15,6 +15,7 @@
extern void func_GetDriveType(void);
extern void func_GetModuleFileName(void);
extern void func_interlck(void);
+extern void func_IsDBCSLeadByteEx(void);
extern void func_LoadLibraryExW(void);
extern void func_lstrcpynW(void);
extern void func_lstrlen(void);
@@ -42,6 +43,7 @@
{ "GetDriveType", func_GetDriveType },
{ "GetModuleFileName", func_GetModuleFileName },
{ "interlck", func_interlck },
+ { "IsDBCSLeadByteEx", func_IsDBCSLeadByteEx },
{ "LoadLibraryExW", func_LoadLibraryExW },
{ "lstrcpynW", func_lstrcpynW },
{ "lstrlen", func_lstrlen },