mirror of https://github.com/lianthony/NT4.0
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
558 lines
14 KiB
558 lines
14 KiB
/*++
|
|
|
|
Copyright (c) 1991-1996, Microsoft Corporation All rights reserved.
|
|
|
|
Module Name:
|
|
|
|
gettest.c
|
|
|
|
Abstract:
|
|
|
|
Test module for NLS API IsValidCodePage, IsValidLocale,
|
|
GetACP, GetOEMCP,
|
|
GetSystemDefaultLangID, GetUserDefaultLangID,
|
|
GetSystemDefaultLCID, GetUserDefaultLCID,
|
|
GetThreadLocale, SetThreadLocale.
|
|
|
|
NOTE: This code was simply hacked together quickly in order to
|
|
test the different code modules of the NLS component.
|
|
This is NOT meant to be a formal regression test.
|
|
|
|
Revision History:
|
|
|
|
06-14-91 JulieB Created.
|
|
|
|
--*/
|
|
|
|
|
|
|
|
//
|
|
// Include Files.
|
|
//
|
|
|
|
#include "nlstest.h"
|
|
|
|
|
|
|
|
|
|
//
|
|
// Forward Declarations.
|
|
//
|
|
|
|
int
|
|
IVCP_NormalCase();
|
|
|
|
int
|
|
IVLC_NormalCase();
|
|
|
|
int
|
|
GUAPI_NormalCase();
|
|
|
|
|
|
|
|
|
|
|
|
////////////////////////////////////////////////////////////////////////////
|
|
//
|
|
// TestIsValidCodePage
|
|
//
|
|
// Test routine for IsValidCodePage API.
|
|
//
|
|
// 06-14-91 JulieB Created.
|
|
////////////////////////////////////////////////////////////////////////////
|
|
|
|
int TestIsValidCodePage()
|
|
{
|
|
int ErrCount = 0; // error count
|
|
|
|
|
|
//
|
|
// Print out what's being done.
|
|
//
|
|
printf("\n\nTESTING IsValidCodePage...\n\n");
|
|
|
|
//
|
|
// Test normal cases.
|
|
//
|
|
ErrCount += IVCP_NormalCase();
|
|
|
|
//
|
|
// Print out result.
|
|
//
|
|
printf("\nIsValidCodePage: ERRORS = %d\n", ErrCount);
|
|
|
|
//
|
|
// Return total number of errors found.
|
|
//
|
|
return (ErrCount);
|
|
}
|
|
|
|
|
|
////////////////////////////////////////////////////////////////////////////
|
|
//
|
|
// IVCP_NormalCase
|
|
//
|
|
// This routine tests the normal cases of the API routine.
|
|
//
|
|
// 06-14-91 JulieB Created.
|
|
////////////////////////////////////////////////////////////////////////////
|
|
|
|
int IVCP_NormalCase()
|
|
{
|
|
int NumErrors = 0; // error count - to be returned
|
|
BOOL rc; // return code
|
|
|
|
|
|
//
|
|
// Different values for CodePage.
|
|
//
|
|
|
|
// Variation 1 - CP_ACP
|
|
rc = IsValidCodePage( CP_ACP );
|
|
CheckReturnValidW( rc,
|
|
FALSE,
|
|
NULL,
|
|
NULL,
|
|
"CP_ACP",
|
|
&NumErrors );
|
|
|
|
// Variation 2 - CP_OEMCP
|
|
rc = IsValidCodePage( CP_OEMCP );
|
|
CheckReturnValidW( rc,
|
|
FALSE,
|
|
NULL,
|
|
NULL,
|
|
"CP_OEMCP",
|
|
&NumErrors );
|
|
|
|
// Variation 3 - CP 6
|
|
rc = IsValidCodePage( 6 );
|
|
CheckReturnValidW( rc,
|
|
FALSE,
|
|
NULL,
|
|
NULL,
|
|
"CP 6",
|
|
&NumErrors );
|
|
|
|
// Variation 4 - CP 1252
|
|
rc = IsValidCodePage( 1252 );
|
|
CheckReturnValidW( rc,
|
|
TRUE,
|
|
NULL,
|
|
NULL,
|
|
"CP 1252",
|
|
&NumErrors );
|
|
|
|
// Variation 5 - CP 437
|
|
rc = IsValidCodePage( 437 );
|
|
CheckReturnValidW( rc,
|
|
TRUE,
|
|
NULL,
|
|
NULL,
|
|
"CP 437",
|
|
&NumErrors );
|
|
|
|
// Variation 6 - CP 37
|
|
rc = IsValidCodePage( 37 );
|
|
CheckReturnValidW( rc,
|
|
TRUE,
|
|
NULL,
|
|
NULL,
|
|
"CP 37",
|
|
&NumErrors );
|
|
|
|
|
|
//
|
|
// Return total number of errors found.
|
|
//
|
|
return (NumErrors);
|
|
}
|
|
|
|
|
|
////////////////////////////////////////////////////////////////////////////
|
|
//
|
|
// TestIsValidLocale
|
|
//
|
|
// Test routine for IsValidLocale API.
|
|
//
|
|
// 07-26-93 JulieB Created.
|
|
////////////////////////////////////////////////////////////////////////////
|
|
|
|
int TestIsValidLocale()
|
|
{
|
|
int ErrCount = 0; // error count
|
|
|
|
|
|
//
|
|
// Print out what's being done.
|
|
//
|
|
printf("\n\nTESTING IsValidLocale...\n\n");
|
|
|
|
//
|
|
// Test normal cases.
|
|
//
|
|
ErrCount += IVLC_NormalCase();
|
|
|
|
//
|
|
// Print out result.
|
|
//
|
|
printf("\nIsValidLocale: ERRORS = %d\n", ErrCount);
|
|
|
|
//
|
|
// Return total number of errors found.
|
|
//
|
|
return (ErrCount);
|
|
}
|
|
|
|
|
|
////////////////////////////////////////////////////////////////////////////
|
|
//
|
|
// IVLC_NormalCase
|
|
//
|
|
// This routine tests the normal cases of the API routine.
|
|
//
|
|
// 07-26-93 JulieB Created.
|
|
////////////////////////////////////////////////////////////////////////////
|
|
|
|
int IVLC_NormalCase()
|
|
{
|
|
int NumErrors = 0; // error count - to be returned
|
|
BOOL rc; // return code
|
|
|
|
|
|
//
|
|
// Invalid values for Locale.
|
|
//
|
|
|
|
// Variation 1 - Neutral Locale
|
|
rc = IsValidLocale( 0x00000000,
|
|
LCID_SUPPORTED );
|
|
CheckReturnValidW( rc,
|
|
FALSE,
|
|
NULL,
|
|
NULL,
|
|
"LOCALE_NEUTRAL",
|
|
&NumErrors );
|
|
|
|
// Variation 2 - System Default Locale
|
|
rc = IsValidLocale( LOCALE_SYSTEM_DEFAULT,
|
|
LCID_SUPPORTED );
|
|
CheckReturnValidW( rc,
|
|
FALSE,
|
|
NULL,
|
|
NULL,
|
|
"LOCALE_SYSTEM_DEFAULT",
|
|
&NumErrors );
|
|
|
|
// Variation 3 - User Default Locale
|
|
rc = IsValidLocale( LOCALE_USER_DEFAULT,
|
|
LCID_SUPPORTED );
|
|
CheckReturnValidW( rc,
|
|
FALSE,
|
|
NULL,
|
|
NULL,
|
|
"LOCALE_USER_DEFAULT",
|
|
&NumErrors );
|
|
|
|
// Variation 4 - LCID 01000409
|
|
rc = IsValidLocale( 0x01000409,
|
|
LCID_SUPPORTED );
|
|
CheckReturnValidW( rc,
|
|
FALSE,
|
|
NULL,
|
|
NULL,
|
|
"invalid (0x01000409)",
|
|
&NumErrors );
|
|
|
|
// Variation 5 - invalid flag
|
|
rc = IsValidLocale( 0x00000409,
|
|
0x10000000 );
|
|
CheckReturnValidW( rc,
|
|
FALSE,
|
|
NULL,
|
|
NULL,
|
|
"invalid flag",
|
|
&NumErrors );
|
|
|
|
// Variation 6 - LCID 00010409
|
|
rc = IsValidLocale( 0x00010409,
|
|
LCID_SUPPORTED );
|
|
CheckReturnValidW( rc,
|
|
TRUE,
|
|
NULL,
|
|
NULL,
|
|
"sort bit (0x00010409)",
|
|
&NumErrors );
|
|
|
|
|
|
|
|
//
|
|
// Valid values for locale.
|
|
//
|
|
|
|
// Variation 1 - LCID 00000409 supported
|
|
rc = IsValidLocale( 0x00000409,
|
|
LCID_SUPPORTED );
|
|
CheckReturnValidW( rc,
|
|
TRUE,
|
|
NULL,
|
|
NULL,
|
|
"supported 0x0409",
|
|
&NumErrors );
|
|
|
|
// Variation 2 - LCID 00000409 installed
|
|
rc = IsValidLocale( 0x00000409,
|
|
LCID_INSTALLED );
|
|
CheckReturnValidW( rc,
|
|
TRUE,
|
|
NULL,
|
|
NULL,
|
|
"installed 0x0409",
|
|
&NumErrors );
|
|
|
|
// Variation 3 - LCID 0000041f supported
|
|
rc = IsValidLocale( 0x0000041f,
|
|
LCID_SUPPORTED );
|
|
CheckReturnValidW( rc,
|
|
TRUE,
|
|
NULL,
|
|
NULL,
|
|
"supported 0x041f",
|
|
&NumErrors );
|
|
|
|
// Variation 4 - LCID 0000041f installed
|
|
rc = IsValidLocale( 0x0000041f,
|
|
LCID_INSTALLED );
|
|
CheckReturnValidW( rc,
|
|
TRUE,
|
|
NULL,
|
|
NULL,
|
|
"installed 0x041f",
|
|
&NumErrors );
|
|
|
|
// Variation 5 - LCID 00000408 supported
|
|
rc = IsValidLocale( 0x00000408,
|
|
LCID_SUPPORTED );
|
|
CheckReturnValidW( rc,
|
|
TRUE,
|
|
NULL,
|
|
NULL,
|
|
"supported 0x0408",
|
|
&NumErrors );
|
|
|
|
// Variation 6 - LCID 00000408 installed
|
|
rc = IsValidLocale( 0x00000408,
|
|
LCID_INSTALLED );
|
|
CheckReturnValidW( rc,
|
|
TRUE,
|
|
NULL,
|
|
NULL,
|
|
"installed 0x0408",
|
|
&NumErrors );
|
|
|
|
// Variation 7 - LCID 00010411 supported
|
|
rc = IsValidLocale( 0x00010411,
|
|
LCID_SUPPORTED );
|
|
CheckReturnValidW( rc,
|
|
TRUE,
|
|
NULL,
|
|
NULL,
|
|
"supported (0x00010411)",
|
|
&NumErrors );
|
|
|
|
// Variation 8 - LCID 00010411 installed
|
|
rc = IsValidLocale( 0x00010411,
|
|
LCID_INSTALLED );
|
|
CheckReturnValidW( rc,
|
|
TRUE,
|
|
NULL,
|
|
NULL,
|
|
"installed (0x00010411)",
|
|
&NumErrors );
|
|
|
|
|
|
|
|
//
|
|
// Return total number of errors found.
|
|
//
|
|
return (NumErrors);
|
|
}
|
|
|
|
|
|
////////////////////////////////////////////////////////////////////////////
|
|
//
|
|
// TestUtilityAPIs
|
|
//
|
|
// Test routine for Utility APIs.
|
|
//
|
|
// 06-14-91 JulieB Created.
|
|
////////////////////////////////////////////////////////////////////////////
|
|
|
|
int TestUtilityAPIs()
|
|
{
|
|
int ErrCount = 0; // error count
|
|
|
|
|
|
//
|
|
// Print out what's being done.
|
|
//
|
|
printf("\n\nTESTING GetACP, GetOEMCP,\n");
|
|
printf(" GetSystemDefaultLangID, GetUserDefaultLangID,\n");
|
|
printf(" GetSystemDefaultLCID, GetUserDefaultLCID,\n");
|
|
printf(" GetThreadLocale, SetThreadLocale...\n\n");
|
|
|
|
//
|
|
// Test normal cases.
|
|
//
|
|
ErrCount += GUAPI_NormalCase();
|
|
|
|
//
|
|
// Print out result.
|
|
//
|
|
printf("\nGetUtilityAPIs: ERRORS = %d\n", ErrCount);
|
|
|
|
//
|
|
// Return total number of errors found.
|
|
//
|
|
return (ErrCount);
|
|
}
|
|
|
|
|
|
////////////////////////////////////////////////////////////////////////////
|
|
//
|
|
// GUAPI_NormalCase
|
|
//
|
|
// This routine tests the normal cases of the API routine.
|
|
//
|
|
// 06-14-91 JulieB Created.
|
|
////////////////////////////////////////////////////////////////////////////
|
|
|
|
int GUAPI_NormalCase()
|
|
{
|
|
int NumErrors = 0; // error count - to be returned
|
|
UINT rcInt; // return code
|
|
LANGID rcLang; // return code
|
|
LCID rcLoc; // return code
|
|
LCID rcLoc2; // return code
|
|
BOOL rc; // return code
|
|
|
|
|
|
#ifdef PERF
|
|
|
|
DbgBreakPoint();
|
|
|
|
#endif
|
|
|
|
|
|
// Variation 1 - GetACP
|
|
rcInt = GetACP();
|
|
CheckReturnValidW( rcInt,
|
|
1252,
|
|
NULL,
|
|
NULL,
|
|
"GetACP",
|
|
&NumErrors );
|
|
|
|
// Variation 2 - GetOEMCP
|
|
rcInt = GetOEMCP();
|
|
CheckReturnValidW( rcInt,
|
|
437,
|
|
NULL,
|
|
NULL,
|
|
"GetOEMCP",
|
|
&NumErrors );
|
|
|
|
// Variation 3 - GetSystemDefaultLangID
|
|
rcLang = GetSystemDefaultLangID();
|
|
CheckReturnValidW( rcLang,
|
|
0x0409,
|
|
NULL,
|
|
NULL,
|
|
"GetSystemDefaultLangID",
|
|
&NumErrors );
|
|
|
|
// Variation 4 - GetUserDefaultLangID
|
|
rcLang = GetUserDefaultLangID();
|
|
CheckReturnValidW( rcLang,
|
|
0x0409,
|
|
NULL,
|
|
NULL,
|
|
"GetUserDefaultLangID",
|
|
&NumErrors );
|
|
|
|
// Variation 5 - GetSystemDefaultLCID
|
|
rcLoc = GetSystemDefaultLCID();
|
|
CheckReturnValidW( rcLoc,
|
|
0x00000409,
|
|
NULL,
|
|
NULL,
|
|
"GetSystemDefaultLCID",
|
|
&NumErrors );
|
|
|
|
// Variation 6 - GetUserDefaultLCID
|
|
rcLoc = GetUserDefaultLCID();
|
|
CheckReturnValidW( rcLoc,
|
|
0x00000409,
|
|
NULL,
|
|
NULL,
|
|
"GetUserDefaultLCID",
|
|
&NumErrors );
|
|
|
|
|
|
// Variation 7 - GetThreadLocale and SetThreadLocale
|
|
rcLoc = GetThreadLocale();
|
|
CheckReturnValidW( rcLoc,
|
|
0x00000409,
|
|
NULL,
|
|
NULL,
|
|
"GetThreadLocale",
|
|
&NumErrors );
|
|
|
|
rc = SetThreadLocale( 0x0000040a );
|
|
CheckReturnValidW( rc,
|
|
TRUE,
|
|
NULL,
|
|
NULL,
|
|
"SetThreadLocale 040a",
|
|
&NumErrors );
|
|
|
|
rc = SetThreadLocale( 0x0000080b );
|
|
CheckReturnValidW( rc,
|
|
FALSE,
|
|
NULL,
|
|
NULL,
|
|
"SetThreadLocale invalid",
|
|
&NumErrors );
|
|
|
|
rc = SetThreadLocale( 0x0010040a );
|
|
CheckReturnValidW( rc,
|
|
FALSE,
|
|
NULL,
|
|
NULL,
|
|
"SetThreadLocale invalid 2",
|
|
&NumErrors );
|
|
|
|
rcLoc2 = GetThreadLocale();
|
|
CheckReturnValidW( rcLoc2,
|
|
0x0000040a,
|
|
NULL,
|
|
NULL,
|
|
"GetThreadLocale 040a",
|
|
&NumErrors );
|
|
|
|
rc = SetThreadLocale( rcLoc );
|
|
CheckReturnValidW( rc,
|
|
TRUE,
|
|
NULL,
|
|
NULL,
|
|
"SetThreadLocale back to original",
|
|
&NumErrors );
|
|
|
|
|
|
//
|
|
// Return total number of errors found.
|
|
//
|
|
return (NumErrors);
|
|
}
|
|
|
|
|