Merge pull request #2841 from KevDi/serviceManagerImprovments

Service manager improvments
This commit is contained in:
Günter Obiltschnig
2019-11-25 11:57:58 +01:00
committed by GitHub
33 changed files with 535 additions and 148 deletions

View File

@@ -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.
@@ -88,6 +115,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.
@@ -106,6 +136,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.

View File

@@ -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)
{ {

View File

@@ -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
) )

View File

@@ -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

View File

@@ -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>

View File

@@ -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>

View File

@@ -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"/>

View File

@@ -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>

View File

@@ -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>

View File

@@ -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>

View File

@@ -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>

View File

@@ -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>

View File

@@ -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"/>

View File

@@ -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>

View File

@@ -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"/>

View File

@@ -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>

View File

@@ -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">
@@ -32,7 +32,7 @@
<RootNamespace>TestSuite</RootNamespace> <RootNamespace>TestSuite</RootNamespace>
<Keyword>Win32Proj</Keyword> <Keyword>Win32Proj</Keyword>
</PropertyGroup> </PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props"/> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='release_static_md|Win32'" Label="Configuration"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='release_static_md|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType> <ConfigurationType>Application</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet> <CharacterSet>MultiByte</CharacterSet>
@@ -63,27 +63,27 @@
<CharacterSet>MultiByte</CharacterSet> <CharacterSet>MultiByte</CharacterSet>
<PlatformToolset>v141</PlatformToolset> <PlatformToolset>v141</PlatformToolset>
</PropertyGroup> </PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props"/> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings"/> <ImportGroup Label="ExtensionSettings" />
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='release_static_md|Win32'" Label="PropertySheets"> <ImportGroup Condition="'$(Configuration)|$(Platform)'=='release_static_md|Win32'" Label="PropertySheets">
<Import Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props"/> <Import Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" />
</ImportGroup> </ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='debug_static_md|Win32'" Label="PropertySheets"> <ImportGroup Condition="'$(Configuration)|$(Platform)'=='debug_static_md|Win32'" Label="PropertySheets">
<Import Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props"/> <Import Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" />
</ImportGroup> </ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='release_static_mt|Win32'" Label="PropertySheets"> <ImportGroup Condition="'$(Configuration)|$(Platform)'=='release_static_mt|Win32'" Label="PropertySheets">
<Import Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props"/> <Import Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" />
</ImportGroup> </ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='debug_static_mt|Win32'" Label="PropertySheets"> <ImportGroup Condition="'$(Configuration)|$(Platform)'=='debug_static_mt|Win32'" Label="PropertySheets">
<Import Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props"/> <Import Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" />
</ImportGroup> </ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='release_shared|Win32'" Label="PropertySheets"> <ImportGroup Condition="'$(Configuration)|$(Platform)'=='release_shared|Win32'" Label="PropertySheets">
<Import Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props"/> <Import Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" />
</ImportGroup> </ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='debug_shared|Win32'" Label="PropertySheets"> <ImportGroup Condition="'$(Configuration)|$(Platform)'=='debug_shared|Win32'" Label="PropertySheets">
<Import Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props"/> <Import Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" />
</ImportGroup> </ImportGroup>
<PropertyGroup Label="UserMacros"/> <PropertyGroup Label="UserMacros" />
<PropertyGroup> <PropertyGroup>
<_ProjectFileVersion>15.0.27625.0</_ProjectFileVersion> <_ProjectFileVersion>15.0.27625.0</_ProjectFileVersion>
<TargetName Condition="'$(Configuration)|$(Platform)'=='debug_shared|Win32'">TestSuited</TargetName> <TargetName Condition="'$(Configuration)|$(Platform)'=='debug_shared|Win32'">TestSuited</TargetName>
@@ -136,7 +136,7 @@
<TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType> <TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
<ForceConformanceInForLoopScope>true</ForceConformanceInForLoopScope> <ForceConformanceInForLoopScope>true</ForceConformanceInForLoopScope>
<RuntimeTypeInfo>true</RuntimeTypeInfo> <RuntimeTypeInfo>true</RuntimeTypeInfo>
<PrecompiledHeader/> <PrecompiledHeader />
<WarningLevel>Level3</WarningLevel> <WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat> <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<CompileAs>Default</CompileAs> <CompileAs>Default</CompileAs>
@@ -167,9 +167,9 @@
<TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType> <TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
<ForceConformanceInForLoopScope>true</ForceConformanceInForLoopScope> <ForceConformanceInForLoopScope>true</ForceConformanceInForLoopScope>
<RuntimeTypeInfo>true</RuntimeTypeInfo> <RuntimeTypeInfo>true</RuntimeTypeInfo>
<PrecompiledHeader/> <PrecompiledHeader />
<WarningLevel>Level3</WarningLevel> <WarningLevel>Level3</WarningLevel>
<DebugInformationFormat/> <DebugInformationFormat />
<CompileAs>Default</CompileAs> <CompileAs>Default</CompileAs>
</ClCompile> </ClCompile>
<Link> <Link>
@@ -196,7 +196,7 @@
<TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType> <TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
<ForceConformanceInForLoopScope>true</ForceConformanceInForLoopScope> <ForceConformanceInForLoopScope>true</ForceConformanceInForLoopScope>
<RuntimeTypeInfo>true</RuntimeTypeInfo> <RuntimeTypeInfo>true</RuntimeTypeInfo>
<PrecompiledHeader/> <PrecompiledHeader />
<WarningLevel>Level3</WarningLevel> <WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat> <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<CompileAs>Default</CompileAs> <CompileAs>Default</CompileAs>
@@ -227,9 +227,9 @@
<TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType> <TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
<ForceConformanceInForLoopScope>true</ForceConformanceInForLoopScope> <ForceConformanceInForLoopScope>true</ForceConformanceInForLoopScope>
<RuntimeTypeInfo>true</RuntimeTypeInfo> <RuntimeTypeInfo>true</RuntimeTypeInfo>
<PrecompiledHeader/> <PrecompiledHeader />
<WarningLevel>Level3</WarningLevel> <WarningLevel>Level3</WarningLevel>
<DebugInformationFormat/> <DebugInformationFormat />
<CompileAs>Default</CompileAs> <CompileAs>Default</CompileAs>
</ClCompile> </ClCompile>
<Link> <Link>
@@ -256,7 +256,7 @@
<TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType> <TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
<ForceConformanceInForLoopScope>true</ForceConformanceInForLoopScope> <ForceConformanceInForLoopScope>true</ForceConformanceInForLoopScope>
<RuntimeTypeInfo>true</RuntimeTypeInfo> <RuntimeTypeInfo>true</RuntimeTypeInfo>
<PrecompiledHeader/> <PrecompiledHeader />
<WarningLevel>Level3</WarningLevel> <WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat> <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<CompileAs>Default</CompileAs> <CompileAs>Default</CompileAs>
@@ -287,9 +287,9 @@
<TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType> <TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
<ForceConformanceInForLoopScope>true</ForceConformanceInForLoopScope> <ForceConformanceInForLoopScope>true</ForceConformanceInForLoopScope>
<RuntimeTypeInfo>true</RuntimeTypeInfo> <RuntimeTypeInfo>true</RuntimeTypeInfo>
<PrecompiledHeader/> <PrecompiledHeader />
<WarningLevel>Level3</WarningLevel> <WarningLevel>Level3</WarningLevel>
<DebugInformationFormat/> <DebugInformationFormat />
<CompileAs>Default</CompileAs> <CompileAs>Default</CompileAs>
</ClCompile> </ClCompile>
<Link> <Link>
@@ -304,60 +304,62 @@
</Link> </Link>
</ItemDefinitionGroup> </ItemDefinitionGroup>
<ItemGroup> <ItemGroup>
<ClInclude Include="src\AbstractConfigurationTest.h"/> <ClInclude Include="src\AbstractConfigurationTest.h" />
<ClInclude Include="src\ConfigurationMapperTest.h"/> <ClInclude Include="src\ConfigurationMapperTest.h" />
<ClInclude Include="src\ConfigurationTestSuite.h"/> <ClInclude Include="src\ConfigurationTestSuite.h" />
<ClInclude Include="src\ConfigurationViewTest.h"/> <ClInclude Include="src\ConfigurationViewTest.h" />
<ClInclude Include="src\FilesystemConfigurationTest.h"/> <ClInclude Include="src\FilesystemConfigurationTest.h" />
<ClInclude Include="src\HelpFormatterTest.h"/> <ClInclude Include="src\HelpFormatterTest.h" />
<ClInclude Include="src\IniFileConfigurationTest.h"/> <ClInclude Include="src\IniFileConfigurationTest.h" />
<ClInclude Include="src\JSONConfigurationTest.h"/> <ClInclude Include="src\JSONConfigurationTest.h" />
<ClInclude Include="src\LayeredConfigurationTest.h"/> <ClInclude Include="src\LayeredConfigurationTest.h" />
<ClInclude Include="src\LoggingConfiguratorTest.h"/> <ClInclude Include="src\LoggingConfiguratorTest.h" />
<ClInclude Include="src\MapConfigurationTest.h"/> <ClInclude Include="src\MapConfigurationTest.h" />
<ClInclude Include="src\OptionProcessorTest.h"/> <ClInclude Include="src\OptionProcessorTest.h" />
<ClInclude Include="src\OptionSetTest.h"/> <ClInclude Include="src\OptionSetTest.h" />
<ClInclude Include="src\OptionsTestSuite.h"/> <ClInclude Include="src\OptionsTestSuite.h" />
<ClInclude Include="src\OptionTest.h"/> <ClInclude Include="src\OptionTest.h" />
<ClInclude Include="src\PropertyFileConfigurationTest.h"/> <ClInclude Include="src\PropertyFileConfigurationTest.h" />
<ClInclude Include="src\SystemConfigurationTest.h"/> <ClInclude Include="src\SystemConfigurationTest.h" />
<ClInclude Include="src\TimerTest.h"/> <ClInclude Include="src\TimerTest.h" />
<ClInclude Include="src\TimerTestSuite.h"/> <ClInclude Include="src\TimerTestSuite.h" />
<ClInclude Include="src\UtilTestSuite.h"/> <ClInclude Include="src\UtilTestSuite.h" />
<ClInclude Include="src\ValidatorTest.h"/> <ClInclude Include="src\ValidatorTest.h" />
<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\XMLConfigurationTest.h"/> <ClInclude Include="src\WinServiceTest.h" />
<ClInclude Include="src\XMLConfigurationTest.h" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ClCompile Include="src\AbstractConfigurationTest.cpp"/> <ClCompile Include="src\AbstractConfigurationTest.cpp" />
<ClCompile Include="src\ConfigurationMapperTest.cpp"/> <ClCompile Include="src\ConfigurationMapperTest.cpp" />
<ClCompile Include="src\ConfigurationTestSuite.cpp"/> <ClCompile Include="src\ConfigurationTestSuite.cpp" />
<ClCompile Include="src\ConfigurationViewTest.cpp"/> <ClCompile Include="src\ConfigurationViewTest.cpp" />
<ClCompile Include="src\Driver.cpp"/> <ClCompile Include="src\Driver.cpp" />
<ClCompile Include="src\FilesystemConfigurationTest.cpp"/> <ClCompile Include="src\FilesystemConfigurationTest.cpp" />
<ClCompile Include="src\HelpFormatterTest.cpp"/> <ClCompile Include="src\HelpFormatterTest.cpp" />
<ClCompile Include="src\IniFileConfigurationTest.cpp"/> <ClCompile Include="src\IniFileConfigurationTest.cpp" />
<ClCompile Include="src\JSONConfigurationTest.cpp"/> <ClCompile Include="src\JSONConfigurationTest.cpp" />
<ClCompile Include="src\LayeredConfigurationTest.cpp"/> <ClCompile Include="src\LayeredConfigurationTest.cpp" />
<ClCompile Include="src\LoggingConfiguratorTest.cpp"/> <ClCompile Include="src\LoggingConfiguratorTest.cpp" />
<ClCompile Include="src\MapConfigurationTest.cpp"/> <ClCompile Include="src\MapConfigurationTest.cpp" />
<ClCompile Include="src\OptionProcessorTest.cpp"/> <ClCompile Include="src\OptionProcessorTest.cpp" />
<ClCompile Include="src\OptionSetTest.cpp"/> <ClCompile Include="src\OptionSetTest.cpp" />
<ClCompile Include="src\OptionsTestSuite.cpp"/> <ClCompile Include="src\OptionsTestSuite.cpp" />
<ClCompile Include="src\OptionTest.cpp"/> <ClCompile Include="src\OptionTest.cpp" />
<ClCompile Include="src\PropertyFileConfigurationTest.cpp"/> <ClCompile Include="src\PropertyFileConfigurationTest.cpp" />
<ClCompile Include="src\SystemConfigurationTest.cpp"/> <ClCompile Include="src\SystemConfigurationTest.cpp" />
<ClCompile Include="src\TimerTest.cpp"/> <ClCompile Include="src\TimerTest.cpp" />
<ClCompile Include="src\TimerTestSuite.cpp"/> <ClCompile Include="src\TimerTestSuite.cpp" />
<ClCompile Include="src\UtilTestSuite.cpp"/> <ClCompile Include="src\UtilTestSuite.cpp" />
<ClCompile Include="src\ValidatorTest.cpp"/> <ClCompile Include="src\ValidatorTest.cpp" />
<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\XMLConfigurationTest.cpp"/> <ClCompile Include="src\WinServiceTest.cpp" />
<ClCompile Include="src\XMLConfigurationTest.cpp" />
</ItemGroup> </ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets"/> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets"/> <ImportGroup Label="ExtensionTargets" />
</Project> </Project>

