mirror of
https://github.com/pocoproject/poco.git
synced 2025-11-26 00:40:05 +01:00
Merge pull request #2841 from KevDi/serviceManagerImprovments
Service manager improvments
This commit is contained in:
@@ -20,12 +20,15 @@
|
|||||||
|
|
||||||
#include "Poco/Util/Util.h"
|
#include "Poco/Util/Util.h"
|
||||||
#include "Poco/UnWindows.h"
|
#include "Poco/UnWindows.h"
|
||||||
|
#include <vector>
|
||||||
|
|
||||||
|
|
||||||
#if defined(POCO_WIN32_UTF8)
|
#if defined(POCO_WIN32_UTF8)
|
||||||
#define POCO_LPQUERY_SERVICE_CONFIG LPQUERY_SERVICE_CONFIGW
|
#define POCO_LPQUERY_SERVICE_CONFIG LPQUERY_SERVICE_CONFIGW
|
||||||
|
#define POCO_LPSERVICE_FAILURE_ACTION LPSERVICE_FAILURE_ACTIONSW
|
||||||
#else
|
#else
|
||||||
#define POCO_LPQUERY_SERVICE_CONFIG LPQUERY_SERVICE_CONFIGA
|
#define POCO_LPQUERY_SERVICE_CONFIG LPQUERY_SERVICE_CONFIGA
|
||||||
|
#define POCO_LPSERVICE_FAILURE_ACTION LPSERVICE_FAILURE_ACTIONSA
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
@@ -49,9 +52,33 @@ public:
|
|||||||
SVC_DISABLED
|
SVC_DISABLED
|
||||||
};
|
};
|
||||||
|
|
||||||
|
enum FailureActionType
|
||||||
|
{
|
||||||
|
SVC_NONE,
|
||||||
|
SVC_REBOOT,
|
||||||
|
SVC_RESTART,
|
||||||
|
SVC_RUN_COMMAND
|
||||||
|
};
|
||||||
|
|
||||||
|
struct FailureAction {
|
||||||
|
FailureActionType type;
|
||||||
|
int delay;
|
||||||
|
};
|
||||||
|
|
||||||
|
typedef std::vector<FailureAction> FailureActionVector;
|
||||||
|
typedef std::vector<FailureActionType> FailureActionTypeVector;
|
||||||
|
|
||||||
|
|
||||||
WinService(const std::string& name);
|
WinService(const std::string& name);
|
||||||
/// Creates the WinService, using the given service name.
|
/// Creates the WinService, using the given service name.
|
||||||
|
|
||||||
|
|
||||||
|
WinService(SC_HANDLE scmHandle, const std::string& name);
|
||||||
|
/// Creates the WinService, using the given connection to
|
||||||
|
/// a Windows Service Manager and the given service name.
|
||||||
|
///
|
||||||
|
/// The class will close the given scmHandle on destruction
|
||||||
|
|
||||||
~WinService();
|
~WinService();
|
||||||
/// Destroys the WinService.
|
/// Destroys the WinService.
|
||||||
|
|
||||||
@@ -89,6 +116,9 @@ public:
|
|||||||
bool isRunning() const;
|
bool isRunning() const;
|
||||||
/// Returns true if the service is currently running.
|
/// Returns true if the service is currently running.
|
||||||
|
|
||||||
|
bool isStopped() const;
|
||||||
|
/// Returns true if the service is currently stopped.
|
||||||
|
|
||||||
void start();
|
void start();
|
||||||
/// Starts the service.
|
/// Starts the service.
|
||||||
/// Does nothing if the service is already running.
|
/// Does nothing if the service is already running.
|
||||||
@@ -107,6 +137,14 @@ public:
|
|||||||
Startup getStartup() const;
|
Startup getStartup() const;
|
||||||
/// Returns the startup mode for the service.
|
/// Returns the startup mode for the service.
|
||||||
|
|
||||||
|
void setFailureActions(FailureActionVector failureActions, const std::string& command = "", const std::string& rebootMessage = "");
|
||||||
|
/// Sets the Failure Actions for the service.
|
||||||
|
/// If one of the Actions is SVC_RUN_COMMAND the command Parameter is added.
|
||||||
|
/// If one of the Actions is SVC_REBOOT the Reboot Message is set.
|
||||||
|
|
||||||
|
FailureActionTypeVector getFailureActions() const;
|
||||||
|
/// Returns the Failure Actions for the service.
|
||||||
|
|
||||||
void setDescription(const std::string& description);
|
void setDescription(const std::string& description);
|
||||||
/// Sets the service description in the registry.
|
/// Sets the service description in the registry.
|
||||||
|
|
||||||
|
|||||||
@@ -47,6 +47,13 @@ WinService::WinService(const std::string& name):
|
|||||||
if (!_scmHandle) throw SystemException("cannot open Service Control Manager");
|
if (!_scmHandle) throw SystemException("cannot open Service Control Manager");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
WinService::WinService(SC_HANDLE scmHandle, const std::string& name):
|
||||||
|
_scmHandle(scmHandle),
|
||||||
|
_name(name),
|
||||||
|
_svcHandle(0)
|
||||||
|
{
|
||||||
|
if (!_scmHandle) throw SystemException("Service Control Manager not connected");
|
||||||
|
}
|
||||||
|
|
||||||
WinService::~WinService()
|
WinService::~WinService()
|
||||||
{
|
{
|
||||||
@@ -157,6 +164,15 @@ bool WinService::isRunning() const
|
|||||||
return ss.dwCurrentState == SERVICE_RUNNING;
|
return ss.dwCurrentState == SERVICE_RUNNING;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool WinService::isStopped() const
|
||||||
|
{
|
||||||
|
open();
|
||||||
|
SERVICE_STATUS ss;
|
||||||
|
if (!QueryServiceStatus(_svcHandle, &ss))
|
||||||
|
throw SystemException("cannot query service status", _name);
|
||||||
|
return ss.dwCurrentState == SERVICE_STOPPED;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void WinService::start()
|
void WinService::start()
|
||||||
{
|
{
|
||||||
@@ -239,6 +255,132 @@ WinService::Startup WinService::getStartup() const
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void WinService::setFailureActions(FailureActionVector failureActions, const std::string& command, const std::string& rebootMessage)
|
||||||
|
{
|
||||||
|
open();
|
||||||
|
auto actions = new SC_ACTION[3];
|
||||||
|
#if defined(POCO_WIN32_UTF8)
|
||||||
|
SERVICE_FAILURE_ACTIONSW ac;
|
||||||
|
|
||||||
|
std::wstring urebootMessage;
|
||||||
|
Poco::UnicodeConverter::toUTF16(rebootMessage, urebootMessage);
|
||||||
|
std::vector<wchar_t> rebootMessageVector{ urebootMessage.begin(), urebootMessage.end() };
|
||||||
|
rebootMessageVector.push_back('\0');
|
||||||
|
|
||||||
|
std::wstring uComamnd;
|
||||||
|
Poco::UnicodeConverter::toUTF16(command, uComamnd);
|
||||||
|
std::vector<wchar_t> commandVector{ uComamnd.begin(), uComamnd.end() };
|
||||||
|
commandVector.push_back('\0');
|
||||||
|
#else
|
||||||
|
SERVICE_FAILURE_ACTIONSA ac;
|
||||||
|
|
||||||
|
std::vector<char> rebootMessageVector{ rebootMessage.begin(), rebootMessage.end() };
|
||||||
|
rebootMessageVector.push_back('\0');
|
||||||
|
|
||||||
|
std::vector<char> commandVector{ command.begin(), command.end() };
|
||||||
|
commandVector.push_back('\0');
|
||||||
|
#endif
|
||||||
|
for (auto i = 0; i < 3; i++)
|
||||||
|
{
|
||||||
|
switch (failureActions[i].type)
|
||||||
|
{
|
||||||
|
case SVC_REBOOT:
|
||||||
|
actions[i].Type = SC_ACTION_REBOOT;
|
||||||
|
actions[i].Delay = failureActions[i].delay;
|
||||||
|
#if defined(POCO_WIN32_UTF8)
|
||||||
|
ac.lpRebootMsg = &rebootMessageVector[0];
|
||||||
|
#else
|
||||||
|
ac.lpRebootMsg = &rebootMessageVector[0];
|
||||||
|
#endif
|
||||||
|
break;
|
||||||
|
case SVC_RESTART:
|
||||||
|
actions[i].Type = SC_ACTION_RESTART;
|
||||||
|
actions[i].Delay = failureActions[i].delay;
|
||||||
|
break;
|
||||||
|
case SVC_RUN_COMMAND:
|
||||||
|
actions[i].Type = SC_ACTION_RUN_COMMAND;
|
||||||
|
actions[i].Delay = failureActions[i].delay;
|
||||||
|
#if defined(POCO_WIN32_UTF8)
|
||||||
|
ac.lpCommand = &commandVector[0];
|
||||||
|
#else
|
||||||
|
ac.lpCommand = &commandVector[0];
|
||||||
|
#endif
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
actions[i].Type = SC_ACTION_NONE;
|
||||||
|
actions[i].Delay = 0;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
ac.dwResetPeriod = 0;
|
||||||
|
ac.cActions = 3;
|
||||||
|
ac.lpsaActions = actions;
|
||||||
|
|
||||||
|
#if defined(POCO_WIN32_UTF8)
|
||||||
|
if (!ChangeServiceConfig2W(_svcHandle, SERVICE_CONFIG_FAILURE_ACTIONS, &ac))
|
||||||
|
#else
|
||||||
|
if (!ChangeServiceConfig2A(_svcHandle, SERVICE_CONFIG_FAILURE_ACTIONS, &ac))
|
||||||
|
#endif
|
||||||
|
{
|
||||||
|
delete[] actions;
|
||||||
|
throw SystemException("cannot configure service", _name);
|
||||||
|
}
|
||||||
|
delete[] actions;
|
||||||
|
}
|
||||||
|
|
||||||
|
WinService::FailureActionTypeVector WinService::getFailureActions() const {
|
||||||
|
open();
|
||||||
|
int size = 4096;
|
||||||
|
DWORD bytesNeeded;
|
||||||
|
POCO_LPSERVICE_FAILURE_ACTION pSvcFailureAction = (POCO_LPSERVICE_FAILURE_ACTION)LocalAlloc(LPTR, size);
|
||||||
|
if (!pSvcFailureAction) throw OutOfMemoryException("cannot allocate service failure action buffer");
|
||||||
|
try {
|
||||||
|
#if defined(POCO_WIN32_UTF8)
|
||||||
|
while (!QueryServiceConfig2W(_svcHandle, SERVICE_CONFIG_FAILURE_ACTIONS, (LPBYTE)pSvcFailureAction, size, &bytesNeeded))
|
||||||
|
#else
|
||||||
|
while (!QueryServiceConfig2A(_svcHandle, SERVICE_CONFIG_FAILURE_ACTIONS, (LPBYTE)pSvcFailureAction, size, &bytesNeeded))
|
||||||
|
#endif
|
||||||
|
{
|
||||||
|
if (GetLastError() == ERROR_INSUFFICIENT_BUFFER) {
|
||||||
|
LocalFree(pSvcFailureAction);
|
||||||
|
size = bytesNeeded;
|
||||||
|
pSvcFailureAction = (POCO_LPSERVICE_FAILURE_ACTION)LocalAlloc(LPTR, size);
|
||||||
|
} else throw SystemException("cannot query service configuration", _name);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (...)
|
||||||
|
{
|
||||||
|
LocalFree(pSvcFailureAction);
|
||||||
|
throw;
|
||||||
|
}
|
||||||
|
FailureActionTypeVector result(3, SVC_NONE);
|
||||||
|
for (auto i = 0; i < pSvcFailureAction->cActions; i++)
|
||||||
|
{
|
||||||
|
switch (pSvcFailureAction->lpsaActions->Type)
|
||||||
|
{
|
||||||
|
case SC_ACTION_NONE:
|
||||||
|
result[i] = SVC_NONE;
|
||||||
|
break;
|
||||||
|
case SC_ACTION_RESTART:
|
||||||
|
result[i] = SVC_RESTART;
|
||||||
|
break;
|
||||||
|
case SC_ACTION_REBOOT:
|
||||||
|
result[i] = SVC_REBOOT;
|
||||||
|
break;
|
||||||
|
case SC_ACTION_RUN_COMMAND:
|
||||||
|
result[i] = SVC_RUN_COMMAND;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
result[i] = SVC_NONE;
|
||||||
|
}
|
||||||
|
++pSvcFailureAction->lpsaActions;
|
||||||
|
}
|
||||||
|
|
||||||
|
LocalFree(pSvcFailureAction);
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void WinService::setDescription(const std::string& description)
|
void WinService::setDescription(const std::string& description)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -9,6 +9,7 @@ POCO_HEADERS_AUTO( TEST_SRCS ${HDRS_G})
|
|||||||
POCO_SOURCES_AUTO_PLAT( TEST_SRCS WIN32
|
POCO_SOURCES_AUTO_PLAT( TEST_SRCS WIN32
|
||||||
src/WinConfigurationTest.cpp
|
src/WinConfigurationTest.cpp
|
||||||
src/WinRegistryTest.cpp
|
src/WinRegistryTest.cpp
|
||||||
|
src/WinServiceTest.cpp
|
||||||
src/WindowsTestSuite.cpp
|
src/WindowsTestSuite.cpp
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
@@ -594,6 +594,8 @@
|
|||||||
RelativePath=".\src\WindowsTestSuite.h"/>
|
RelativePath=".\src\WindowsTestSuite.h"/>
|
||||||
<File
|
<File
|
||||||
RelativePath=".\src\WinRegistryTest.h"/>
|
RelativePath=".\src\WinRegistryTest.h"/>
|
||||||
|
<File
|
||||||
|
RelativePath=".\src\WinServiceTest.h"/>
|
||||||
</Filter>
|
</Filter>
|
||||||
<Filter
|
<Filter
|
||||||
Name="Source Files">
|
Name="Source Files">
|
||||||
@@ -603,6 +605,8 @@
|
|||||||
RelativePath=".\src\WindowsTestSuite.cpp"/>
|
RelativePath=".\src\WindowsTestSuite.cpp"/>
|
||||||
<File
|
<File
|
||||||
RelativePath=".\src\WinRegistryTest.cpp"/>
|
RelativePath=".\src\WinRegistryTest.cpp"/>
|
||||||
|
<File
|
||||||
|
RelativePath=".\src\WinServiceTest.cpp"/>
|
||||||
</Filter>
|
</Filter>
|
||||||
</Filter>
|
</Filter>
|
||||||
<Filter
|
<Filter
|
||||||
|
|||||||
@@ -24,6 +24,7 @@
|
|||||||
<ClInclude Include="src\WinConfigurationTest.h"/>
|
<ClInclude Include="src\WinConfigurationTest.h"/>
|
||||||
<ClInclude Include="src\WindowsTestSuite.h"/>
|
<ClInclude Include="src\WindowsTestSuite.h"/>
|
||||||
<ClInclude Include="src\WinRegistryTest.h"/>
|
<ClInclude Include="src\WinRegistryTest.h"/>
|
||||||
|
<ClInclude Include="src\WinServiceTest.h"/>
|
||||||
<ClInclude Include="src\TimerTest.h"/>
|
<ClInclude Include="src\TimerTest.h"/>
|
||||||
<ClInclude Include="src\TimerTestSuite.h"/>
|
<ClInclude Include="src\TimerTestSuite.h"/>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
@@ -75,6 +76,7 @@
|
|||||||
<ClCompile Include="src\WinConfigurationTest.cpp"/>
|
<ClCompile Include="src\WinConfigurationTest.cpp"/>
|
||||||
<ClCompile Include="src\WindowsTestSuite.cpp"/>
|
<ClCompile Include="src\WindowsTestSuite.cpp"/>
|
||||||
<ClCompile Include="src\WinRegistryTest.cpp"/>
|
<ClCompile Include="src\WinRegistryTest.cpp"/>
|
||||||
|
<ClCompile Include="src\WinServiceTest.cpp"/>
|
||||||
<ClCompile Include="src\TimerTest.cpp"/>
|
<ClCompile Include="src\TimerTest.cpp"/>
|
||||||
<ClCompile Include="src\TimerTestSuite.cpp"/>
|
<ClCompile Include="src\TimerTestSuite.cpp"/>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|||||||
@@ -131,6 +131,9 @@
|
|||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="src\WinRegistryTest.h">
|
<ClInclude Include="src\WinRegistryTest.h">
|
||||||
<Filter>Windows\Header Files</Filter>
|
<Filter>Windows\Header Files</Filter>
|
||||||
|
</ClInclude>
|
||||||
|
<ClInclude Include="src\WinServiceTest.h">
|
||||||
|
<Filter>Windows\Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="src\TimerTest.h">
|
<ClInclude Include="src\TimerTest.h">
|
||||||
<Filter>Timer\Header Files</Filter>
|
<Filter>Timer\Header Files</Filter>
|
||||||
@@ -211,6 +214,9 @@
|
|||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="src\WinRegistryTest.cpp">
|
<ClCompile Include="src\WinRegistryTest.cpp">
|
||||||
<Filter>Windows\Source Files</Filter>
|
<Filter>Windows\Source Files</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="src\WinServiceTest.cpp">
|
||||||
|
<Filter>Windows\Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="src\TimerTest.cpp">
|
<ClCompile Include="src\TimerTest.cpp">
|
||||||
<Filter>Timer\Source Files</Filter>
|
<Filter>Timer\Source Files</Filter>
|
||||||
|
|||||||
@@ -25,6 +25,7 @@
|
|||||||
<ClInclude Include="src\WinConfigurationTest.h"/>
|
<ClInclude Include="src\WinConfigurationTest.h"/>
|
||||||
<ClInclude Include="src\WindowsTestSuite.h"/>
|
<ClInclude Include="src\WindowsTestSuite.h"/>
|
||||||
<ClInclude Include="src\WinRegistryTest.h"/>
|
<ClInclude Include="src\WinRegistryTest.h"/>
|
||||||
|
<ClInclude Include="src\WinServiceTest.h"/>
|
||||||
<ClInclude Include="src\XMLConfigurationTest.h"/>
|
<ClInclude Include="src\XMLConfigurationTest.h"/>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<PropertyGroup Label="Globals">
|
<PropertyGroup Label="Globals">
|
||||||
@@ -76,6 +77,7 @@
|
|||||||
<ClCompile Include="src\WinConfigurationTest.cpp"/>
|
<ClCompile Include="src\WinConfigurationTest.cpp"/>
|
||||||
<ClCompile Include="src\WindowsTestSuite.cpp"/>
|
<ClCompile Include="src\WindowsTestSuite.cpp"/>
|
||||||
<ClCompile Include="src\WinRegistryTest.cpp"/>
|
<ClCompile Include="src\WinRegistryTest.cpp"/>
|
||||||
|
<ClCompile Include="src\WinServiceTest.cpp"/>
|
||||||
<ClCompile Include="src\XMLConfigurationTest.cpp"/>
|
<ClCompile Include="src\XMLConfigurationTest.cpp"/>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets"/>
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets"/>
|
||||||
|
|||||||
@@ -131,6 +131,9 @@
|
|||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="src\WinRegistryTest.h">
|
<ClInclude Include="src\WinRegistryTest.h">
|
||||||
<Filter>Windows\Header Files</Filter>
|
<Filter>Windows\Header Files</Filter>
|
||||||
|
</ClInclude>
|
||||||
|
<ClInclude Include="src\WinServiceTest.h">
|
||||||
|
<Filter>Windows\Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="src\TimerTest.h">
|
<ClInclude Include="src\TimerTest.h">
|
||||||
<Filter>Timer\Header Files</Filter>
|
<Filter>Timer\Header Files</Filter>
|
||||||
@@ -211,6 +214,9 @@
|
|||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="src\WinRegistryTest.cpp">
|
<ClCompile Include="src\WinRegistryTest.cpp">
|
||||||
<Filter>Windows\Source Files</Filter>
|
<Filter>Windows\Source Files</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="src\WinServiceTest.cpp">
|
||||||
|
<Filter>Windows\Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="src\TimerTest.cpp">
|
<ClCompile Include="src\TimerTest.cpp">
|
||||||
<Filter>Timer\Source Files</Filter>
|
<Filter>Timer\Source Files</Filter>
|
||||||
|
|||||||
@@ -335,6 +335,7 @@
|
|||||||
<ClInclude Include="src\WinConfigurationTest.h"/>
|
<ClInclude Include="src\WinConfigurationTest.h"/>
|
||||||
<ClInclude Include="src\WindowsTestSuite.h"/>
|
<ClInclude Include="src\WindowsTestSuite.h"/>
|
||||||
<ClInclude Include="src\WinRegistryTest.h"/>
|
<ClInclude Include="src\WinRegistryTest.h"/>
|
||||||
|
<ClInclude Include="src\WinServiceTest.h"/>
|
||||||
<ClInclude Include="src\TimerTest.h"/>
|
<ClInclude Include="src\TimerTest.h"/>
|
||||||
<ClInclude Include="src\TimerTestSuite.h"/>
|
<ClInclude Include="src\TimerTestSuite.h"/>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
@@ -363,6 +364,7 @@
|
|||||||
<ClCompile Include="src\WinConfigurationTest.cpp"/>
|
<ClCompile Include="src\WinConfigurationTest.cpp"/>
|
||||||
<ClCompile Include="src\WindowsTestSuite.cpp"/>
|
<ClCompile Include="src\WindowsTestSuite.cpp"/>
|
||||||
<ClCompile Include="src\WinRegistryTest.cpp"/>
|
<ClCompile Include="src\WinRegistryTest.cpp"/>
|
||||||
|
<ClCompile Include="src\WinServiceTest.cpp"/>
|
||||||
<ClCompile Include="src\TimerTest.cpp"/>
|
<ClCompile Include="src\TimerTest.cpp"/>
|
||||||
<ClCompile Include="src\TimerTestSuite.cpp"/>
|
<ClCompile Include="src\TimerTestSuite.cpp"/>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|||||||
@@ -131,6 +131,9 @@
|
|||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="src\WinRegistryTest.h">
|
<ClInclude Include="src\WinRegistryTest.h">
|
||||||
<Filter>Windows\Header Files</Filter>
|
<Filter>Windows\Header Files</Filter>
|
||||||
|
</ClInclude>
|
||||||
|
<ClInclude Include="src\WinServiceTest.h">
|
||||||
|
<Filter>Windows\Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="src\TimerTest.h">
|
<ClInclude Include="src\TimerTest.h">
|
||||||
<Filter>Timer\Header Files</Filter>
|
<Filter>Timer\Header Files</Filter>
|
||||||
@@ -211,6 +214,9 @@
|
|||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="src\WinRegistryTest.cpp">
|
<ClCompile Include="src\WinRegistryTest.cpp">
|
||||||
<Filter>Windows\Source Files</Filter>
|
<Filter>Windows\Source Files</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="src\WinServiceTest.cpp">
|
||||||
|
<Filter>Windows\Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="src\TimerTest.cpp">
|
<ClCompile Include="src\TimerTest.cpp">
|
||||||
<Filter>Timer\Source Files</Filter>
|
<Filter>Timer\Source Files</Filter>
|
||||||
|
|||||||
@@ -335,6 +335,7 @@
|
|||||||
<ClInclude Include="src\WinConfigurationTest.h"/>
|
<ClInclude Include="src\WinConfigurationTest.h"/>
|
||||||
<ClInclude Include="src\WindowsTestSuite.h"/>
|
<ClInclude Include="src\WindowsTestSuite.h"/>
|
||||||
<ClInclude Include="src\WinRegistryTest.h"/>
|
<ClInclude Include="src\WinRegistryTest.h"/>
|
||||||
|
<ClInclude Include="src\WinServiceTest.h"/>
|
||||||
<ClInclude Include="src\TimerTest.h"/>
|
<ClInclude Include="src\TimerTest.h"/>
|
||||||
<ClInclude Include="src\TimerTestSuite.h"/>
|
<ClInclude Include="src\TimerTestSuite.h"/>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
@@ -363,6 +364,7 @@
|
|||||||
<ClCompile Include="src\WinConfigurationTest.cpp"/>
|
<ClCompile Include="src\WinConfigurationTest.cpp"/>
|
||||||
<ClCompile Include="src\WindowsTestSuite.cpp"/>
|
<ClCompile Include="src\WindowsTestSuite.cpp"/>
|
||||||
<ClCompile Include="src\WinRegistryTest.cpp"/>
|
<ClCompile Include="src\WinRegistryTest.cpp"/>
|
||||||
|
<ClCompile Include="src\WinServiceTest.cpp"/>
|
||||||
<ClCompile Include="src\TimerTest.cpp"/>
|
<ClCompile Include="src\TimerTest.cpp"/>
|
||||||
<ClCompile Include="src\TimerTestSuite.cpp"/>
|
<ClCompile Include="src\TimerTestSuite.cpp"/>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|||||||
@@ -131,6 +131,9 @@
|
|||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="src\WinRegistryTest.h">
|
<ClInclude Include="src\WinRegistryTest.h">
|
||||||
<Filter>Windows\Header Files</Filter>
|
<Filter>Windows\Header Files</Filter>
|
||||||
|
</ClInclude>
|
||||||
|
<ClInclude Include="src\WinServiceTest.h">
|
||||||
|
<Filter>Windows\Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="src\TimerTest.h">
|
<ClInclude Include="src\TimerTest.h">
|
||||||
<Filter>Timer\Header Files</Filter>
|
<Filter>Timer\Header Files</Filter>
|
||||||
@@ -211,6 +214,9 @@
|
|||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="src\WinRegistryTest.cpp">
|
<ClCompile Include="src\WinRegistryTest.cpp">
|
||||||
<Filter>Windows\Source Files</Filter>
|
<Filter>Windows\Source Files</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="src\WinServiceTest.cpp">
|
||||||
|
<Filter>Windows\Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="src\TimerTest.cpp">
|
<ClCompile Include="src\TimerTest.cpp">
|
||||||
<Filter>Timer\Source Files</Filter>
|
<Filter>Timer\Source Files</Filter>
|
||||||
|
|||||||
@@ -328,6 +328,7 @@
|
|||||||
<ClInclude Include="src\WinConfigurationTest.h"/>
|
<ClInclude Include="src\WinConfigurationTest.h"/>
|
||||||
<ClInclude Include="src\WindowsTestSuite.h"/>
|
<ClInclude Include="src\WindowsTestSuite.h"/>
|
||||||
<ClInclude Include="src\WinRegistryTest.h"/>
|
<ClInclude Include="src\WinRegistryTest.h"/>
|
||||||
|
<ClInclude Include="src\WinServiceTest.h"/>
|
||||||
<ClInclude Include="src\XMLConfigurationTest.h"/>
|
<ClInclude Include="src\XMLConfigurationTest.h"/>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
@@ -356,6 +357,7 @@
|
|||||||
<ClCompile Include="src\WinConfigurationTest.cpp"/>
|
<ClCompile Include="src\WinConfigurationTest.cpp"/>
|
||||||
<ClCompile Include="src\WindowsTestSuite.cpp"/>
|
<ClCompile Include="src\WindowsTestSuite.cpp"/>
|
||||||
<ClCompile Include="src\WinRegistryTest.cpp"/>
|
<ClCompile Include="src\WinRegistryTest.cpp"/>
|
||||||
|
<ClCompile Include="src\WinServiceTest.cpp"/>
|
||||||
<ClCompile Include="src\XMLConfigurationTest.cpp"/>
|
<ClCompile Include="src\XMLConfigurationTest.cpp"/>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets"/>
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets"/>
|
||||||
|
|||||||
@@ -131,6 +131,9 @@
|
|||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="src\WinRegistryTest.h">
|
<ClInclude Include="src\WinRegistryTest.h">
|
||||||
<Filter>Windows\Header Files</Filter>
|
<Filter>Windows\Header Files</Filter>
|
||||||
|
</ClInclude>
|
||||||
|
<ClInclude Include="src\WinServiceTest.h">
|
||||||
|
<Filter>Windows\Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="src\TimerTest.h">
|
<ClInclude Include="src\TimerTest.h">
|
||||||
<Filter>Timer\Header Files</Filter>
|
<Filter>Timer\Header Files</Filter>
|
||||||
@@ -211,6 +214,9 @@
|
|||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="src\WinRegistryTest.cpp">
|
<ClCompile Include="src\WinRegistryTest.cpp">
|
||||||
<Filter>Windows\Source Files</Filter>
|
<Filter>Windows\Source Files</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="src\WinServiceTest.cpp">
|
||||||
|
<Filter>Windows\Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="src\TimerTest.cpp">
|
<ClCompile Include="src\TimerTest.cpp">
|
||||||
<Filter>Timer\Source Files</Filter>
|
<Filter>Timer\Source Files</Filter>
|
||||||
|
|||||||
@@ -328,6 +328,7 @@
|
|||||||
<ClInclude Include="src\WinConfigurationTest.h"/>
|
<ClInclude Include="src\WinConfigurationTest.h"/>
|
||||||
<ClInclude Include="src\WindowsTestSuite.h"/>
|
<ClInclude Include="src\WindowsTestSuite.h"/>
|
||||||
<ClInclude Include="src\WinRegistryTest.h"/>
|
<ClInclude Include="src\WinRegistryTest.h"/>
|
||||||
|
<ClInclude Include="src\WinServiceTest.h"/>
|
||||||
<ClInclude Include="src\XMLConfigurationTest.h"/>
|
<ClInclude Include="src\XMLConfigurationTest.h"/>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
@@ -356,6 +357,7 @@
|
|||||||
<ClCompile Include="src\WinConfigurationTest.cpp"/>
|
<ClCompile Include="src\WinConfigurationTest.cpp"/>
|
||||||
<ClCompile Include="src\WindowsTestSuite.cpp"/>
|
<ClCompile Include="src\WindowsTestSuite.cpp"/>
|
||||||
<ClCompile Include="src\WinRegistryTest.cpp"/>
|
<ClCompile Include="src\WinRegistryTest.cpp"/>
|
||||||
|
<ClCompile Include="src\WinServiceTest.cpp"/>
|
||||||
<ClCompile Include="src\XMLConfigurationTest.cpp"/>
|
<ClCompile Include="src\XMLConfigurationTest.cpp"/>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets"/>
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets"/>
|
||||||
|
|||||||
@@ -131,6 +131,9 @@
|
|||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="src\WinRegistryTest.h">
|
<ClInclude Include="src\WinRegistryTest.h">
|
||||||
<Filter>Windows\Header Files</Filter>
|
<Filter>Windows\Header Files</Filter>
|
||||||
|
</ClInclude>
|
||||||
|
<ClInclude Include="src\WinServiceTest.h">
|
||||||
|
<Filter>Windows\Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="src\TimerTest.h">
|
<ClInclude Include="src\TimerTest.h">
|
||||||
<Filter>Timer\Header Files</Filter>
|
<Filter>Timer\Header Files</Filter>
|
||||||
@@ -211,6 +214,9 @@
|
|||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="src\WinRegistryTest.cpp">
|
<ClCompile Include="src\WinRegistryTest.cpp">
|
||||||
<Filter>Windows\Source Files</Filter>
|
<Filter>Windows\Source Files</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="src\WinServiceTest.cpp">
|
||||||
|
<Filter>Windows\Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="src\TimerTest.cpp">
|
<ClCompile Include="src\TimerTest.cpp">
|
||||||
<Filter>Timer\Source Files</Filter>
|
<Filter>Timer\Source Files</Filter>
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
<ItemGroup Label="ProjectConfigurations">
|
<ItemGroup Label="ProjectConfigurations">
|
||||||
<ProjectConfiguration Include="debug_shared|Win32">
|
<ProjectConfiguration Include="debug_shared|Win32">
|
||||||
@@ -328,6 +328,7 @@
|
|||||||
<ClInclude Include="src\WinConfigurationTest.h" />
|
<ClInclude Include="src\WinConfigurationTest.h" />
|
||||||
<ClInclude Include="src\WindowsTestSuite.h" />
|
<ClInclude Include="src\WindowsTestSuite.h" />
|
||||||
<ClInclude Include="src\WinRegistryTest.h" />
|
<ClInclude Include="src\WinRegistryTest.h" />
|
||||||
|
<ClInclude Include="src\WinServiceTest.h" />
|
||||||
<ClInclude Include="src\XMLConfigurationTest.h" />
|
<ClInclude Include="src\XMLConfigurationTest.h" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
@@ -356,6 +357,7 @@
|
|||||||
<ClCompile Include="src\WinConfigurationTest.cpp" />
|
<ClCompile Include="src\WinConfigurationTest.cpp" />
|
||||||
<ClCompile Include="src\WindowsTestSuite.cpp" />
|
<ClCompile Include="src\WindowsTestSuite.cpp" />
|
||||||
<ClCompile Include="src\WinRegistryTest.cpp" />
|
<ClCompile Include="src\WinRegistryTest.cpp" />
|
||||||
|
<ClCompile Include="src\WinServiceTest.cpp" />
|
||||||
<ClCompile Include="src\XMLConfigurationTest.cpp" />
|
<ClCompile Include="src\XMLConfigurationTest.cpp" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||||
|
|||||||
@@ -131,6 +131,9 @@
|
|||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="src\WinRegistryTest.h">
|
<ClInclude Include="src\WinRegistryTest.h">
|
||||||
<Filter>Windows\Header Files</Filter>
|
<Filter>Windows\Header Files</Filter>
|
||||||
|
</ClInclude>
|
||||||
|
<ClInclude Include="src\WinServiceTest.h">
|
||||||
|
<Filter>Windows\Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="src\TimerTest.h">
|
<ClInclude Include="src\TimerTest.h">
|
||||||
<Filter>Timer\Header Files</Filter>
|
<Filter>Timer\Header Files</Filter>
|
||||||
@@ -138,6 +141,9 @@
|
|||||||
<ClInclude Include="src\TimerTestSuite.h">
|
<ClInclude Include="src\TimerTestSuite.h">
|
||||||
<Filter>Timer\Header Files</Filter>
|
<Filter>Timer\Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
|
<ClInclude Include="src\WinServiceTest.h">
|
||||||
|
<Filter>Windows\Header Files</Filter>
|
||||||
|
</ClInclude>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ClCompile Include="src\UtilTestSuite.cpp">
|
<ClCompile Include="src\UtilTestSuite.cpp">
|
||||||
@@ -211,6 +217,9 @@
|
|||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="src\WinRegistryTest.cpp">
|
<ClCompile Include="src\WinRegistryTest.cpp">
|
||||||
<Filter>Windows\Source Files</Filter>
|
<Filter>Windows\Source Files</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="src\WinServiceTest.cpp">
|
||||||
|
<Filter>Windows\Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="src\TimerTest.cpp">
|
<ClCompile Include="src\TimerTest.cpp">
|
||||||
<Filter>Timer\Source Files</Filter>
|
<Filter>Timer\Source Files</Filter>
|
||||||
@@ -218,5 +227,8 @@
|
|||||||
<ClCompile Include="src\TimerTestSuite.cpp">
|
<ClCompile Include="src\TimerTestSuite.cpp">
|
||||||
<Filter>Timer\Source Files</Filter>
|
<Filter>Timer\Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
|
<ClCompile Include="src\WinServiceTest.cpp">
|
||||||
|
<Filter>Windows\Source Files</Filter>
|
||||||
|
</ClCompile>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
</Project>
|
</Project>
|
||||||
@@ -575,6 +575,8 @@
|
|||||||
RelativePath=".\src\WindowsTestSuite.h"/>
|
RelativePath=".\src\WindowsTestSuite.h"/>
|
||||||
<File
|
<File
|
||||||
RelativePath=".\src\WinRegistryTest.h"/>
|
RelativePath=".\src\WinRegistryTest.h"/>
|
||||||
|
<File
|
||||||
|
RelativePath=".\src\WinServiceTest.h"/>
|
||||||
</Filter>
|
</Filter>
|
||||||
<Filter
|
<Filter
|
||||||
Name="Source Files">
|
Name="Source Files">
|
||||||
@@ -584,6 +586,8 @@
|
|||||||
RelativePath=".\src\WindowsTestSuite.cpp"/>
|
RelativePath=".\src\WindowsTestSuite.cpp"/>
|
||||||
<File
|
<File
|
||||||
RelativePath=".\src\WinRegistryTest.cpp"/>
|
RelativePath=".\src\WinRegistryTest.cpp"/>
|
||||||
|
<File
|
||||||
|
RelativePath=".\src\WinServiceTest.cpp"/>
|
||||||
</Filter>
|
</Filter>
|
||||||
</Filter>
|
</Filter>
|
||||||
<Filter
|
<Filter
|
||||||
|
|||||||
@@ -335,6 +335,7 @@
|
|||||||
<ClInclude Include="src\WinConfigurationTest.h"/>
|
<ClInclude Include="src\WinConfigurationTest.h"/>
|
||||||
<ClInclude Include="src\WindowsTestSuite.h"/>
|
<ClInclude Include="src\WindowsTestSuite.h"/>
|
||||||
<ClInclude Include="src\WinRegistryTest.h"/>
|
<ClInclude Include="src\WinRegistryTest.h"/>
|
||||||
|
<ClInclude Include="src\WinServiceTest.h"/>
|
||||||
<ClInclude Include="src\TimerTest.h"/>
|
<ClInclude Include="src\TimerTest.h"/>
|
||||||
<ClInclude Include="src\TimerTestSuite.h"/>
|
<ClInclude Include="src\TimerTestSuite.h"/>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
@@ -363,6 +364,7 @@
|
|||||||
<ClCompile Include="src\WinConfigurationTest.cpp"/>
|
<ClCompile Include="src\WinConfigurationTest.cpp"/>
|
||||||
<ClCompile Include="src\WindowsTestSuite.cpp"/>
|
<ClCompile Include="src\WindowsTestSuite.cpp"/>
|
||||||
<ClCompile Include="src\WinRegistryTest.cpp"/>
|
<ClCompile Include="src\WinRegistryTest.cpp"/>
|
||||||
|
<ClCompile Include="src\WinServiceTest.cpp"/>
|
||||||
<ClCompile Include="src\TimerTest.cpp"/>
|
<ClCompile Include="src\TimerTest.cpp"/>
|
||||||
<ClCompile Include="src\TimerTestSuite.cpp"/>
|
<ClCompile Include="src\TimerTestSuite.cpp"/>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|||||||
@@ -131,6 +131,9 @@
|
|||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="src\WinRegistryTest.h">
|
<ClInclude Include="src\WinRegistryTest.h">
|
||||||
<Filter>Windows\Header Files</Filter>
|
<Filter>Windows\Header Files</Filter>
|
||||||
|
</ClInclude>
|
||||||
|
<ClInclude Include="src\WinServiceTest.h">
|
||||||
|
<Filter>Windows\Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="src\TimerTest.h">
|
<ClInclude Include="src\TimerTest.h">
|
||||||
<Filter>Timer\Header Files</Filter>
|
<Filter>Timer\Header Files</Filter>
|
||||||
@@ -211,6 +214,9 @@
|
|||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="src\WinRegistryTest.cpp">
|
<ClCompile Include="src\WinRegistryTest.cpp">
|
||||||
<Filter>Windows\Source Files</Filter>
|
<Filter>Windows\Source Files</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="src\WinServiceTest.cpp">
|
||||||
|
<Filter>Windows\Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="src\TimerTest.cpp">
|
<ClCompile Include="src\TimerTest.cpp">
|
||||||
<Filter>Timer\Source Files</Filter>
|
<Filter>Timer\Source Files</Filter>
|
||||||
|
|||||||
@@ -335,6 +335,7 @@
|
|||||||
<ClInclude Include="src\WinConfigurationTest.h"/>
|
<ClInclude Include="src\WinConfigurationTest.h"/>
|
||||||
<ClInclude Include="src\WindowsTestSuite.h"/>
|
<ClInclude Include="src\WindowsTestSuite.h"/>
|
||||||
<ClInclude Include="src\WinRegistryTest.h"/>
|
<ClInclude Include="src\WinRegistryTest.h"/>
|
||||||
|
<ClInclude Include="src\WinServiceTest.h"/>
|
||||||
<ClInclude Include="src\TimerTest.h"/>
|
<ClInclude Include="src\TimerTest.h"/>
|
||||||
<ClInclude Include="src\TimerTestSuite.h"/>
|
<ClInclude Include="src\TimerTestSuite.h"/>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
@@ -363,6 +364,7 @@
|
|||||||
<ClCompile Include="src\WinConfigurationTest.cpp"/>
|
<ClCompile Include="src\WinConfigurationTest.cpp"/>
|
||||||
<ClCompile Include="src\WindowsTestSuite.cpp"/>
|
<ClCompile Include="src\WindowsTestSuite.cpp"/>
|
||||||
<ClCompile Include="src\WinRegistryTest.cpp"/>
|
<ClCompile Include="src\WinRegistryTest.cpp"/>
|
||||||
|
<ClCompile Include="src\WinServiceTest.cpp"/>
|
||||||
<ClCompile Include="src\TimerTest.cpp"/>
|
<ClCompile Include="src\TimerTest.cpp"/>
|
||||||
<ClCompile Include="src\TimerTestSuite.cpp"/>
|
<ClCompile Include="src\TimerTestSuite.cpp"/>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|||||||
@@ -131,6 +131,9 @@
|
|||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="src\WinRegistryTest.h">
|
<ClInclude Include="src\WinRegistryTest.h">
|
||||||
<Filter>Windows\Header Files</Filter>
|
<Filter>Windows\Header Files</Filter>
|
||||||
|
</ClInclude>
|
||||||
|
<ClInclude Include="src\WinServiceTest.h">
|
||||||
|
<Filter>Windows\Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="src\TimerTest.h">
|
<ClInclude Include="src\TimerTest.h">
|
||||||
<Filter>Timer\Header Files</Filter>
|
<Filter>Timer\Header Files</Filter>
|
||||||
@@ -211,6 +214,9 @@
|
|||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="src\WinRegistryTest.cpp">
|
<ClCompile Include="src\WinRegistryTest.cpp">
|
||||||
<Filter>Windows\Source Files</Filter>
|
<Filter>Windows\Source Files</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="src\WinServiceTest.cpp">
|
||||||
|
<Filter>Windows\Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="src\TimerTest.cpp">
|
<ClCompile Include="src\TimerTest.cpp">
|
||||||
<Filter>Timer\Source Files</Filter>
|
<Filter>Timer\Source Files</Filter>
|
||||||
|
|||||||
@@ -328,6 +328,7 @@
|
|||||||
<ClInclude Include="src\WinConfigurationTest.h"/>
|
<ClInclude Include="src\WinConfigurationTest.h"/>
|
||||||
<ClInclude Include="src\WindowsTestSuite.h"/>
|
<ClInclude Include="src\WindowsTestSuite.h"/>
|
||||||
<ClInclude Include="src\WinRegistryTest.h"/>
|
<ClInclude Include="src\WinRegistryTest.h"/>
|
||||||
|
<ClInclude Include="src\WinServiceTest.h"/>
|
||||||
<ClInclude Include="src\XMLConfigurationTest.h"/>
|
<ClInclude Include="src\XMLConfigurationTest.h"/>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
@@ -356,6 +357,7 @@
|
|||||||
<ClCompile Include="src\WinConfigurationTest.cpp"/>
|
<ClCompile Include="src\WinConfigurationTest.cpp"/>
|
||||||
<ClCompile Include="src\WindowsTestSuite.cpp"/>
|
<ClCompile Include="src\WindowsTestSuite.cpp"/>
|
||||||
<ClCompile Include="src\WinRegistryTest.cpp"/>
|
<ClCompile Include="src\WinRegistryTest.cpp"/>
|
||||||
|
<ClCompile Include="src\WinServiceTest.cpp"/>
|
||||||
<ClCompile Include="src\XMLConfigurationTest.cpp"/>
|
<ClCompile Include="src\XMLConfigurationTest.cpp"/>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets"/>
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets"/>
|
||||||
|
|||||||
@@ -137,6 +137,9 @@
|
|||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="src\TimerTestSuite.h">
|
<ClInclude Include="src\TimerTestSuite.h">
|
||||||
<Filter>Timer\Header Files</Filter>
|
<Filter>Timer\Header Files</Filter>
|
||||||
|
</ClInclude>
|
||||||
|
<ClInclude Include="src\WinServiceTest.h">
|
||||||
|
<Filter>Windows\Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
@@ -217,6 +220,9 @@
|
|||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="src\TimerTestSuite.cpp">
|
<ClCompile Include="src\TimerTestSuite.cpp">
|
||||||
<Filter>Timer\Source Files</Filter>
|
<Filter>Timer\Source Files</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="src\WinServiceTest.cpp">
|
||||||
|
<Filter>Windows\Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
</Project>
|
</Project>
|
||||||
@@ -328,6 +328,7 @@
|
|||||||
<ClInclude Include="src\WinConfigurationTest.h"/>
|
<ClInclude Include="src\WinConfigurationTest.h"/>
|
||||||
<ClInclude Include="src\WindowsTestSuite.h"/>
|
<ClInclude Include="src\WindowsTestSuite.h"/>
|
||||||
<ClInclude Include="src\WinRegistryTest.h"/>
|
<ClInclude Include="src\WinRegistryTest.h"/>
|
||||||
|
<ClInclude Include="src\WinServiceTest.h" />
|
||||||
<ClInclude Include="src\XMLConfigurationTest.h"/>
|
<ClInclude Include="src\XMLConfigurationTest.h"/>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
@@ -356,6 +357,7 @@
|
|||||||
<ClCompile Include="src\WinConfigurationTest.cpp"/>
|
<ClCompile Include="src\WinConfigurationTest.cpp"/>
|
||||||
<ClCompile Include="src\WindowsTestSuite.cpp"/>
|
<ClCompile Include="src\WindowsTestSuite.cpp"/>
|
||||||
<ClCompile Include="src\WinRegistryTest.cpp"/>
|
<ClCompile Include="src\WinRegistryTest.cpp"/>
|
||||||
|
<ClCompile Include="src\WinServiceTest.cpp"/>
|
||||||
<ClCompile Include="src\XMLConfigurationTest.cpp"/>
|
<ClCompile Include="src\XMLConfigurationTest.cpp"/>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets"/>
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets"/>
|
||||||
|
|||||||
@@ -137,6 +137,9 @@
|
|||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="src\TimerTestSuite.h">
|
<ClInclude Include="src\TimerTestSuite.h">
|
||||||
<Filter>Timer\Header Files</Filter>
|
<Filter>Timer\Header Files</Filter>
|
||||||
|
</ClInclude>
|
||||||
|
<ClInclude Include="src\WinServiceTest.h">
|
||||||
|
<Filter>Windows\Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
@@ -217,6 +220,9 @@
|
|||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="src\TimerTestSuite.cpp">
|
<ClCompile Include="src\TimerTestSuite.cpp">
|
||||||
<Filter>Timer\Source Files</Filter>
|
<Filter>Timer\Source Files</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="src\WinServiceTest.cpp">
|
||||||
|
<Filter>Windows\Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
</Project>
|
</Project>
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
<ItemGroup Label="ProjectConfigurations">
|
<ItemGroup Label="ProjectConfigurations">
|
||||||
<ProjectConfiguration Include="debug_shared|x64">
|
<ProjectConfiguration Include="debug_shared|x64">
|
||||||
@@ -328,6 +328,7 @@
|
|||||||
<ClInclude Include="src\WinConfigurationTest.h" />
|
<ClInclude Include="src\WinConfigurationTest.h" />
|
||||||
<ClInclude Include="src\WindowsTestSuite.h" />
|
<ClInclude Include="src\WindowsTestSuite.h" />
|
||||||
<ClInclude Include="src\WinRegistryTest.h" />
|
<ClInclude Include="src\WinRegistryTest.h" />
|
||||||
|
<ClInclude Include="src\WinServiceTest.h" />
|
||||||
<ClInclude Include="src\XMLConfigurationTest.h" />
|
<ClInclude Include="src\XMLConfigurationTest.h" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
@@ -356,6 +357,7 @@
|
|||||||
<ClCompile Include="src\WinConfigurationTest.cpp" />
|
<ClCompile Include="src\WinConfigurationTest.cpp" />
|
||||||
<ClCompile Include="src\WindowsTestSuite.cpp" />
|
<ClCompile Include="src\WindowsTestSuite.cpp" />
|
||||||
<ClCompile Include="src\WinRegistryTest.cpp" />
|
<ClCompile Include="src\WinRegistryTest.cpp" />
|
||||||
|
<ClCompile Include="src\WinServiceTest.cpp" />
|
||||||
<ClCompile Include="src\XMLConfigurationTest.cpp" />
|
<ClCompile Include="src\XMLConfigurationTest.cpp" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||||
|
|||||||
@@ -138,6 +138,9 @@
|
|||||||
<ClInclude Include="src\TimerTestSuite.h">
|
<ClInclude Include="src\TimerTestSuite.h">
|
||||||
<Filter>Timer\Header Files</Filter>
|
<Filter>Timer\Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
|
<ClInclude Include="src\WinServiceTest.h">
|
||||||
|
<Filter>Windows\Header Files</Filter>
|
||||||
|
</ClInclude>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ClCompile Include="src\UtilTestSuite.cpp">
|
<ClCompile Include="src\UtilTestSuite.cpp">
|
||||||
@@ -218,5 +221,8 @@
|
|||||||
<ClCompile Include="src\TimerTestSuite.cpp">
|
<ClCompile Include="src\TimerTestSuite.cpp">
|
||||||
<Filter>Timer\Source Files</Filter>
|
<Filter>Timer\Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
|
<ClCompile Include="src\WinServiceTest.cpp">
|
||||||
|
<Filter>Windows\Source Files</Filter>
|
||||||
|
</ClCompile>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
</Project>
|
</Project>
|
||||||
@@ -575,6 +575,8 @@
|
|||||||
RelativePath=".\src\WindowsTestSuite.h"/>
|
RelativePath=".\src\WindowsTestSuite.h"/>
|
||||||
<File
|
<File
|
||||||
RelativePath=".\src\WinRegistryTest.h"/>
|
RelativePath=".\src\WinRegistryTest.h"/>
|
||||||
|
<File
|
||||||
|
RelativePath=".\src\WinServiceTest.h"/>
|
||||||
</Filter>
|
</Filter>
|
||||||
<Filter
|
<Filter
|
||||||
Name="Source Files">
|
Name="Source Files">
|
||||||
@@ -584,6 +586,8 @@
|
|||||||
RelativePath=".\src\WindowsTestSuite.cpp"/>
|
RelativePath=".\src\WindowsTestSuite.cpp"/>
|
||||||
<File
|
<File
|
||||||
RelativePath=".\src\WinRegistryTest.cpp"/>
|
RelativePath=".\src\WinRegistryTest.cpp"/>
|
||||||
|
<File
|
||||||
|
RelativePath=".\src\WinServiceTest.cpp"/>
|
||||||
</Filter>
|
</Filter>
|
||||||
</Filter>
|
</Filter>
|
||||||
<Filter
|
<Filter
|
||||||
|
|||||||
61
Util/testsuite/src/WinServiceTest.cpp
Normal file
61
Util/testsuite/src/WinServiceTest.cpp
Normal file
@@ -0,0 +1,61 @@
|
|||||||
|
#include "WinServiceTest.h"
|
||||||
|
#include "CppUnit/TestCaller.h"
|
||||||
|
#include "CppUnit/TestSuite.h"
|
||||||
|
|
||||||
|
using Poco::Util::WinService;
|
||||||
|
|
||||||
|
|
||||||
|
WinServiceTest::WinServiceTest(const std::string& name) : CppUnit::TestCase(name) {
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
WinServiceTest::~WinServiceTest() {
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void WinServiceTest::testServiceCouldCreatedWithExistingConnection() {
|
||||||
|
|
||||||
|
SC_HANDLE scmHandle = OpenSCManager(NULL, NULL, SC_MANAGER_ALL_ACCESS);
|
||||||
|
|
||||||
|
assertTrue(scmHandle);
|
||||||
|
|
||||||
|
WinService spoolerService{ scmHandle, "Spooler" };
|
||||||
|
|
||||||
|
assertTrue(spoolerService.isRegistered());
|
||||||
|
}
|
||||||
|
|
||||||
|
void WinServiceTest::testServiceReturnsTrueIfStopped() {
|
||||||
|
spoolerService_.stop();
|
||||||
|
assertTrue(spoolerService_.isStopped());
|
||||||
|
}
|
||||||
|
|
||||||
|
void WinServiceTest::testServiceReturnsFailureActionConfigured() {
|
||||||
|
auto failureActions = spoolerService_.getFailureActions();
|
||||||
|
assertEqual(3, failureActions.size());
|
||||||
|
|
||||||
|
assertEqual(WinService::SVC_RESTART, failureActions[0]);
|
||||||
|
assertEqual(WinService::SVC_RESTART, failureActions[1]);
|
||||||
|
assertEqual(WinService::SVC_NONE, failureActions[2]);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void WinServiceTest::setUp() {
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void WinServiceTest::tearDown() {
|
||||||
|
if (spoolerService_.isStopped()) {
|
||||||
|
spoolerService_.start();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
CppUnit::Test* WinServiceTest::suite() {
|
||||||
|
CppUnit::TestSuite* pSuite = new CppUnit::TestSuite("WinServiceTest");
|
||||||
|
|
||||||
|
CppUnit_addTest(pSuite, WinServiceTest, testServiceCouldCreatedWithExistingConnection);
|
||||||
|
CppUnit_addTest(pSuite, WinServiceTest, testServiceReturnsTrueIfStopped);
|
||||||
|
CppUnit_addTest(pSuite, WinServiceTest, testServiceReturnsFailureActionConfigured);
|
||||||
|
|
||||||
|
return pSuite;
|
||||||
|
}
|
||||||
29
Util/testsuite/src/WinServiceTest.h
Normal file
29
Util/testsuite/src/WinServiceTest.h
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
#ifndef WinServiceTest_INCLUDED
|
||||||
|
#define WinServiceTest_INCLUDED
|
||||||
|
|
||||||
|
|
||||||
|
#include "Poco/Util/Util.h"
|
||||||
|
#include "CppUnit/TestCase.h"
|
||||||
|
#include "Poco/Util/WinService.h"
|
||||||
|
|
||||||
|
|
||||||
|
class WinServiceTest : public CppUnit::TestCase {
|
||||||
|
public:
|
||||||
|
WinServiceTest(const std::string& name);
|
||||||
|
~WinServiceTest();
|
||||||
|
|
||||||
|
void testServiceCouldCreatedWithExistingConnection();
|
||||||
|
void testServiceReturnsTrueIfStopped();
|
||||||
|
void testServiceReturnsFailureActionConfigured();
|
||||||
|
|
||||||
|
void setUp();
|
||||||
|
void tearDown();
|
||||||
|
|
||||||
|
static CppUnit::Test* suite();
|
||||||
|
|
||||||
|
private:
|
||||||
|
Poco::Util::WinService spoolerService_{ "Spooler" };
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
#endif // WinServiceTest_INCLUDED
|
||||||
@@ -11,6 +11,7 @@
|
|||||||
#include "WindowsTestSuite.h"
|
#include "WindowsTestSuite.h"
|
||||||
#include "WinRegistryTest.h"
|
#include "WinRegistryTest.h"
|
||||||
#include "WinConfigurationTest.h"
|
#include "WinConfigurationTest.h"
|
||||||
|
#include "WinServiceTest.h"
|
||||||
|
|
||||||
|
|
||||||
CppUnit::Test* WindowsTestSuite::suite()
|
CppUnit::Test* WindowsTestSuite::suite()
|
||||||
@@ -19,6 +20,7 @@ CppUnit::Test* WindowsTestSuite::suite()
|
|||||||
|
|
||||||
pSuite->addTest(WinRegistryTest::suite());
|
pSuite->addTest(WinRegistryTest::suite());
|
||||||
pSuite->addTest(WinConfigurationTest::suite());
|
pSuite->addTest(WinConfigurationTest::suite());
|
||||||
|
pSuite->addTest(WinServiceTest::suite());
|
||||||
|
|
||||||
return pSuite;
|
return pSuite;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user