summaryrefslogtreecommitdiffstats
path: root/private/oleutest/balls/common/tstmain.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'private/oleutest/balls/common/tstmain.cxx')
-rw-r--r--private/oleutest/balls/common/tstmain.cxx178
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);
+}