/*++ Copyright (c) 1999 Microsoft Corporation Module Name : tsvmap.cxx Abstract: This is a test module for the server variable map Author: Taylor Weiss ( TaylorW ) 19-Apr-1999 Environment: User Mode - Win32 Project: Internet Information Services Functions Exported: Revision History: --*/ #include #include #include #include #include DECLARE_DEBUG_PRINTS_OBJECT(); #ifndef _NO_TRACING_ #include DEFINE_GUID(IisTSvMapGuid, 0x784d8939, 0xaa8c, 0x11d2, 0x92, 0x5e, 0x00, 0xc0, 0x4f, 0x72, 0xd9, 0x0e); #else DECLARE_DEBUG_VARIABLE(); #endif #define DEFINE_SV( token ) #token, LPCSTR rgValidNames[] = { ALL_SERVER_VARIABLES() }; #undef DEFINE_SV int cValidNames = sizeof(rgValidNames)/sizeof(rgValidNames[0]); LPCSTR rgInvalidNames[] = { "HTTP_BOGUS", "_HTTP_", "47", "", "Hello, There!", "0123456789abcdefghijklmnopqrstuvwxyz0123456789abcdefghijklmnopqrstuvwxyz0123456789abcdefghijklmnopqrstuvwxyz0123456789abcdefghijklmnopqrstuvwxyz" }; int cInvalidNames = sizeof(rgInvalidNames)/sizeof(rgInvalidNames[0]); int __cdecl main(int argc, char * argv[]) { int argSeen = 1; #ifndef _NO_TRACING_ CREATE_DEBUG_PRINT_OBJECT( argv[0], IisTSvMapGuid); CREATE_INITIALIZE_DEBUG(); #else CREATE_DEBUG_PRINT_OBJECT( argv[0]); SET_DEBUG_FLAGS( DEBUG_ERROR | DEBUG_INIT_CLEAN); #endif SV_CACHE_MAP map; DBG_REQUIRE( map.Initialize() ); // Dump the table // This should be more than enough space, see // SV_CACHE_MAP::Print if this asserts. CHAR pchBuffer[ 5000 ]; DWORD cb = sizeof( pchBuffer ); map.PrintToBuffer( pchBuffer, &cb ); DBG_ASSERT( cb < sizeof(pchBuffer) ); printf( pchBuffer ); DWORD dwId = 0; // Do lookups for all valid names for( int i = 0; i < cValidNames; ++i ) { DBG_REQUIRE( map.FindOrdinal( rgValidNames[i], strlen( rgValidNames[i] ), &dwId ) ); DBG_REQUIRE( strcmp( rgValidNames[i], map.FindName( dwId ) ) == 0 ); } // Do lookups for invalid names for( int j = 0; j < cInvalidNames; ++j ) { DBG_REQUIRE( map.FindOrdinal( rgInvalidNames[j], strlen( rgInvalidNames[j] ), &dwId ) == FALSE ); } DELETE_DEBUG_PRINT_OBJECT(); return 1; } // main()