diff options
Diffstat (limited to 'private/oleutest/balls/common/tstmain.cxx')
-rw-r--r-- | private/oleutest/balls/common/tstmain.cxx | 178 |
1 files changed, 178 insertions, 0 deletions
diff --git a/private/oleutest/balls/common/tstmain.cxx b/private/oleutest/balls/common/tstmain.cxx new file mode 100644 index 000000000..a7fc2febb --- /dev/null +++ b/private/oleutest/balls/common/tstmain.cxx @@ -0,0 +1,178 @@ +//+------------------------------------------------------------------ +// +// File: tmain.cxx +// +// Contents: entry point common for all test drivers. +// +//-------------------------------------------------------------------- +#include <pch.cxx> +#include <tstmain.hxx> +#include <regmain.hxx> + +BOOL fQuiet = 0; // turn tracing on/off +DWORD gInitFlag; // current COINT flag used on main thread. + +DWORD dwInitFlag[2] = {COINIT_APARTMENTTHREADED, + COINIT_MULTITHREADED}; + +LPSTR pszInitFlag[2] = {"ApartmentThreaded", + "MultiThreaded"}; + + +// global statistics counters +LONG gCountAttempts = 0; // # of tests attempted +LONG gCountPassed = 0; // # of tests passed +LONG gCountFailed = 0; // # of tests failed + +void InitStatistics(); +void PrintStatistics(); + +//+------------------------------------------------------------------- +// +// Function: DriverMain +// +// Synopsis: Entry point to EXE +// +// Returns: TRUE +// +// History: 21-Nov-92 Rickhi Created +// +// Parses parameters, sets the threading model, initializes OLE, +// runs the test, Uninitializes OLE, reports PASSED/FAILED. +// +//-------------------------------------------------------------------- +int _cdecl DriverMain(int argc, char **argv, char *pszTestName, LPFNTEST pfnTest) +{ + char *pszAppName = *argv; + + // default to running both single-thread and multi-thread + int iStart = 0; + int iEnd = 2; + + + // process the command line args + if (argc > 1) + { + for (int i=argc; i>0; i--, argv++) + { + if (!_strnicmp(*argv, "-r", 2)) + { + // register class information + RegistrySetup(pszAppName); + return 0; + } + else if (!_strnicmp(*argv, "-q", 2)) + { + // quiet output + fQuiet = TRUE; + } + else if (!_strnicmp(*argv, "-s", 2)) + { + // just run single-threaded + iStart = 0; + iEnd = 1; + } + else if (!_strnicmp(*argv, "-m", 2)) + { + // just run multi-threaded + iStart = 1; + iEnd = 2; + } + } + } + + + // run the tests. + for (int i=iStart; i<iEnd; i++) + { + InitStatistics(); + + WriteProfileStringA("OleSrv", + "ThreadMode", + pszInitFlag[i]); + + printf ("Starting %s Test with %s threading model\n", + pszTestName, pszInitFlag[i]); + + gInitFlag = dwInitFlag[i]; + SCODE sc = CoInitializeEx(NULL, gInitFlag); + + if (sc != S_OK) + { + printf("CoInitializeEx Failed with %lx\n", sc); + DebugBreak(); + return 1; + } + + BOOL fRslt = (pfnTest)(); + + PrintStatistics(); + + if (fRslt) + printf("%s Tests PASSED\n", pszTestName); + else + printf("%s Tests FAILED\n", pszTestName); + + CoUninitialize(); + } + + return 0; +} + +//+------------------------------------------------------------------- +// +// Function: TestResult +// +// Synopsis: prints test results +// +// History: 21-Nov-92 Rickhi Created +// +//-------------------------------------------------------------------- +BOOL TestResult(BOOL RetVal, LPSTR pszTestName) +{ + gCountAttempts++; + + if (RetVal == TRUE) + { + printf ("PASSED: %s\n", pszTestName); + gCountPassed++; + } + else + { + printf ("FAILED: %s\n", pszTestName); + gCountFailed++; + } + + return RetVal; +} + +//+------------------------------------------------------------------- +// +// Function: InitStatistics +// +// Synopsis: Initializes run statistics +// +// History: 21-Nov-92 Rickhi Created +// +//-------------------------------------------------------------------- +void InitStatistics() +{ + gCountAttempts = 0; + gCountPassed = 0; + gCountFailed = 0; +} + +//+------------------------------------------------------------------- +// +// Function: PrintStatistics +// +// Synopsis: Prints run statistics +// +// History: 21-Nov-92 Rickhi Created +// +//-------------------------------------------------------------------- +void PrintStatistics() +{ + printf("\nTEST STATISTICS -- Attempted:%d Passed:%d Failed:%d\n\n", + gCountAttempts, gCountPassed, gCountFailed); +} |