mirror of
https://github.com/reactos/reactos.git
synced 2025-01-01 03:54:02 +00:00
[ROSAUTOTEST]
Report the start and end of the tests in the Application event log. This gives data for the advapi32:eventlog tests. svn path=/trunk/; revision=63963
This commit is contained in:
parent
bb1bbe0f7c
commit
1f48cab02e
6 changed files with 173 additions and 2 deletions
|
@ -15,14 +15,16 @@ list(APPEND SOURCE
|
|||
CWebService.cpp
|
||||
CWineTest.cpp
|
||||
main.cpp
|
||||
misc.cpp
|
||||
shutdown.cpp
|
||||
tools.cpp
|
||||
precomp.h)
|
||||
|
||||
add_executable(rosautotest ${SOURCE})
|
||||
add_executable(rosautotest ${SOURCE} ${REACTOS_BINARY_DIR}/include/reactos/rosautotestmsg.rc)
|
||||
|
||||
set_module_type(rosautotest win32cui UNICODE)
|
||||
add_importlibs(rosautotest advapi32 shell32 user32 wininet msvcrt kernel32 ntdll)
|
||||
add_pch(rosautotest precomp.h SOURCE)
|
||||
|
||||
add_message_headers(ANSI rosautotestmsg.mc)
|
||||
add_dependencies(rosautotest rosautotestmsg)
|
||||
add_cd_file(TARGET rosautotest DESTINATION reactos/system32 FOR all)
|
||||
|
|
|
@ -61,6 +61,18 @@ wmain(int argc, wchar_t* argv[])
|
|||
ss << "\n\nSystem uptime " << setprecision(2) << fixed ;
|
||||
ss << ((float)GetTickCount()/1000) << " seconds\n";
|
||||
StringOut(ss.str());
|
||||
|
||||
/* Report tests startup */
|
||||
InitLogs();
|
||||
ReportEventW(hLog,
|
||||
EVENTLOG_INFORMATION_TYPE,
|
||||
0,
|
||||
MSG_TESTS_STARTED,
|
||||
NULL,
|
||||
0,
|
||||
0,
|
||||
NULL,
|
||||
NULL);
|
||||
|
||||
/* Run the tests */
|
||||
WineTest.Run();
|
||||
|
@ -94,6 +106,18 @@ wmain(int argc, wchar_t* argv[])
|
|||
if(ReturnValue == 1)
|
||||
DbgPrint("SYSREG_ROSAUTOTEST_FAILURE\n");
|
||||
|
||||
/* Report successful end of tests */
|
||||
ReportEventW(hLog,
|
||||
EVENTLOG_SUCCESS,
|
||||
0,
|
||||
MSG_TESTS_SUCCESSFUL,
|
||||
NULL,
|
||||
0,
|
||||
0,
|
||||
NULL,
|
||||
NULL);
|
||||
FreeLogs();
|
||||
|
||||
/* Shut down the system if requested, also in case of an exception above */
|
||||
if(Configuration.DoShutdown() && !ShutdownSystem())
|
||||
ReturnValue = 1;
|
||||
|
|
109
rostests/rosautotest/misc.cpp
Normal file
109
rostests/rosautotest/misc.cpp
Normal file
|
@ -0,0 +1,109 @@
|
|||
/*
|
||||
* PROJECT: ReactOS Automatic Testing Utility
|
||||
* LICENSE: GPL - See COPYING in the top level directory
|
||||
* FILE: base/applications/rapps/misc.c
|
||||
* PURPOSE: Misc functions
|
||||
* PROGRAMMERS: Dmitry Chapyshev (dmitry@reactos.org)
|
||||
*/
|
||||
|
||||
//static
|
||||
HANDLE hLog = NULL;
|
||||
|
||||
VOID
|
||||
InitLogs(VOID)
|
||||
{
|
||||
WCHAR szBuf[MAX_PATH] = L"SYSTEM\\CurrentControlSet\\Services\\EventLog\\Application\\RosAutotest";
|
||||
WCHAR szPath[MAX_PATH];
|
||||
DWORD dwCategoryNum = 1;
|
||||
DWORD dwDisp, dwData;
|
||||
HKEY hKey;
|
||||
|
||||
if (RegCreateKeyExW(HKEY_LOCAL_MACHINE,
|
||||
szBuf, 0, NULL,
|
||||
REG_OPTION_NON_VOLATILE,
|
||||
KEY_WRITE, NULL, &hKey, &dwDisp) != ERROR_SUCCESS)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if (!GetModuleFileName(NULL, szPath, sizeof(szPath) / sizeof(szPath[0])))
|
||||
return;
|
||||
|
||||
if (RegSetValueExW(hKey,
|
||||
L"EventMessageFile",
|
||||
0,
|
||||
REG_EXPAND_SZ,
|
||||
(LPBYTE)szPath,
|
||||
(DWORD)(wcslen(szPath) + 1) * sizeof(WCHAR)) != ERROR_SUCCESS)
|
||||
{
|
||||
RegCloseKey(hKey);
|
||||
return;
|
||||
}
|
||||
|
||||
dwData = EVENTLOG_ERROR_TYPE | EVENTLOG_WARNING_TYPE |
|
||||
EVENTLOG_INFORMATION_TYPE;
|
||||
|
||||
if (RegSetValueExW(hKey,
|
||||
L"TypesSupported",
|
||||
0,
|
||||
REG_DWORD,
|
||||
(LPBYTE)&dwData,
|
||||
sizeof(DWORD)) != ERROR_SUCCESS)
|
||||
{
|
||||
RegCloseKey(hKey);
|
||||
return;
|
||||
}
|
||||
|
||||
if (RegSetValueExW(hKey,
|
||||
L"CategoryMessageFile",
|
||||
0,
|
||||
REG_EXPAND_SZ,
|
||||
(LPBYTE)szPath,
|
||||
(DWORD)(wcslen(szPath) + 1) * sizeof(WCHAR)) != ERROR_SUCCESS)
|
||||
{
|
||||
RegCloseKey(hKey);
|
||||
return;
|
||||
}
|
||||
|
||||
if (RegSetValueExW(hKey,
|
||||
L"CategoryCount",
|
||||
0,
|
||||
REG_DWORD,
|
||||
(LPBYTE)&dwCategoryNum,
|
||||
sizeof(DWORD)) != ERROR_SUCCESS)
|
||||
{
|
||||
RegCloseKey(hKey);
|
||||
return;
|
||||
}
|
||||
|
||||
RegCloseKey(hKey);
|
||||
|
||||
hLog = RegisterEventSourceW(NULL, L"RosAutotest");
|
||||
}
|
||||
|
||||
|
||||
VOID
|
||||
FreeLogs(VOID)
|
||||
{
|
||||
if (hLog) DeregisterEventSource(hLog);
|
||||
}
|
||||
|
||||
|
||||
BOOL
|
||||
WriteLogMessage(WORD wType, DWORD dwEventID, LPWSTR lpMsg)
|
||||
{
|
||||
if (!ReportEventW(hLog,
|
||||
wType,
|
||||
0,
|
||||
dwEventID,
|
||||
NULL,
|
||||
1,
|
||||
0,
|
||||
(LPCWSTR*)&lpMsg,
|
||||
NULL))
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
}
|
|
@ -20,6 +20,7 @@ using namespace std;
|
|||
#include <reason.h>
|
||||
#include <shlobj.h>
|
||||
#include <wininet.h>
|
||||
#include <winreg.h>
|
||||
|
||||
#include <ndk/rtlfuncs.h>
|
||||
#include <reactos/buildno.h>
|
||||
|
@ -39,6 +40,8 @@ using namespace std;
|
|||
#include "CWebService.h"
|
||||
#include "CWineTest.h"
|
||||
|
||||
#include <rosautotestmsg.h>
|
||||
|
||||
/* Useful macros */
|
||||
#define EXCEPTION(Message) throw CSimpleException(Message)
|
||||
#define FATAL(Message) throw CFatalException(__FILE__, __LINE__, Message)
|
||||
|
@ -47,6 +50,11 @@ using namespace std;
|
|||
/* main.c */
|
||||
extern CConfiguration Configuration;
|
||||
|
||||
/* misc.c */
|
||||
VOID FreeLogs(VOID);
|
||||
VOID InitLogs(VOID);
|
||||
extern HANDLE hLog;
|
||||
|
||||
/* shutdown.c */
|
||||
bool ShutdownSystem();
|
||||
|
||||
|
|
1
rostests/rosautotest/rosautotest.rc
Normal file
1
rostests/rosautotest/rosautotest.rc
Normal file
|
@ -0,0 +1 @@
|
|||
#include <rosautotestmsg.rc>
|
27
rostests/rosautotest/rosautotestmsg.mc
Normal file
27
rostests/rosautotest/rosautotestmsg.mc
Normal file
|
@ -0,0 +1,27 @@
|
|||
MessageIdTypedef=ULONG
|
||||
|
||||
SeverityNames=(Success=0x0:STATUS_SEVERITY_SUCCESS
|
||||
Informational=0x1:STATUS_SEVERITY_INFORMATIONAL
|
||||
Warning=0x2:STATUS_SEVERITY_WARNING
|
||||
Error=0x3:STATUS_SEVERITY_ERROR)
|
||||
|
||||
FacilityNames=(System=0x0:FACILITY_SYSTEM Application=0xFFF)
|
||||
|
||||
LanguageNames=(English=0x409:MSG00409)
|
||||
|
||||
MessageId=1
|
||||
Severity=Informational
|
||||
Facility=Application
|
||||
SymbolicName=MSG_TESTS_STARTED
|
||||
Language=English
|
||||
ReactOS Automatic Testing Utility is started.
|
||||
.
|
||||
|
||||
MessageId=2
|
||||
Severity=Success
|
||||
Facility=Application
|
||||
SymbolicName=MSG_TESTS_SUCCESSFUL
|
||||
Language=English
|
||||
ReactOS Automatic Testing Utility is successful.
|
||||
.
|
||||
|
Loading…
Reference in a new issue