View File

@@ -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>

View File

@@ -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

View File

@@ -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>

View File

@@ -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>

View File

@@ -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>

View File

@@ -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>

View File

@@ -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"/>

View File

@@ -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>

View File

@@ -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"/>

View File

@@ -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>

View File

@@ -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">
@@ -32,7 +32,7 @@
<RootNamespace>TestSuite</RootNamespace> <RootNamespace>TestSuite</RootNamespace>
<Keyword>Win32Proj</Keyword> <Keyword>Win32Proj</Keyword>
</PropertyGroup> </PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props"/> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='release_static_md|x64'" Label="Configuration"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='release_static_md|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType> <ConfigurationType>Application</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet> <CharacterSet>MultiByte</CharacterSet>
@@ -63,27 +63,27 @@
<CharacterSet>MultiByte</CharacterSet> <CharacterSet>MultiByte</CharacterSet>
<PlatformToolset>v141</PlatformToolset> <PlatformToolset>v141</PlatformToolset>
</PropertyGroup> </PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props"/> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings"/> <ImportGroup Label="ExtensionSettings" />
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='release_static_md|x64'" Label="PropertySheets"> <ImportGroup Condition="'$(Configuration)|$(Platform)'=='release_static_md|x64'" Label="PropertySheets">
<Import Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props"/> <Import Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" />
</ImportGroup> </ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='debug_static_md|x64'" Label="PropertySheets"> <ImportGroup Condition="'$(Configuration)|$(Platform)'=='debug_static_md|x64'" Label="PropertySheets">
<Import Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props"/> <Import Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" />
</ImportGroup> </ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='release_static_mt|x64'" Label="PropertySheets"> <ImportGroup Condition="'$(Configuration)|$(Platform)'=='release_static_mt|x64'" Label="PropertySheets">
<Import Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props"/> <Import Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" />
</ImportGroup> </ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='debug_static_mt|x64'" Label="PropertySheets"> <ImportGroup Condition="'$(Configuration)|$(Platform)'=='debug_static_mt|x64'" Label="PropertySheets">
<Import Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props"/> <Import Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" />
</ImportGroup> </ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='release_shared|x64'" Label="PropertySheets"> <ImportGroup Condition="'$(Configuration)|$(Platform)'=='release_shared|x64'" Label="PropertySheets">
<Import Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props"/> <Import Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" />
</ImportGroup> </ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='debug_shared|x64'" Label="PropertySheets"> <ImportGroup Condition="'$(Configuration)|$(Platform)'=='debug_shared|x64'" Label="PropertySheets">
<Import Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props"/> <Import Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" />
</ImportGroup> </ImportGroup>
<PropertyGroup Label="UserMacros"/> <PropertyGroup Label="UserMacros" />
<PropertyGroup> <PropertyGroup>
<_ProjectFileVersion>15.0.27625.0</_ProjectFileVersion> <_ProjectFileVersion>15.0.27625.0</_ProjectFileVersion>
<TargetName Condition="'$(Configuration)|$(Platform)'=='debug_shared|x64'">TestSuited</TargetName> <TargetName Condition="'$(Configuration)|$(Platform)'=='debug_shared|x64'">TestSuited</TargetName>
@@ -136,7 +136,7 @@
<TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType> <TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
<ForceConformanceInForLoopScope>true</ForceConformanceInForLoopScope> <ForceConformanceInForLoopScope>true</ForceConformanceInForLoopScope>
<RuntimeTypeInfo>true</RuntimeTypeInfo> <RuntimeTypeInfo>true</RuntimeTypeInfo>
<PrecompiledHeader/> <PrecompiledHeader />
<WarningLevel>Level3</WarningLevel> <WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat> <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<CompileAs>Default</CompileAs> <CompileAs>Default</CompileAs>
@@ -167,9 +167,9 @@
<TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType> <TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
<ForceConformanceInForLoopScope>true</ForceConformanceInForLoopScope> <ForceConformanceInForLoopScope>true</ForceConformanceInForLoopScope>
<RuntimeTypeInfo>true</RuntimeTypeInfo> <RuntimeTypeInfo>true</RuntimeTypeInfo>
<PrecompiledHeader/> <PrecompiledHeader />
<WarningLevel>Level3</WarningLevel> <WarningLevel>Level3</WarningLevel>
<DebugInformationFormat/> <DebugInformationFormat />
<CompileAs>Default</CompileAs> <CompileAs>Default</CompileAs>
</ClCompile> </ClCompile>
<Link> <Link>
@@ -196,7 +196,7 @@
<TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType> <TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
<ForceConformanceInForLoopScope>true</ForceConformanceInForLoopScope> <ForceConformanceInForLoopScope>true</ForceConformanceInForLoopScope>
<RuntimeTypeInfo>true</RuntimeTypeInfo> <RuntimeTypeInfo>true</RuntimeTypeInfo>
<PrecompiledHeader/> <PrecompiledHeader />
<WarningLevel>Level3</WarningLevel> <WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat> <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<CompileAs>Default</CompileAs> <CompileAs>Default</CompileAs>
@@ -227,9 +227,9 @@
<TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType> <TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
<ForceConformanceInForLoopScope>true</ForceConformanceInForLoopScope> <ForceConformanceInForLoopScope>true</ForceConformanceInForLoopScope>
<RuntimeTypeInfo>true</RuntimeTypeInfo> <RuntimeTypeInfo>true</RuntimeTypeInfo>
<PrecompiledHeader/> <PrecompiledHeader />
<WarningLevel>Level3</WarningLevel> <WarningLevel>Level3</WarningLevel>
<DebugInformationFormat/> <DebugInformationFormat />
<CompileAs>Default</CompileAs> <CompileAs>Default</CompileAs>
</ClCompile> </ClCompile>
<Link> <Link>
@@ -256,7 +256,7 @@
<TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType> <TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
<ForceConformanceInForLoopScope>true</ForceConformanceInForLoopScope> <ForceConformanceInForLoopScope>true</ForceConformanceInForLoopScope>
<RuntimeTypeInfo>true</RuntimeTypeInfo> <RuntimeTypeInfo>true</RuntimeTypeInfo>
<PrecompiledHeader/> <PrecompiledHeader />
<WarningLevel>Level3</WarningLevel> <WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat> <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<CompileAs>Default</CompileAs> <CompileAs>Default</CompileAs>
@@ -287,9 +287,9 @@
<TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType> <TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
<ForceConformanceInForLoopScope>true</ForceConformanceInForLoopScope> <ForceConformanceInForLoopScope>true</ForceConformanceInForLoopScope>
<RuntimeTypeInfo>true</RuntimeTypeInfo> <RuntimeTypeInfo>true</RuntimeTypeInfo>
<PrecompiledHeader/> <PrecompiledHeader />
<WarningLevel>Level3</WarningLevel> <WarningLevel>Level3</WarningLevel>
<DebugInformationFormat/> <DebugInformationFormat />
<CompileAs>Default</CompileAs> <CompileAs>Default</CompileAs>
</ClCompile> </ClCompile>
<Link> <Link>
@@ -304,60 +304,62 @@
</Link> </Link>
</ItemDefinitionGroup> </ItemDefinitionGroup>
<ItemGroup> <ItemGroup>
<ClInclude Include="src\AbstractConfigurationTest.h"/> <ClInclude Include="src\AbstractConfigurationTest.h" />
<ClInclude Include="src\ConfigurationMapperTest.h"/> <ClInclude Include="src\ConfigurationMapperTest.h" />
<ClInclude Include="src\ConfigurationTestSuite.h"/> <ClInclude Include="src\ConfigurationTestSuite.h" />
<ClInclude Include="src\ConfigurationViewTest.h"/> <ClInclude Include="src\ConfigurationViewTest.h" />
<ClInclude Include="src\FilesystemConfigurationTest.h"/> <ClInclude Include="src\FilesystemConfigurationTest.h" />
<ClInclude Include="src\HelpFormatterTest.h"/> <ClInclude Include="src\HelpFormatterTest.h" />
<ClInclude Include="src\IniFileConfigurationTest.h"/> <ClInclude Include="src\IniFileConfigurationTest.h" />
<ClInclude Include="src\JSONConfigurationTest.h"/> <ClInclude Include="src\JSONConfigurationTest.h" />
<ClInclude Include="src\LayeredConfigurationTest.h"/> <ClInclude Include="src\LayeredConfigurationTest.h" />
<ClInclude Include="src\LoggingConfiguratorTest.h"/> <ClInclude Include="src\LoggingConfiguratorTest.h" />
<ClInclude Include="src\MapConfigurationTest.h"/> <ClInclude Include="src\MapConfigurationTest.h" />
<ClInclude Include="src\OptionProcessorTest.h"/> <ClInclude Include="src\OptionProcessorTest.h" />
<ClInclude Include="src\OptionSetTest.h"/> <ClInclude Include="src\OptionSetTest.h" />
<ClInclude Include="src\OptionsTestSuite.h"/> <ClInclude Include="src\OptionsTestSuite.h" />
<ClInclude Include="src\OptionTest.h"/> <ClInclude Include="src\OptionTest.h" />
<ClInclude Include="src\PropertyFileConfigurationTest.h"/> <ClInclude Include="src\PropertyFileConfigurationTest.h" />
<ClInclude Include="src\SystemConfigurationTest.h"/> <ClInclude Include="src\SystemConfigurationTest.h" />
<ClInclude Include="src\TimerTest.h"/> <ClInclude Include="src\TimerTest.h" />
<ClInclude Include="src\TimerTestSuite.h"/> <ClInclude Include="src\TimerTestSuite.h" />
<ClInclude Include="src\UtilTestSuite.h"/> <ClInclude Include="src\UtilTestSuite.h" />
<ClInclude Include="src\ValidatorTest.h"/> <ClInclude Include="src\ValidatorTest.h" />
<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\XMLConfigurationTest.h"/> <ClInclude Include="src\WinServiceTest.h" />
<ClInclude Include="src\XMLConfigurationTest.h" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ClCompile Include="src\AbstractConfigurationTest.cpp"/> <ClCompile Include="src\AbstractConfigurationTest.cpp" />
<ClCompile Include="src\ConfigurationMapperTest.cpp"/> <ClCompile Include="src\ConfigurationMapperTest.cpp" />
<ClCompile Include="src\ConfigurationTestSuite.cpp"/> <ClCompile Include="src\ConfigurationTestSuite.cpp" />
<ClCompile Include="src\ConfigurationViewTest.cpp"/> <ClCompile Include="src\ConfigurationViewTest.cpp" />
<ClCompile Include="src\Driver.cpp"/> <ClCompile Include="src\Driver.cpp" />
<ClCompile Include="src\FilesystemConfigurationTest.cpp"/> <ClCompile Include="src\FilesystemConfigurationTest.cpp" />
<ClCompile Include="src\HelpFormatterTest.cpp"/> <ClCompile Include="src\HelpFormatterTest.cpp" />
<ClCompile Include="src\IniFileConfigurationTest.cpp"/> <ClCompile Include="src\IniFileConfigurationTest.cpp" />
<ClCompile Include="src\JSONConfigurationTest.cpp"/> <ClCompile Include="src\JSONConfigurationTest.cpp" />
<ClCompile Include="src\LayeredConfigurationTest.cpp"/> <ClCompile Include="src\LayeredConfigurationTest.cpp" />
<ClCompile Include="src\LoggingConfiguratorTest.cpp"/> <ClCompile Include="src\LoggingConfiguratorTest.cpp" />
<ClCompile Include="src\MapConfigurationTest.cpp"/> <ClCompile Include="src\MapConfigurationTest.cpp" />
<ClCompile Include="src\OptionProcessorTest.cpp"/> <ClCompile Include="src\OptionProcessorTest.cpp" />
<ClCompile Include="src\OptionSetTest.cpp"/> <ClCompile Include="src\OptionSetTest.cpp" />
<ClCompile Include="src\OptionsTestSuite.cpp"/> <ClCompile Include="src\OptionsTestSuite.cpp" />
<ClCompile Include="src\OptionTest.cpp"/> <ClCompile Include="src\OptionTest.cpp" />
<ClCompile Include="src\PropertyFileConfigurationTest.cpp"/> <ClCompile Include="src\PropertyFileConfigurationTest.cpp" />
<ClCompile Include="src\SystemConfigurationTest.cpp"/> <ClCompile Include="src\SystemConfigurationTest.cpp" />
<ClCompile Include="src\TimerTest.cpp"/> <ClCompile Include="src\TimerTest.cpp" />
<ClCompile Include="src\TimerTestSuite.cpp"/> <ClCompile Include="src\TimerTestSuite.cpp" />
<ClCompile Include="src\UtilTestSuite.cpp"/> <ClCompile Include="src\UtilTestSuite.cpp" />
<ClCompile Include="src\ValidatorTest.cpp"/> <ClCompile Include="src\ValidatorTest.cpp" />
<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\XMLConfigurationTest.cpp"/> <ClCompile Include="src\WinServiceTest.cpp" />
<ClCompile Include="src\XMLConfigurationTest.cpp" />
</ItemGroup> </ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets"/> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets"/> <ImportGroup Label="ExtensionTargets" />
</Project> </Project>

View File

@@ -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>

View File

@@ -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

View 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;
}

View 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

View File

@@ -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;
} }