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.
155 lines
4.3 KiB
155 lines
4.3 KiB
/*++
|
|
|
|
Copyright (c) 1993 Microsoft Corporation
|
|
|
|
Module Name:
|
|
|
|
TestConf.c
|
|
|
|
Abstract:
|
|
|
|
This code tests the NetLib config workers.
|
|
|
|
Author:
|
|
|
|
John Rogers (JohnRo) 14-Apr-1993
|
|
|
|
Environment:
|
|
|
|
Portable to any flat, 32-bit environment. (Uses Win32 typedefs.)
|
|
Requires ANSI C extensions: slash-slash comments, long external names.
|
|
|
|
Revision History:
|
|
|
|
14-Apr-1993 JohnRo
|
|
Created for RAID 5483: server manager: wrong path given in repl dialog.
|
|
21-Apr-1993 JohnRo
|
|
Allow more graceful use with non-NT systems.
|
|
29-Jun-1993 JohnRo
|
|
Use assert() instead of NetpAssert(), for better use on free builds.
|
|
29-Jun-1993 JohnRo
|
|
Use TestAssert() (which may allow continue-on-error).
|
|
|
|
--*/
|
|
|
|
|
|
// These must be included first:
|
|
|
|
#include <windows.h> // IN, DWORD, TEXT, etc.
|
|
#include <lmcons.h> // MAX_PREFERRED_LENGTH, NET_API_STATUS, etc.
|
|
|
|
// These may be included in any order:
|
|
|
|
#include <config.h> // NetpExpandConfigString().
|
|
#include <lmapibuf.h> // NetapipBufferAllocate(), NetApiBufferFree().
|
|
#include <rxtest.h> // IF_DEBUG(), my prototype, TestAssert(), etc.
|
|
#include <tstr.h> // TCHAR_EOS, STRCAT(), STRCPY(), STRCMP().
|
|
#include <winerror.h> // RPC_S_ equates.
|
|
|
|
|
|
#define SIMPLE_CONSTANT_STRING (LPTSTR) TEXT("AbCdEfGhIj")
|
|
|
|
#define SOME_PATH_RELATIVE_STRING (LPTSTR) TEXT("\\some\\path")
|
|
|
|
#define SYSTEMROOT_STRING (LPTSTR) TEXT("%SystemRoot%")
|
|
|
|
#define ANY_OUTPUT_STRING (LPTSTR) TEXT("YourMilageMayVary")
|
|
|
|
|
|
DBGSTATIC VOID
|
|
TestConfigExpandString(
|
|
IN LPCTSTR UncServerName OPTIONAL,
|
|
IN LPCTSTR UnexpandedString,
|
|
IN LPCTSTR ExpectedValue,
|
|
IN BOOL DifferencesAllowed
|
|
);
|
|
|
|
VOID
|
|
TestConfig(
|
|
IN LPTSTR UncServerName OPTIONAL
|
|
)
|
|
|
|
{
|
|
TCHAR ComplexString[PATHLEN+1];
|
|
|
|
NetpKdPrint(( "TestConfig... beginning.\n" ));
|
|
|
|
TestConfigExpandString(
|
|
UncServerName,
|
|
SIMPLE_CONSTANT_STRING, // unexpanded string
|
|
SIMPLE_CONSTANT_STRING, // output (identical)
|
|
FALSE ); // no diffs allowed
|
|
|
|
TestConfigExpandString(
|
|
UncServerName,
|
|
SYSTEMROOT_STRING, // unexpanded string
|
|
ANY_OUTPUT_STRING, // output (may vary)
|
|
TRUE ); // diffs are allowed
|
|
|
|
(VOID) STRCPY(
|
|
ComplexString, // dest
|
|
SYSTEMROOT_STRING ); // src
|
|
(VOID) STRCAT(
|
|
ComplexString, // dest
|
|
SOME_PATH_RELATIVE_STRING ); // src
|
|
|
|
TestConfigExpandString(
|
|
UncServerName,
|
|
ComplexString, // unexpanded string
|
|
ANY_OUTPUT_STRING, // output (may vary)
|
|
TRUE ); // diffs are allowed
|
|
|
|
|
|
} // TestConfig
|
|
|
|
|
|
DBGSTATIC VOID
|
|
TestConfigExpandString(
|
|
IN LPCTSTR UncServerName OPTIONAL,
|
|
IN LPCTSTR UnexpandedString,
|
|
IN LPCTSTR ExpectedValue,
|
|
IN BOOL DifferencesAllowed
|
|
)
|
|
{
|
|
NET_API_STATUS ApiStatus;
|
|
LPTSTR ValueBuffer = NULL;
|
|
|
|
NetpKdPrint((
|
|
"TestConfigExpandString: trying to expand '" FORMAT_LPTSTR
|
|
"' and get '" FORMAT_LPTSTR "' on server " FORMAT_LPTSTR "...\n",
|
|
UnexpandedString,
|
|
ExpectedValue,
|
|
UncServerName ? UncServerName : (LPTSTR) TEXT("(local)") ));
|
|
|
|
ApiStatus = NetpExpandConfigString(
|
|
UncServerName,
|
|
UnexpandedString,
|
|
&ValueBuffer ); // alloc and set ptr
|
|
NetpKdPrint((
|
|
"TestConfigExpandString: got status " FORMAT_API_STATUS ".\n",
|
|
ApiStatus ));
|
|
if (ApiStatus == RPC_S_SERVER_UNAVAILABLE) {
|
|
// Probably downlevel.
|
|
TestAssert( ValueBuffer == NULL );
|
|
return;
|
|
}
|
|
TestAssert( ApiStatus == NO_ERROR ); // BUGBUG
|
|
TestAssert( ValueBuffer != NULL ); // BUGBUG
|
|
|
|
if (ValueBuffer != NULL) {
|
|
|
|
TestAssert( (*ValueBuffer) != TCHAR_EOS );
|
|
NetpKdPrint((
|
|
"TestConfigExpand: got '" FORMAT_LPTSTR "' as expansion.\n",
|
|
ValueBuffer ));
|
|
|
|
if ( !DifferencesAllowed ) {
|
|
if (STRCMP( ExpectedValue, ValueBuffer ) != 0) {
|
|
TestAssert( FALSE ); // MISMATCH!
|
|
}
|
|
}
|
|
|
|
(VOID) NetApiBufferFree( ValueBuffer );
|
|
}
|
|
|
|
} // TestConfigExpandString
|