windows-nt/Source/XPSP1/NT/windows/appcompat/tools/smvtest/log/log.h
2020-09-26 16:20:57 +08:00

116 lines
2.7 KiB
C++

/*++
Copyright (c) 2000-2001 Microsoft Corporation
Module Name:
Log.h
Abstract:
This DLL handles the logging for the SMVTest.
Author:
Diaa Fathalla (DiaaF) 27-Nov-2000
Revision History:
--*/
// The following ifdef block is the standard way of creating macros which make exporting
// from a DLL simpler. All files within this DLL are compiled with the LOG_EXPORTS
// symbol defined on the command line. this symbol should not be defined on any project
// that uses this DLL. This way any other project whose source files include this file see
// LOG_API functions as being imported from a DLL, wheras this DLL sees symbols
// defined with this macro as being exported.
#ifndef _LOG_H_
#define _LOG_H_
#ifdef LOG_EXPORTS
#define LOG_API __declspec(dllexport)
#else
#define LOG_API __declspec(dllimport)
#endif
#define SUCCESS 0
#define FAILURE 1
#define NORMAL_SIZE 128*sizeof(TCHAR)
// This class is exported from the Log.dll
class LOG_API CLog {
private:
void SetLogfile(LPCTSTR szLogfile);
void SetLogfileFolder(LPCTSTR szLogfileFolder);
static LPTSTR m_sLogfile;
static LPTSTR m_sLogfileFolder;
static int s_NumberOfTests;
static int s_NumberOfFailures;
static BOOL s_bFirstTime;
void IncNumberOfTests();
void IncNumberOfFailures();
int NumberOfTests();
int NumberOfFailures();
protected:
LPTSTR m_sMachineName;
LPTSTR m_sCSDVersion;
LPTSTR m_sBuildNumber;
LPTSTR m_sProcessor;
int m_iProcessor;
int m_iOperatingSys;
int m_iNTProductType;
BOOL m_bLogFile;
protected:
void DeleteAllLogFiles();
public:
//Logging file routines
//--------------------------------------
CLog(void);
~CLog();
BOOL InitLogfile(LPCTSTR szLogfile = TEXT("ShimTest.Log"),
LPCTSTR szLogfileFolder = TEXT("TestLogs"));
BOOL InitLogfileInfo(LPCTSTR szLogfile = TEXT("ShimTest.Log"),
LPCTSTR szLogfileFolder = TEXT("TestLogs"));
BOOL EndLogfile();
BOOL LogResults(BOOL bPassed, LPCTSTR szText);
BOOL DoesLogfileExist();
BOOL VerifyFileExists(LPTSTR sPath);
LPTSTR LogInitHeader();
LPTSTR LogCompTail();
void GetLocalComputerInfo();
//--------------------------------------
};
//Using my own new and delete operators because of the MSVCRT dependency
void * __cdecl operator new(size_t size)
{
return HeapAlloc(GetProcessHeap(), 0, size);
}
void __cdecl operator delete(void* memory)
{
if (memory != NULL) {
HeapFree(GetProcessHeap(), 0, memory);
}
}
//explicitly exporting static members because they implicitly linked.
#ifdef LOG_EXPORTS
LOG_API int CLog::s_NumberOfTests;
LOG_API int CLog::s_NumberOfFailures;
LOG_API LPTSTR CLog::m_sLogfile;
LOG_API LPTSTR CLog::m_sLogfileFolder;
LOG_API BOOL CLog::s_bFirstTime;
#endif
#endif