1
0
mirror of https://github.com/VCMP-SqMod/SqMod.git synced 2025-07-30 20:51:48 +02:00

Major plugin refactor and cleanup.

Switched to POCO library for unified platform/library interface.
Deprecated the external module API. It was creating more problems than solving.
Removed most built-in libraries in favor of system libraries for easier maintenance.
Cleaned and secured code with help from static analyzers.
This commit is contained in:
Sandu Liviu Catalin
2021-01-30 08:51:39 +02:00
parent e0e34b4030
commit 4a6bfc086c
6219 changed files with 1209835 additions and 454916 deletions

View File

@@ -0,0 +1,73 @@
set(TESTUNIT "Foundation-testrunner")
# Sources
file(GLOB SRCS_G "src/*.cpp")
file(GLOB SRCS_G_REMOVE
src/TestApp.cpp
src/TestApp_WINCE.cpp
src/TestLibrary.cpp
src/TestPlugin.cpp
)
list(REMOVE_ITEM SRCS_G ${SRCS_G_REMOVE})
POCO_SOURCES_AUTO(TEST_SRCS ${SRCS_G})
# Headers
file(GLOB_RECURSE HDRS_G "src/*.h")
POCO_HEADERS_AUTO(TEST_SRCS ${HDRS_G})
# WinDriver depends on WinTestRunner which depends on MFC, and we don't want that
POCO_SOURCES_AUTO_PLAT(TEST_SRCS OFF
src/WinDriver.cpp
)
POCO_SOURCES_AUTO_PLAT(TEST_SRCS WINCE
src/WinCEDriver.cpp
)
add_executable(Foundation-testrunner ${TEST_SRCS})
if(ANDROID)
add_test(
NAME Foundation
WORKING_DIRECTORY ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}
COMMAND ${CMAKE_COMMAND} -DANDROID_NDK=${ANDROID_NDK} "-DTEST_FILES=${CMAKE_CURRENT_SOURCE_DIR}/data;${CMAKE_BINARY_DIR}/bin/TestApp;${CMAKE_BINARY_DIR}/bin/TestLibrary.so" -DLIBRARY_DIR=${CMAKE_BINARY_DIR}/lib -DUNITTEST=${CMAKE_BINARY_DIR}/bin/Foundation-testrunner -DTEST_PARAMETER=-all -P ${CMAKE_SOURCE_DIR}/cmake/ExecuteOnAndroid.cmake
)
else()
add_test(
NAME Foundation
WORKING_DIRECTORY ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}
COMMAND Foundation-testrunner -ignore ${CMAKE_SOURCE_DIR}/cppignore.lnx -all
)
set_tests_properties(Foundation PROPERTIES ENVIRONMENT "LD_LIBRARY_PATH=${CMAKE_RUNTIME_OUTPUT_DIRECTORY}") # The SharedLibaryTest has to look for shared libraries in the working directory
set_property(TEST Foundation APPEND PROPERTY ENVIRONMENT "PATH=${CMAKE_RUNTIME_OUTPUT_DIRECTORY}:$ENV{PATH}") # The ProcessTest has to look for the TestApp in the working directory
set_property(TEST Foundation APPEND PROPERTY ENVIRONMENT "POCO_BASE=${CMAKE_SOURCE_DIR}")
# The test is run in the runtime directory. So the test data is copied there too
add_custom_command(
TARGET Foundation-testrunner POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_CURRENT_SOURCE_DIR}/data ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/data
)
endif()
target_link_libraries(Foundation-testrunner PUBLIC Poco::Foundation CppUnit)
if(UNIX AND NOT ANDROID)
target_link_libraries(Foundation-testrunner PUBLIC pthread)
endif(UNIX AND NOT ANDROID)
# TestApp
if(WINCE)
add_executable(TestApp src/TestApp_WINCE.cpp)
set_target_properties(TestApp PROPERTIES LINK_FLAGS "/ENTRY:wmainCRTStartup")
else()
add_executable(TestApp src/TestApp.cpp)
endif()
# The test is run in the runtime directory. So the TestApp is built there too because it is used by the tests
set_target_properties(TestApp PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${CMAKE_RUNTIME_OUTPUT_DIRECTORY})
target_link_libraries(TestApp PUBLIC Poco::Foundation)
# TestLibrary
add_library(TestLibrary SHARED src/TestLibrary.cpp src/TestPlugin.cpp src/TestPlugin.h)
set_target_properties(TestLibrary PROPERTIES PREFIX "" DEBUG_POSTFIX "") # The test requires the library named TestLibrary. By default it is prefixed with lib.
# The test is run in the runtime directory. So the TestLibrary is built there too because it is used by the tests
set_target_properties(TestLibrary PROPERTIES LIBRARY_OUTPUT_DIRECTORY ${CMAKE_RUNTIME_OUTPUT_DIRECTORY})
target_link_libraries(TestLibrary PUBLIC Poco::Foundation)
add_dependencies(Foundation-testrunner TestApp TestLibrary)

View File

@@ -0,0 +1,14 @@
#
# Makefile
#
# Makefile for Poco Foundation testsuite
#
.PHONY: projects
clean all: projects
projects:
$(MAKE) -f Makefile-Driver $(MAKECMDGOALS)
ifneq ($(LINKMODE),STATIC)
$(MAKE) -f Makefile-TestLibrary $(MAKECMDGOALS)
endif
$(MAKE) -f Makefile-TestApp $(MAKECMDGOALS)

View File

@@ -0,0 +1,51 @@
#
# Makefile
#
# Makefile for Poco Foundation testsuite
#
include $(POCO_BASE)/build/rules/global
objects = ActiveMethodTest ActivityTest ActiveDispatcherTest \
AutoPtrTest ArrayTest SharedPtrTest AutoReleasePoolTest \
Base32Test Base64Test BinaryReaderWriterTest LineEndingConverterTest \
ByteOrderTest ChannelTest ClassLoaderTest ClockTest CoreTest CoreTestSuite \
CountingStreamTest CryptTestSuite DateTimeFormatterTest \
DateTimeParserTest DateTimeTest LocalDateTimeTest DateTimeTestSuite DigestStreamTest \
Driver DynamicFactoryTest FPETest FileChannelTest FileTest GlobTest FilesystemTestSuite \
FIFOBufferStreamTest FoundationTestSuite HMACEngineTest HexBinaryTest LoggerTest \
ListMapTest LoggingFactoryTest LoggingRegistryTest LoggingTestSuite LogStreamTest \
NamedEventTest NamedMutexTest ProcessesTestSuite ProcessTest \
MemoryPoolTest MD4EngineTest MD5EngineTest ManifestTest \
NDCTest NotificationCenterTest NotificationQueueTest \
PriorityNotificationQueueTest TimedNotificationQueueTest \
NotificationsTestSuite NullStreamTest NumberFormatterTest \
NumberParserTest PathTest PatternFormatterTest PBKDF2EngineTest RWLockTest \
RandomStreamTest RandomTest RegularExpressionTest SHA1EngineTest SHA2EngineTest \
SemaphoreTest ConditionTest SharedLibraryTest SharedLibraryTestSuite \
SimpleFileChannelTest StopwatchTest \
StreamConverterTest StreamCopierTest StreamTokenizerTest \
StreamsTestSuite StringTest StringTokenizerTest TaskTestSuite TaskTest \
TaskManagerTest TestChannel TeeStreamTest UTF8StringTest \
TextConverterTest TextIteratorTest TextBufferIteratorTest TextTestSuite TextEncodingTest \
ThreadLocalTest ThreadPoolTest ThreadTest ThreadingTestSuite TimerTest \
TimespanTest TimestampTest TimezoneTest URIStreamOpenerTest URITest \
URITestSuite UUIDGeneratorTest UUIDTest UUIDTestSuite ZLibTest \
TestPlugin DummyDelegate BasicEventTest FIFOEventTest PriorityEventTest EventTestSuite \
LRUCacheTest ExpireCacheTest ExpireLRUCacheTest CacheTestSuite AnyTest FormatTest \
HashingTestSuite HashTableTest SimpleHashTableTest LinearHashTableTest \
HashSetTest HashMapTest SharedMemoryTest OrderedContainersTest \
UniqueExpireCacheTest UniqueExpireLRUCacheTest UnicodeConverterTest \
TuplesTest NamedTuplesTest TypeListTest VarTest DynamicTestSuite FileStreamTest \
MemoryStreamTest ObjectPoolTest DirectoryWatcherTest DirectoryIteratorsTest \
DataURIStreamTest
target = testrunner
target_version = 1
target_libs = PocoFoundation CppUnit
include $(POCO_BASE)/build/rules/exec
ifdef POCO_UNBUNDLED
SYSLIBS += -lz -lpcre
endif

View File

@@ -0,0 +1,15 @@
#
# Makefile
#
# Makefile for Poco TestApp
#
include $(POCO_BASE)/build/rules/global
objects = TestApp
target = TestApp
target_version = 1
target_libs = PocoFoundation
include $(POCO_BASE)/build/rules/exec

View File

@@ -0,0 +1,15 @@
#
# Makefile
#
# Makefile for Poco Foundation testsuite
#
include $(POCO_BASE)/build/rules/global
objects = TestPlugin TestLibrary
target = TestLibrary
target_version = 1
target_libs = PocoFoundation
include $(POCO_BASE)/build/rules/dylib

View File

@@ -0,0 +1,623 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="debug_shared|Win32">
<Configuration>debug_shared</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="debug_shared|x64">
<Configuration>debug_shared</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="debug_static_md|Win32">
<Configuration>debug_static_md</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="debug_static_md|x64">
<Configuration>debug_static_md</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="debug_static_mt|Win32">
<Configuration>debug_static_mt</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="debug_static_mt|x64">
<Configuration>debug_static_mt</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="release_shared|Win32">
<Configuration>release_shared</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="release_shared|x64">
<Configuration>release_shared</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="release_static_md|Win32">
<Configuration>release_static_md</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="release_static_md|x64">
<Configuration>release_static_md</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="release_static_mt|Win32">
<Configuration>release_static_mt</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="release_static_mt|x64">
<Configuration>release_static_mt</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectName>TestApp</ProjectName>
<ProjectGuid>{6C41E55D-C0FC-4E01-AA8D-B7DA40E31D3A}</ProjectGuid>
<RootNamespace>TestApp</RootNamespace>
<Keyword>Win32Proj</Keyword>
<WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='release_static_mt|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseOfMfc>false</UseOfMfc>
<CharacterSet>MultiByte</CharacterSet>
<PlatformToolset>v140</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='release_static_mt|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseOfMfc>false</UseOfMfc>
<CharacterSet>MultiByte</CharacterSet>
<PlatformToolset>v140</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='debug_static_mt|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseOfMfc>false</UseOfMfc>
<CharacterSet>MultiByte</CharacterSet>
<PlatformToolset>v140</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='debug_static_mt|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseOfMfc>false</UseOfMfc>
<CharacterSet>MultiByte</CharacterSet>
<PlatformToolset>v140</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='debug_static_md|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseOfMfc>false</UseOfMfc>
<CharacterSet>MultiByte</CharacterSet>
<PlatformToolset>v140</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='debug_static_md|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseOfMfc>false</UseOfMfc>
<CharacterSet>MultiByte</CharacterSet>
<PlatformToolset>v140</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='release_static_md|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseOfMfc>false</UseOfMfc>
<CharacterSet>MultiByte</CharacterSet>
<PlatformToolset>v140</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='release_static_md|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseOfMfc>false</UseOfMfc>
<CharacterSet>MultiByte</CharacterSet>
<PlatformToolset>v140</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='release_shared|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseOfMfc>false</UseOfMfc>
<CharacterSet>MultiByte</CharacterSet>
<PlatformToolset>v140</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='release_shared|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseOfMfc>false</UseOfMfc>
<CharacterSet>MultiByte</CharacterSet>
<PlatformToolset>v140</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='debug_shared|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseOfMfc>false</UseOfMfc>
<CharacterSet>MultiByte</CharacterSet>
<PlatformToolset>v140</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='debug_shared|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseOfMfc>false</UseOfMfc>
<CharacterSet>MultiByte</CharacterSet>
<PlatformToolset>v140</PlatformToolset>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='release_static_mt|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='release_static_mt|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='debug_static_mt|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='debug_static_mt|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='debug_static_md|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='debug_static_md|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='release_static_md|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='release_static_md|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='release_shared|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='release_shared|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='debug_shared|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='debug_shared|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup>
<_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
<OutDir Condition="'$(Configuration)|$(Platform)'=='debug_shared|Win32'">bin\</OutDir>
<IntDir Condition="'$(Configuration)|$(Platform)'=='debug_shared|Win32'">obj\TestApp\$(Configuration)\</IntDir>
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='debug_shared|Win32'">true</LinkIncremental>
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='debug_shared|x64'">true</LinkIncremental>
<OutDir Condition="'$(Configuration)|$(Platform)'=='release_shared|Win32'">bin\</OutDir>
<IntDir Condition="'$(Configuration)|$(Platform)'=='release_shared|Win32'">obj\TestApp\$(Configuration)\</IntDir>
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='release_shared|Win32'">false</LinkIncremental>
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='release_shared|x64'">false</LinkIncremental>
<OutDir Condition="'$(Configuration)|$(Platform)'=='release_static_md|Win32'">bin\static_md\</OutDir>
<IntDir Condition="'$(Configuration)|$(Platform)'=='release_static_md|Win32'">obj\TestApp\$(Configuration)\</IntDir>
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='release_static_md|Win32'">false</LinkIncremental>
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='release_static_md|x64'">false</LinkIncremental>
<OutDir Condition="'$(Configuration)|$(Platform)'=='debug_static_md|Win32'">bin\static_md\</OutDir>
<IntDir Condition="'$(Configuration)|$(Platform)'=='debug_static_md|Win32'">obj\TestApp\$(Configuration)\</IntDir>
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='debug_static_md|Win32'">true</LinkIncremental>
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='debug_static_md|x64'">true</LinkIncremental>
<OutDir Condition="'$(Configuration)|$(Platform)'=='debug_static_mt|Win32'">bin\static_mt\</OutDir>
<IntDir Condition="'$(Configuration)|$(Platform)'=='debug_static_mt|Win32'">obj\TestApp\$(Configuration)\</IntDir>
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='debug_static_mt|Win32'">true</LinkIncremental>
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='debug_static_mt|x64'">true</LinkIncremental>
<OutDir Condition="'$(Configuration)|$(Platform)'=='release_static_mt|Win32'">bin\static_mt\</OutDir>
<IntDir Condition="'$(Configuration)|$(Platform)'=='release_static_mt|Win32'">obj\TestApp\$(Configuration)\</IntDir>
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='release_static_mt|Win32'">false</LinkIncremental>
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='release_static_mt|x64'">false</LinkIncremental>
<TargetName Condition="'$(Configuration)|$(Platform)'=='release_shared|Win32'">TestApp</TargetName>
<TargetName Condition="'$(Configuration)|$(Platform)'=='release_shared|x64'">TestApp</TargetName>
<TargetName Condition="'$(Configuration)|$(Platform)'=='debug_shared|Win32'">TestAppd</TargetName>
<TargetName Condition="'$(Configuration)|$(Platform)'=='debug_shared|x64'">TestAppd</TargetName>
<TargetName Condition="'$(Configuration)|$(Platform)'=='debug_static_md|Win32'">TestAppd</TargetName>
<TargetName Condition="'$(Configuration)|$(Platform)'=='debug_static_md|x64'">TestAppd</TargetName>
<TargetName Condition="'$(Configuration)|$(Platform)'=='debug_static_mt|Win32'">TestAppd</TargetName>
<TargetName Condition="'$(Configuration)|$(Platform)'=='debug_static_mt|x64'">TestAppd</TargetName>
<TargetName Condition="'$(Configuration)|$(Platform)'=='release_static_md|Win32'">TestApp</TargetName>
<TargetName Condition="'$(Configuration)|$(Platform)'=='release_static_md|x64'">TestApp</TargetName>
<TargetName Condition="'$(Configuration)|$(Platform)'=='release_static_mt|Win32'">TestApp</TargetName>
<TargetName Condition="'$(Configuration)|$(Platform)'=='release_static_mt|x64'">TestApp</TargetName>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='debug_shared|x64'">
<OutDir>bin64\</OutDir>
<IntDir>obj64\TestApp\$(Configuration)\</IntDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='debug_static_md|x64'">
<OutDir>bin64\static_md\</OutDir>
<IntDir>obj64\TestApp\$(Configuration)\</IntDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='debug_static_mt|x64'">
<OutDir>bin64\static_mt\</OutDir>
<IntDir>obj64\TestApp\$(Configuration)\</IntDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='release_shared|x64'">
<OutDir>bin64\</OutDir>
<IntDir>obj64\TestApp\$(Configuration)\</IntDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='release_static_md|x64'">
<OutDir>bin64\static_md\</OutDir>
<IntDir>obj64\TestApp\$(Configuration)\</IntDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='release_static_mt|x64'">
<OutDir>bin64\static_mt\</OutDir>
<IntDir>obj64\TestApp\$(Configuration)\</IntDir>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='debug_shared|Win32'">
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>false</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
<BufferSecurityCheck>true</BufferSecurityCheck>
<TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
<ForceConformanceInForLoopScope>true</ForceConformanceInForLoopScope>
<RuntimeTypeInfo>true</RuntimeTypeInfo>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<AdditionalOptions>/FS</AdditionalOptions>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
</ClCompile>
<Link>
<OutputFile>bin\TestAppd.exe</OutputFile>
<AdditionalLibraryDirectories>..\..\..\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<GenerateDebugInformation>true</GenerateDebugInformation>
<ProgramDatabaseFile>bin\TestAppd.pdb</ProgramDatabaseFile>
<SubSystem>Console</SubSystem>
<TargetMachine>MachineX86</TargetMachine>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='debug_shared|x64'">
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
<BufferSecurityCheck>true</BufferSecurityCheck>
<TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
<ForceConformanceInForLoopScope>true</ForceConformanceInForLoopScope>
<RuntimeTypeInfo>true</RuntimeTypeInfo>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<AdditionalOptions>/FS</AdditionalOptions>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
</ClCompile>
<Link>
<OutputFile>bin64\TestAppd.exe</OutputFile>
<AdditionalLibraryDirectories>..\..\..\lib64;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<GenerateDebugInformation>true</GenerateDebugInformation>
<ProgramDatabaseFile>bin64\TestAppd.pdb</ProgramDatabaseFile>
<SubSystem>Console</SubSystem>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='release_shared|Win32'">
<ClCompile>
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<IntrinsicFunctions>true</IntrinsicFunctions>
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
<OmitFramePointers>true</OmitFramePointers>
<AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<BufferSecurityCheck>false</BufferSecurityCheck>
<TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
<ForceConformanceInForLoopScope>true</ForceConformanceInForLoopScope>
<RuntimeTypeInfo>true</RuntimeTypeInfo>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>
</DebugInformationFormat>
<AdditionalOptions>/FS</AdditionalOptions>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
</ClCompile>
<Link>
<OutputFile>bin\TestApp.exe</OutputFile>
<AdditionalLibraryDirectories>..\..\..\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<GenerateDebugInformation>false</GenerateDebugInformation>
<ProgramDatabaseFile>
</ProgramDatabaseFile>
<SubSystem>Console</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<TargetMachine>MachineX86</TargetMachine>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='release_shared|x64'">
<ClCompile>
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<IntrinsicFunctions>true</IntrinsicFunctions>
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
<OmitFramePointers>true</OmitFramePointers>
<AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<BufferSecurityCheck>false</BufferSecurityCheck>
<TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
<ForceConformanceInForLoopScope>true</ForceConformanceInForLoopScope>
<RuntimeTypeInfo>true</RuntimeTypeInfo>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>
</DebugInformationFormat>
<AdditionalOptions>/FS</AdditionalOptions>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
</ClCompile>
<Link>
<OutputFile>bin64\TestApp.exe</OutputFile>
<AdditionalLibraryDirectories>..\..\..\lib64;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<GenerateDebugInformation>false</GenerateDebugInformation>
<ProgramDatabaseFile>
</ProgramDatabaseFile>
<SubSystem>Console</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='release_static_md|Win32'">
<ClCompile>
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<IntrinsicFunctions>true</IntrinsicFunctions>
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
<OmitFramePointers>true</OmitFramePointers>
<AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<BufferSecurityCheck>false</BufferSecurityCheck>
<TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
<ForceConformanceInForLoopScope>true</ForceConformanceInForLoopScope>
<RuntimeTypeInfo>true</RuntimeTypeInfo>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>
</DebugInformationFormat>
<AdditionalOptions>/FS</AdditionalOptions>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
</ClCompile>
<Link>
<OutputFile>bin\static_md\TestApp.exe</OutputFile>
<AdditionalLibraryDirectories>..\..\..\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<GenerateDebugInformation>false</GenerateDebugInformation>
<ProgramDatabaseFile>
</ProgramDatabaseFile>
<SubSystem>Console</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<TargetMachine>MachineX86</TargetMachine>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='release_static_md|x64'">
<ClCompile>
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<IntrinsicFunctions>true</IntrinsicFunctions>
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
<OmitFramePointers>true</OmitFramePointers>
<AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<BufferSecurityCheck>false</BufferSecurityCheck>
<TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
<ForceConformanceInForLoopScope>true</ForceConformanceInForLoopScope>
<RuntimeTypeInfo>true</RuntimeTypeInfo>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>
</DebugInformationFormat>
<AdditionalOptions>/FS</AdditionalOptions>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
</ClCompile>
<Link>
<OutputFile>bin64\static_md\TestApp.exe</OutputFile>
<AdditionalLibraryDirectories>..\..\..\lib64;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<GenerateDebugInformation>false</GenerateDebugInformation>
<ProgramDatabaseFile>
</ProgramDatabaseFile>
<SubSystem>Console</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='debug_static_md|Win32'">
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>false</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
<BufferSecurityCheck>true</BufferSecurityCheck>
<TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
<ForceConformanceInForLoopScope>true</ForceConformanceInForLoopScope>
<RuntimeTypeInfo>true</RuntimeTypeInfo>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<AdditionalOptions>/FS</AdditionalOptions>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
</ClCompile>
<Link>
<OutputFile>bin\static_md\TestAppd.exe</OutputFile>
<AdditionalLibraryDirectories>..\..\..\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<GenerateDebugInformation>true</GenerateDebugInformation>
<ProgramDatabaseFile>bin\static_md\TestAppd.pdb</ProgramDatabaseFile>
<SubSystem>Console</SubSystem>
<TargetMachine>MachineX86</TargetMachine>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='debug_static_md|x64'">
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
<BufferSecurityCheck>true</BufferSecurityCheck>
<TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
<ForceConformanceInForLoopScope>true</ForceConformanceInForLoopScope>
<RuntimeTypeInfo>true</RuntimeTypeInfo>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<AdditionalOptions>/FS</AdditionalOptions>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
</ClCompile>
<Link>
<OutputFile>bin64\static_md\TestAppd.exe</OutputFile>
<AdditionalLibraryDirectories>..\..\..\lib64;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<GenerateDebugInformation>true</GenerateDebugInformation>
<ProgramDatabaseFile>bin64\static_md\TestAppd.pdb</ProgramDatabaseFile>
<SubSystem>Console</SubSystem>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='debug_static_mt|Win32'">
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>false</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
<BufferSecurityCheck>true</BufferSecurityCheck>
<TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
<ForceConformanceInForLoopScope>true</ForceConformanceInForLoopScope>
<RuntimeTypeInfo>true</RuntimeTypeInfo>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<AdditionalOptions>/FS</AdditionalOptions>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
</ClCompile>
<Link>
<OutputFile>bin\static_mt\TestAppd.exe</OutputFile>
<AdditionalLibraryDirectories>..\..\..\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<GenerateDebugInformation>true</GenerateDebugInformation>
<ProgramDatabaseFile>bin\static_mt\TestAppd.pdb</ProgramDatabaseFile>
<SubSystem>Console</SubSystem>
<TargetMachine>MachineX86</TargetMachine>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='debug_static_mt|x64'">
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
<BufferSecurityCheck>true</BufferSecurityCheck>
<TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
<ForceConformanceInForLoopScope>true</ForceConformanceInForLoopScope>
<RuntimeTypeInfo>true</RuntimeTypeInfo>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<AdditionalOptions>/FS</AdditionalOptions>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
</ClCompile>
<Link>
<OutputFile>bin64\static_mt\TestAppd.exe</OutputFile>
<AdditionalLibraryDirectories>..\..\..\lib64;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<GenerateDebugInformation>true</GenerateDebugInformation>
<ProgramDatabaseFile>bin64\static_mt\TestAppd.pdb</ProgramDatabaseFile>
<SubSystem>Console</SubSystem>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='release_static_mt|Win32'">
<ClCompile>
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<IntrinsicFunctions>true</IntrinsicFunctions>
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
<OmitFramePointers>true</OmitFramePointers>
<AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<BufferSecurityCheck>false</BufferSecurityCheck>
<TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
<ForceConformanceInForLoopScope>true</ForceConformanceInForLoopScope>
<RuntimeTypeInfo>true</RuntimeTypeInfo>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>
</DebugInformationFormat>
<AdditionalOptions>/FS</AdditionalOptions>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
</ClCompile>
<Link>
<OutputFile>bin\static_mt\TestApp.exe</OutputFile>
<AdditionalLibraryDirectories>..\..\..\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<GenerateDebugInformation>false</GenerateDebugInformation>
<ProgramDatabaseFile>
</ProgramDatabaseFile>
<SubSystem>Console</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<TargetMachine>MachineX86</TargetMachine>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='release_static_mt|x64'">
<ClCompile>
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<IntrinsicFunctions>true</IntrinsicFunctions>
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
<OmitFramePointers>true</OmitFramePointers>
<AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<BufferSecurityCheck>false</BufferSecurityCheck>
<TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
<ForceConformanceInForLoopScope>true</ForceConformanceInForLoopScope>
<RuntimeTypeInfo>true</RuntimeTypeInfo>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>
</DebugInformationFormat>
<AdditionalOptions>/FS</AdditionalOptions>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
</ClCompile>
<Link>
<OutputFile>bin64\static_mt\TestApp.exe</OutputFile>
<AdditionalLibraryDirectories>..\..\..\lib64;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<GenerateDebugInformation>false</GenerateDebugInformation>
<ProgramDatabaseFile>
</ProgramDatabaseFile>
<SubSystem>Console</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
</Link>
</ItemDefinitionGroup>
<ItemGroup>
<ClCompile Include="src\TestApp.cpp" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>

View File

@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="Source Files">
<UniqueIdentifier>{64a104ed-fb69-4821-b11c-494d063d19f5}</UniqueIdentifier>
</Filter>
</ItemGroup>
<ItemGroup>
<ClCompile Include="src\TestApp.cpp">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>
</Project>

View File

@@ -0,0 +1,623 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="debug_shared|Win32">
<Configuration>debug_shared</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="debug_shared|x64">
<Configuration>debug_shared</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="debug_static_md|Win32">
<Configuration>debug_static_md</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="debug_static_md|x64">
<Configuration>debug_static_md</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="debug_static_mt|Win32">
<Configuration>debug_static_mt</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="debug_static_mt|x64">
<Configuration>debug_static_mt</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="release_shared|Win32">
<Configuration>release_shared</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="release_shared|x64">
<Configuration>release_shared</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="release_static_md|Win32">
<Configuration>release_static_md</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="release_static_md|x64">
<Configuration>release_static_md</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="release_static_mt|Win32">
<Configuration>release_static_mt</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="release_static_mt|x64">
<Configuration>release_static_mt</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectName>TestApp</ProjectName>
<ProjectGuid>{6C41E55D-C0FC-4E01-AA8D-B7DA40E31D3A}</ProjectGuid>
<RootNamespace>TestApp</RootNamespace>
<Keyword>Win32Proj</Keyword>
<WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='release_static_mt|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseOfMfc>false</UseOfMfc>
<CharacterSet>MultiByte</CharacterSet>
<PlatformToolset>v141</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='release_static_mt|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseOfMfc>false</UseOfMfc>
<CharacterSet>MultiByte</CharacterSet>
<PlatformToolset>v141</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='debug_static_mt|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseOfMfc>false</UseOfMfc>
<CharacterSet>MultiByte</CharacterSet>
<PlatformToolset>v141</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='debug_static_mt|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseOfMfc>false</UseOfMfc>
<CharacterSet>MultiByte</CharacterSet>
<PlatformToolset>v141</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='debug_static_md|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseOfMfc>false</UseOfMfc>
<CharacterSet>MultiByte</CharacterSet>
<PlatformToolset>v141</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='debug_static_md|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseOfMfc>false</UseOfMfc>
<CharacterSet>MultiByte</CharacterSet>
<PlatformToolset>v141</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='release_static_md|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseOfMfc>false</UseOfMfc>
<CharacterSet>MultiByte</CharacterSet>
<PlatformToolset>v141</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='release_static_md|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseOfMfc>false</UseOfMfc>
<CharacterSet>MultiByte</CharacterSet>
<PlatformToolset>v141</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='release_shared|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseOfMfc>false</UseOfMfc>
<CharacterSet>MultiByte</CharacterSet>
<PlatformToolset>v141</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='release_shared|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseOfMfc>false</UseOfMfc>
<CharacterSet>MultiByte</CharacterSet>
<PlatformToolset>v141</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='debug_shared|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseOfMfc>false</UseOfMfc>
<CharacterSet>MultiByte</CharacterSet>
<PlatformToolset>v141</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='debug_shared|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseOfMfc>false</UseOfMfc>
<CharacterSet>MultiByte</CharacterSet>
<PlatformToolset>v141</PlatformToolset>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='release_static_mt|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='release_static_mt|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='debug_static_mt|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='debug_static_mt|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='debug_static_md|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='debug_static_md|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='release_static_md|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='release_static_md|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='release_shared|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='release_shared|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='debug_shared|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='debug_shared|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup>
<_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
<OutDir Condition="'$(Configuration)|$(Platform)'=='debug_shared|Win32'">bin\</OutDir>
<IntDir Condition="'$(Configuration)|$(Platform)'=='debug_shared|Win32'">obj\TestApp\$(Configuration)\</IntDir>
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='debug_shared|Win32'">true</LinkIncremental>
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='debug_shared|x64'">true</LinkIncremental>
<OutDir Condition="'$(Configuration)|$(Platform)'=='release_shared|Win32'">bin\</OutDir>
<IntDir Condition="'$(Configuration)|$(Platform)'=='release_shared|Win32'">obj\TestApp\$(Configuration)\</IntDir>
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='release_shared|Win32'">false</LinkIncremental>
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='release_shared|x64'">false</LinkIncremental>
<OutDir Condition="'$(Configuration)|$(Platform)'=='release_static_md|Win32'">bin\static_md\</OutDir>
<IntDir Condition="'$(Configuration)|$(Platform)'=='release_static_md|Win32'">obj\TestApp\$(Configuration)\</IntDir>
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='release_static_md|Win32'">false</LinkIncremental>
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='release_static_md|x64'">false</LinkIncremental>
<OutDir Condition="'$(Configuration)|$(Platform)'=='debug_static_md|Win32'">bin\static_md\</OutDir>
<IntDir Condition="'$(Configuration)|$(Platform)'=='debug_static_md|Win32'">obj\TestApp\$(Configuration)\</IntDir>
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='debug_static_md|Win32'">true</LinkIncremental>
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='debug_static_md|x64'">true</LinkIncremental>
<OutDir Condition="'$(Configuration)|$(Platform)'=='debug_static_mt|Win32'">bin\static_mt\</OutDir>
<IntDir Condition="'$(Configuration)|$(Platform)'=='debug_static_mt|Win32'">obj\TestApp\$(Configuration)\</IntDir>
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='debug_static_mt|Win32'">true</LinkIncremental>
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='debug_static_mt|x64'">true</LinkIncremental>
<OutDir Condition="'$(Configuration)|$(Platform)'=='release_static_mt|Win32'">bin\static_mt\</OutDir>
<IntDir Condition="'$(Configuration)|$(Platform)'=='release_static_mt|Win32'">obj\TestApp\$(Configuration)\</IntDir>
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='release_static_mt|Win32'">false</LinkIncremental>
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='release_static_mt|x64'">false</LinkIncremental>
<TargetName Condition="'$(Configuration)|$(Platform)'=='release_shared|Win32'">TestApp</TargetName>
<TargetName Condition="'$(Configuration)|$(Platform)'=='release_shared|x64'">TestApp</TargetName>
<TargetName Condition="'$(Configuration)|$(Platform)'=='debug_shared|Win32'">TestAppd</TargetName>
<TargetName Condition="'$(Configuration)|$(Platform)'=='debug_shared|x64'">TestAppd</TargetName>
<TargetName Condition="'$(Configuration)|$(Platform)'=='debug_static_md|Win32'">TestAppd</TargetName>
<TargetName Condition="'$(Configuration)|$(Platform)'=='debug_static_md|x64'">TestAppd</TargetName>
<TargetName Condition="'$(Configuration)|$(Platform)'=='debug_static_mt|Win32'">TestAppd</TargetName>
<TargetName Condition="'$(Configuration)|$(Platform)'=='debug_static_mt|x64'">TestAppd</TargetName>
<TargetName Condition="'$(Configuration)|$(Platform)'=='release_static_md|Win32'">TestApp</TargetName>
<TargetName Condition="'$(Configuration)|$(Platform)'=='release_static_md|x64'">TestApp</TargetName>
<TargetName Condition="'$(Configuration)|$(Platform)'=='release_static_mt|Win32'">TestApp</TargetName>
<TargetName Condition="'$(Configuration)|$(Platform)'=='release_static_mt|x64'">TestApp</TargetName>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='debug_shared|x64'">
<OutDir>bin64\</OutDir>
<IntDir>obj64\TestApp\$(Configuration)\</IntDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='debug_static_md|x64'">
<OutDir>bin64\static_md\</OutDir>
<IntDir>obj64\TestApp\$(Configuration)\</IntDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='debug_static_mt|x64'">
<OutDir>bin64\static_mt\</OutDir>
<IntDir>obj64\TestApp\$(Configuration)\</IntDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='release_shared|x64'">
<OutDir>bin64\</OutDir>
<IntDir>obj64\TestApp\$(Configuration)\</IntDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='release_static_md|x64'">
<OutDir>bin64\static_md\</OutDir>
<IntDir>obj64\TestApp\$(Configuration)\</IntDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='release_static_mt|x64'">
<OutDir>bin64\static_mt\</OutDir>
<IntDir>obj64\TestApp\$(Configuration)\</IntDir>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='debug_shared|Win32'">
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>false</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
<BufferSecurityCheck>true</BufferSecurityCheck>
<TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
<ForceConformanceInForLoopScope>true</ForceConformanceInForLoopScope>
<RuntimeTypeInfo>true</RuntimeTypeInfo>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<AdditionalOptions>/FS</AdditionalOptions>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
</ClCompile>
<Link>
<OutputFile>bin\TestAppd.exe</OutputFile>
<AdditionalLibraryDirectories>..\..\..\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<GenerateDebugInformation>true</GenerateDebugInformation>
<ProgramDatabaseFile>bin\TestAppd.pdb</ProgramDatabaseFile>
<SubSystem>Console</SubSystem>
<TargetMachine>MachineX86</TargetMachine>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='debug_shared|x64'">
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
<BufferSecurityCheck>true</BufferSecurityCheck>
<TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
<ForceConformanceInForLoopScope>true</ForceConformanceInForLoopScope>
<RuntimeTypeInfo>true</RuntimeTypeInfo>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<AdditionalOptions>/FS</AdditionalOptions>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
</ClCompile>
<Link>
<OutputFile>bin64\TestAppd.exe</OutputFile>
<AdditionalLibraryDirectories>..\..\..\lib64;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<GenerateDebugInformation>true</GenerateDebugInformation>
<ProgramDatabaseFile>bin64\TestAppd.pdb</ProgramDatabaseFile>
<SubSystem>Console</SubSystem>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='release_shared|Win32'">
<ClCompile>
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<IntrinsicFunctions>true</IntrinsicFunctions>
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
<OmitFramePointers>true</OmitFramePointers>
<AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<BufferSecurityCheck>false</BufferSecurityCheck>
<TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
<ForceConformanceInForLoopScope>true</ForceConformanceInForLoopScope>
<RuntimeTypeInfo>true</RuntimeTypeInfo>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>
</DebugInformationFormat>
<AdditionalOptions>/FS</AdditionalOptions>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
</ClCompile>
<Link>
<OutputFile>bin\TestApp.exe</OutputFile>
<AdditionalLibraryDirectories>..\..\..\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<GenerateDebugInformation>false</GenerateDebugInformation>
<ProgramDatabaseFile>
</ProgramDatabaseFile>
<SubSystem>Console</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<TargetMachine>MachineX86</TargetMachine>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='release_shared|x64'">
<ClCompile>
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<IntrinsicFunctions>true</IntrinsicFunctions>
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
<OmitFramePointers>true</OmitFramePointers>
<AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<BufferSecurityCheck>false</BufferSecurityCheck>
<TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
<ForceConformanceInForLoopScope>true</ForceConformanceInForLoopScope>
<RuntimeTypeInfo>true</RuntimeTypeInfo>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>
</DebugInformationFormat>
<AdditionalOptions>/FS</AdditionalOptions>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
</ClCompile>
<Link>
<OutputFile>bin64\TestApp.exe</OutputFile>
<AdditionalLibraryDirectories>..\..\..\lib64;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<GenerateDebugInformation>false</GenerateDebugInformation>
<ProgramDatabaseFile>
</ProgramDatabaseFile>
<SubSystem>Console</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='release_static_md|Win32'">
<ClCompile>
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<IntrinsicFunctions>true</IntrinsicFunctions>
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
<OmitFramePointers>true</OmitFramePointers>
<AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<BufferSecurityCheck>false</BufferSecurityCheck>
<TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
<ForceConformanceInForLoopScope>true</ForceConformanceInForLoopScope>
<RuntimeTypeInfo>true</RuntimeTypeInfo>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>
</DebugInformationFormat>
<AdditionalOptions>/FS</AdditionalOptions>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
</ClCompile>
<Link>
<OutputFile>bin\static_md\TestApp.exe</OutputFile>
<AdditionalLibraryDirectories>..\..\..\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<GenerateDebugInformation>false</GenerateDebugInformation>
<ProgramDatabaseFile>
</ProgramDatabaseFile>
<SubSystem>Console</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<TargetMachine>MachineX86</TargetMachine>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='release_static_md|x64'">
<ClCompile>
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<IntrinsicFunctions>true</IntrinsicFunctions>
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
<OmitFramePointers>true</OmitFramePointers>
<AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<BufferSecurityCheck>false</BufferSecurityCheck>
<TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
<ForceConformanceInForLoopScope>true</ForceConformanceInForLoopScope>
<RuntimeTypeInfo>true</RuntimeTypeInfo>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>
</DebugInformationFormat>
<AdditionalOptions>/FS</AdditionalOptions>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
</ClCompile>
<Link>
<OutputFile>bin64\static_md\TestApp.exe</OutputFile>
<AdditionalLibraryDirectories>..\..\..\lib64;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<GenerateDebugInformation>false</GenerateDebugInformation>
<ProgramDatabaseFile>
</ProgramDatabaseFile>
<SubSystem>Console</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='debug_static_md|Win32'">
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>false</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
<BufferSecurityCheck>true</BufferSecurityCheck>
<TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
<ForceConformanceInForLoopScope>true</ForceConformanceInForLoopScope>
<RuntimeTypeInfo>true</RuntimeTypeInfo>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<AdditionalOptions>/FS</AdditionalOptions>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
</ClCompile>
<Link>
<OutputFile>bin\static_md\TestAppd.exe</OutputFile>
<AdditionalLibraryDirectories>..\..\..\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<GenerateDebugInformation>true</GenerateDebugInformation>
<ProgramDatabaseFile>bin\static_md\TestAppd.pdb</ProgramDatabaseFile>
<SubSystem>Console</SubSystem>
<TargetMachine>MachineX86</TargetMachine>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='debug_static_md|x64'">
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
<BufferSecurityCheck>true</BufferSecurityCheck>
<TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
<ForceConformanceInForLoopScope>true</ForceConformanceInForLoopScope>
<RuntimeTypeInfo>true</RuntimeTypeInfo>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<AdditionalOptions>/FS</AdditionalOptions>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
</ClCompile>
<Link>
<OutputFile>bin64\static_md\TestAppd.exe</OutputFile>
<AdditionalLibraryDirectories>..\..\..\lib64;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<GenerateDebugInformation>true</GenerateDebugInformation>
<ProgramDatabaseFile>bin64\static_md\TestAppd.pdb</ProgramDatabaseFile>
<SubSystem>Console</SubSystem>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='debug_static_mt|Win32'">
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>false</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
<BufferSecurityCheck>true</BufferSecurityCheck>
<TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
<ForceConformanceInForLoopScope>true</ForceConformanceInForLoopScope>
<RuntimeTypeInfo>true</RuntimeTypeInfo>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<AdditionalOptions>/FS</AdditionalOptions>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
</ClCompile>
<Link>
<OutputFile>bin\static_mt\TestAppd.exe</OutputFile>
<AdditionalLibraryDirectories>..\..\..\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<GenerateDebugInformation>true</GenerateDebugInformation>
<ProgramDatabaseFile>bin\static_mt\TestAppd.pdb</ProgramDatabaseFile>
<SubSystem>Console</SubSystem>
<TargetMachine>MachineX86</TargetMachine>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='debug_static_mt|x64'">
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
<BufferSecurityCheck>true</BufferSecurityCheck>
<TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
<ForceConformanceInForLoopScope>true</ForceConformanceInForLoopScope>
<RuntimeTypeInfo>true</RuntimeTypeInfo>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<AdditionalOptions>/FS</AdditionalOptions>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
</ClCompile>
<Link>
<OutputFile>bin64\static_mt\TestAppd.exe</OutputFile>
<AdditionalLibraryDirectories>..\..\..\lib64;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<GenerateDebugInformation>true</GenerateDebugInformation>
<ProgramDatabaseFile>bin64\static_mt\TestAppd.pdb</ProgramDatabaseFile>
<SubSystem>Console</SubSystem>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='release_static_mt|Win32'">
<ClCompile>
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<IntrinsicFunctions>true</IntrinsicFunctions>
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
<OmitFramePointers>true</OmitFramePointers>
<AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<BufferSecurityCheck>false</BufferSecurityCheck>
<TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
<ForceConformanceInForLoopScope>true</ForceConformanceInForLoopScope>
<RuntimeTypeInfo>true</RuntimeTypeInfo>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>
</DebugInformationFormat>
<AdditionalOptions>/FS</AdditionalOptions>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
</ClCompile>
<Link>
<OutputFile>bin\static_mt\TestApp.exe</OutputFile>
<AdditionalLibraryDirectories>..\..\..\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<GenerateDebugInformation>false</GenerateDebugInformation>
<ProgramDatabaseFile>
</ProgramDatabaseFile>
<SubSystem>Console</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<TargetMachine>MachineX86</TargetMachine>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='release_static_mt|x64'">
<ClCompile>
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<IntrinsicFunctions>true</IntrinsicFunctions>
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
<OmitFramePointers>true</OmitFramePointers>
<AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<BufferSecurityCheck>false</BufferSecurityCheck>
<TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
<ForceConformanceInForLoopScope>true</ForceConformanceInForLoopScope>
<RuntimeTypeInfo>true</RuntimeTypeInfo>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>
</DebugInformationFormat>
<AdditionalOptions>/FS</AdditionalOptions>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
</ClCompile>
<Link>
<OutputFile>bin64\static_mt\TestApp.exe</OutputFile>
<AdditionalLibraryDirectories>..\..\..\lib64;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<GenerateDebugInformation>false</GenerateDebugInformation>
<ProgramDatabaseFile>
</ProgramDatabaseFile>
<SubSystem>Console</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
</Link>
</ItemDefinitionGroup>
<ItemGroup>
<ClCompile Include="src\TestApp.cpp" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>

View File

@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="Source Files">
<UniqueIdentifier>{64a104ed-fb69-4821-b11c-494d063d19f5}</UniqueIdentifier>
</Filter>
</ItemGroup>
<ItemGroup>
<ClCompile Include="src\TestApp.cpp">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>
</Project>

View File

@@ -0,0 +1,623 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="debug_shared|Win32">
<Configuration>debug_shared</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="debug_shared|x64">
<Configuration>debug_shared</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="debug_static_md|Win32">
<Configuration>debug_static_md</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="debug_static_md|x64">
<Configuration>debug_static_md</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="debug_static_mt|Win32">
<Configuration>debug_static_mt</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="debug_static_mt|x64">
<Configuration>debug_static_mt</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="release_shared|Win32">
<Configuration>release_shared</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="release_shared|x64">
<Configuration>release_shared</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="release_static_md|Win32">
<Configuration>release_static_md</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="release_static_md|x64">
<Configuration>release_static_md</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="release_static_mt|Win32">
<Configuration>release_static_mt</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="release_static_mt|x64">
<Configuration>release_static_mt</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectName>TestApp</ProjectName>
<ProjectGuid>{6C41E55D-C0FC-4E01-AA8D-B7DA40E31D3A}</ProjectGuid>
<RootNamespace>TestApp</RootNamespace>
<Keyword>Win32Proj</Keyword>
<WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='release_static_mt|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseOfMfc>false</UseOfMfc>
<CharacterSet>MultiByte</CharacterSet>
<PlatformToolset>v142</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='release_static_mt|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseOfMfc>false</UseOfMfc>
<CharacterSet>MultiByte</CharacterSet>
<PlatformToolset>v142</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='debug_static_mt|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseOfMfc>false</UseOfMfc>
<CharacterSet>MultiByte</CharacterSet>
<PlatformToolset>v142</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='debug_static_mt|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseOfMfc>false</UseOfMfc>
<CharacterSet>MultiByte</CharacterSet>
<PlatformToolset>v142</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='debug_static_md|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseOfMfc>false</UseOfMfc>
<CharacterSet>MultiByte</CharacterSet>
<PlatformToolset>v142</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='debug_static_md|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseOfMfc>false</UseOfMfc>
<CharacterSet>MultiByte</CharacterSet>
<PlatformToolset>v142</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='release_static_md|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseOfMfc>false</UseOfMfc>
<CharacterSet>MultiByte</CharacterSet>
<PlatformToolset>v142</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='release_static_md|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseOfMfc>false</UseOfMfc>
<CharacterSet>MultiByte</CharacterSet>
<PlatformToolset>v142</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='release_shared|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseOfMfc>false</UseOfMfc>
<CharacterSet>MultiByte</CharacterSet>
<PlatformToolset>v142</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='release_shared|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseOfMfc>false</UseOfMfc>
<CharacterSet>MultiByte</CharacterSet>
<PlatformToolset>v142</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='debug_shared|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseOfMfc>false</UseOfMfc>
<CharacterSet>MultiByte</CharacterSet>
<PlatformToolset>v142</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='debug_shared|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseOfMfc>false</UseOfMfc>
<CharacterSet>MultiByte</CharacterSet>
<PlatformToolset>v142</PlatformToolset>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='release_static_mt|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='release_static_mt|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='debug_static_mt|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='debug_static_mt|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='debug_static_md|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='debug_static_md|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='release_static_md|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='release_static_md|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='release_shared|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='release_shared|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='debug_shared|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='debug_shared|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup>
<_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
<OutDir Condition="'$(Configuration)|$(Platform)'=='debug_shared|Win32'">bin\</OutDir>
<IntDir Condition="'$(Configuration)|$(Platform)'=='debug_shared|Win32'">obj\TestApp\$(Configuration)\</IntDir>
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='debug_shared|Win32'">true</LinkIncremental>
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='debug_shared|x64'">true</LinkIncremental>
<OutDir Condition="'$(Configuration)|$(Platform)'=='release_shared|Win32'">bin\</OutDir>
<IntDir Condition="'$(Configuration)|$(Platform)'=='release_shared|Win32'">obj\TestApp\$(Configuration)\</IntDir>
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='release_shared|Win32'">false</LinkIncremental>
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='release_shared|x64'">false</LinkIncremental>
<OutDir Condition="'$(Configuration)|$(Platform)'=='release_static_md|Win32'">bin\static_md\</OutDir>
<IntDir Condition="'$(Configuration)|$(Platform)'=='release_static_md|Win32'">obj\TestApp\$(Configuration)\</IntDir>
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='release_static_md|Win32'">false</LinkIncremental>
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='release_static_md|x64'">false</LinkIncremental>
<OutDir Condition="'$(Configuration)|$(Platform)'=='debug_static_md|Win32'">bin\static_md\</OutDir>
<IntDir Condition="'$(Configuration)|$(Platform)'=='debug_static_md|Win32'">obj\TestApp\$(Configuration)\</IntDir>
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='debug_static_md|Win32'">true</LinkIncremental>
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='debug_static_md|x64'">true</LinkIncremental>
<OutDir Condition="'$(Configuration)|$(Platform)'=='debug_static_mt|Win32'">bin\static_mt\</OutDir>
<IntDir Condition="'$(Configuration)|$(Platform)'=='debug_static_mt|Win32'">obj\TestApp\$(Configuration)\</IntDir>
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='debug_static_mt|Win32'">true</LinkIncremental>
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='debug_static_mt|x64'">true</LinkIncremental>
<OutDir Condition="'$(Configuration)|$(Platform)'=='release_static_mt|Win32'">bin\static_mt\</OutDir>
<IntDir Condition="'$(Configuration)|$(Platform)'=='release_static_mt|Win32'">obj\TestApp\$(Configuration)\</IntDir>
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='release_static_mt|Win32'">false</LinkIncremental>
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='release_static_mt|x64'">false</LinkIncremental>
<TargetName Condition="'$(Configuration)|$(Platform)'=='release_shared|Win32'">TestApp</TargetName>
<TargetName Condition="'$(Configuration)|$(Platform)'=='release_shared|x64'">TestApp</TargetName>
<TargetName Condition="'$(Configuration)|$(Platform)'=='debug_shared|Win32'">TestAppd</TargetName>
<TargetName Condition="'$(Configuration)|$(Platform)'=='debug_shared|x64'">TestAppd</TargetName>
<TargetName Condition="'$(Configuration)|$(Platform)'=='debug_static_md|Win32'">TestAppd</TargetName>
<TargetName Condition="'$(Configuration)|$(Platform)'=='debug_static_md|x64'">TestAppd</TargetName>
<TargetName Condition="'$(Configuration)|$(Platform)'=='debug_static_mt|Win32'">TestAppd</TargetName>
<TargetName Condition="'$(Configuration)|$(Platform)'=='debug_static_mt|x64'">TestAppd</TargetName>
<TargetName Condition="'$(Configuration)|$(Platform)'=='release_static_md|Win32'">TestApp</TargetName>
<TargetName Condition="'$(Configuration)|$(Platform)'=='release_static_md|x64'">TestApp</TargetName>
<TargetName Condition="'$(Configuration)|$(Platform)'=='release_static_mt|Win32'">TestApp</TargetName>
<TargetName Condition="'$(Configuration)|$(Platform)'=='release_static_mt|x64'">TestApp</TargetName>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='debug_shared|x64'">
<OutDir>bin64\</OutDir>
<IntDir>obj64\TestApp\$(Configuration)\</IntDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='debug_static_md|x64'">
<OutDir>bin64\static_md\</OutDir>
<IntDir>obj64\TestApp\$(Configuration)\</IntDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='debug_static_mt|x64'">
<OutDir>bin64\static_mt\</OutDir>
<IntDir>obj64\TestApp\$(Configuration)\</IntDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='release_shared|x64'">
<OutDir>bin64\</OutDir>
<IntDir>obj64\TestApp\$(Configuration)\</IntDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='release_static_md|x64'">
<OutDir>bin64\static_md\</OutDir>
<IntDir>obj64\TestApp\$(Configuration)\</IntDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='release_static_mt|x64'">
<OutDir>bin64\static_mt\</OutDir>
<IntDir>obj64\TestApp\$(Configuration)\</IntDir>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='debug_shared|Win32'">
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>false</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
<BufferSecurityCheck>true</BufferSecurityCheck>
<TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
<ForceConformanceInForLoopScope>true</ForceConformanceInForLoopScope>
<RuntimeTypeInfo>true</RuntimeTypeInfo>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<AdditionalOptions>/FS</AdditionalOptions>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
</ClCompile>
<Link>
<OutputFile>bin\TestAppd.exe</OutputFile>
<AdditionalLibraryDirectories>..\..\..\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<GenerateDebugInformation>true</GenerateDebugInformation>
<ProgramDatabaseFile>bin\TestAppd.pdb</ProgramDatabaseFile>
<SubSystem>Console</SubSystem>
<TargetMachine>MachineX86</TargetMachine>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='debug_shared|x64'">
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
<BufferSecurityCheck>true</BufferSecurityCheck>
<TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
<ForceConformanceInForLoopScope>true</ForceConformanceInForLoopScope>
<RuntimeTypeInfo>true</RuntimeTypeInfo>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<AdditionalOptions>/FS</AdditionalOptions>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
</ClCompile>
<Link>
<OutputFile>bin64\TestAppd.exe</OutputFile>
<AdditionalLibraryDirectories>..\..\..\lib64;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<GenerateDebugInformation>true</GenerateDebugInformation>
<ProgramDatabaseFile>bin64\TestAppd.pdb</ProgramDatabaseFile>
<SubSystem>Console</SubSystem>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='release_shared|Win32'">
<ClCompile>
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<IntrinsicFunctions>true</IntrinsicFunctions>
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
<OmitFramePointers>true</OmitFramePointers>
<AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<BufferSecurityCheck>false</BufferSecurityCheck>
<TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
<ForceConformanceInForLoopScope>true</ForceConformanceInForLoopScope>
<RuntimeTypeInfo>true</RuntimeTypeInfo>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>
</DebugInformationFormat>
<AdditionalOptions>/FS</AdditionalOptions>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
</ClCompile>
<Link>
<OutputFile>bin\TestApp.exe</OutputFile>
<AdditionalLibraryDirectories>..\..\..\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<GenerateDebugInformation>false</GenerateDebugInformation>
<ProgramDatabaseFile>
</ProgramDatabaseFile>
<SubSystem>Console</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<TargetMachine>MachineX86</TargetMachine>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='release_shared|x64'">
<ClCompile>
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<IntrinsicFunctions>true</IntrinsicFunctions>
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
<OmitFramePointers>true</OmitFramePointers>
<AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<BufferSecurityCheck>false</BufferSecurityCheck>
<TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
<ForceConformanceInForLoopScope>true</ForceConformanceInForLoopScope>
<RuntimeTypeInfo>true</RuntimeTypeInfo>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>
</DebugInformationFormat>
<AdditionalOptions>/FS</AdditionalOptions>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
</ClCompile>
<Link>
<OutputFile>bin64\TestApp.exe</OutputFile>
<AdditionalLibraryDirectories>..\..\..\lib64;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<GenerateDebugInformation>false</GenerateDebugInformation>
<ProgramDatabaseFile>
</ProgramDatabaseFile>
<SubSystem>Console</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='release_static_md|Win32'">
<ClCompile>
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<IntrinsicFunctions>true</IntrinsicFunctions>
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
<OmitFramePointers>true</OmitFramePointers>
<AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<BufferSecurityCheck>false</BufferSecurityCheck>
<TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
<ForceConformanceInForLoopScope>true</ForceConformanceInForLoopScope>
<RuntimeTypeInfo>true</RuntimeTypeInfo>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>
</DebugInformationFormat>
<AdditionalOptions>/FS</AdditionalOptions>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
</ClCompile>
<Link>
<OutputFile>bin\static_md\TestApp.exe</OutputFile>
<AdditionalLibraryDirectories>..\..\..\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<GenerateDebugInformation>false</GenerateDebugInformation>
<ProgramDatabaseFile>
</ProgramDatabaseFile>
<SubSystem>Console</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<TargetMachine>MachineX86</TargetMachine>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='release_static_md|x64'">
<ClCompile>
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<IntrinsicFunctions>true</IntrinsicFunctions>
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
<OmitFramePointers>true</OmitFramePointers>
<AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<BufferSecurityCheck>false</BufferSecurityCheck>
<TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
<ForceConformanceInForLoopScope>true</ForceConformanceInForLoopScope>
<RuntimeTypeInfo>true</RuntimeTypeInfo>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>
</DebugInformationFormat>
<AdditionalOptions>/FS</AdditionalOptions>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
</ClCompile>
<Link>
<OutputFile>bin64\static_md\TestApp.exe</OutputFile>
<AdditionalLibraryDirectories>..\..\..\lib64;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<GenerateDebugInformation>false</GenerateDebugInformation>
<ProgramDatabaseFile>
</ProgramDatabaseFile>
<SubSystem>Console</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='debug_static_md|Win32'">
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>false</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
<BufferSecurityCheck>true</BufferSecurityCheck>
<TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
<ForceConformanceInForLoopScope>true</ForceConformanceInForLoopScope>
<RuntimeTypeInfo>true</RuntimeTypeInfo>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<AdditionalOptions>/FS</AdditionalOptions>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
</ClCompile>
<Link>
<OutputFile>bin\static_md\TestAppd.exe</OutputFile>
<AdditionalLibraryDirectories>..\..\..\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<GenerateDebugInformation>true</GenerateDebugInformation>
<ProgramDatabaseFile>bin\static_md\TestAppd.pdb</ProgramDatabaseFile>
<SubSystem>Console</SubSystem>
<TargetMachine>MachineX86</TargetMachine>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='debug_static_md|x64'">
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
<BufferSecurityCheck>true</BufferSecurityCheck>
<TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
<ForceConformanceInForLoopScope>true</ForceConformanceInForLoopScope>
<RuntimeTypeInfo>true</RuntimeTypeInfo>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<AdditionalOptions>/FS</AdditionalOptions>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
</ClCompile>
<Link>
<OutputFile>bin64\static_md\TestAppd.exe</OutputFile>
<AdditionalLibraryDirectories>..\..\..\lib64;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<GenerateDebugInformation>true</GenerateDebugInformation>
<ProgramDatabaseFile>bin64\static_md\TestAppd.pdb</ProgramDatabaseFile>
<SubSystem>Console</SubSystem>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='debug_static_mt|Win32'">
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>false</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
<BufferSecurityCheck>true</BufferSecurityCheck>
<TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
<ForceConformanceInForLoopScope>true</ForceConformanceInForLoopScope>
<RuntimeTypeInfo>true</RuntimeTypeInfo>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<AdditionalOptions>/FS</AdditionalOptions>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
</ClCompile>
<Link>
<OutputFile>bin\static_mt\TestAppd.exe</OutputFile>
<AdditionalLibraryDirectories>..\..\..\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<GenerateDebugInformation>true</GenerateDebugInformation>
<ProgramDatabaseFile>bin\static_mt\TestAppd.pdb</ProgramDatabaseFile>
<SubSystem>Console</SubSystem>
<TargetMachine>MachineX86</TargetMachine>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='debug_static_mt|x64'">
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
<BufferSecurityCheck>true</BufferSecurityCheck>
<TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
<ForceConformanceInForLoopScope>true</ForceConformanceInForLoopScope>
<RuntimeTypeInfo>true</RuntimeTypeInfo>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<AdditionalOptions>/FS</AdditionalOptions>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
</ClCompile>
<Link>
<OutputFile>bin64\static_mt\TestAppd.exe</OutputFile>
<AdditionalLibraryDirectories>..\..\..\lib64;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<GenerateDebugInformation>true</GenerateDebugInformation>
<ProgramDatabaseFile>bin64\static_mt\TestAppd.pdb</ProgramDatabaseFile>
<SubSystem>Console</SubSystem>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='release_static_mt|Win32'">
<ClCompile>
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<IntrinsicFunctions>true</IntrinsicFunctions>
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
<OmitFramePointers>true</OmitFramePointers>
<AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<BufferSecurityCheck>false</BufferSecurityCheck>
<TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
<ForceConformanceInForLoopScope>true</ForceConformanceInForLoopScope>
<RuntimeTypeInfo>true</RuntimeTypeInfo>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>
</DebugInformationFormat>
<AdditionalOptions>/FS</AdditionalOptions>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
</ClCompile>
<Link>
<OutputFile>bin\static_mt\TestApp.exe</OutputFile>
<AdditionalLibraryDirectories>..\..\..\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<GenerateDebugInformation>false</GenerateDebugInformation>
<ProgramDatabaseFile>
</ProgramDatabaseFile>
<SubSystem>Console</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<TargetMachine>MachineX86</TargetMachine>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='release_static_mt|x64'">
<ClCompile>
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<IntrinsicFunctions>true</IntrinsicFunctions>
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
<OmitFramePointers>true</OmitFramePointers>
<AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<BufferSecurityCheck>false</BufferSecurityCheck>
<TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
<ForceConformanceInForLoopScope>true</ForceConformanceInForLoopScope>
<RuntimeTypeInfo>true</RuntimeTypeInfo>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>
</DebugInformationFormat>
<AdditionalOptions>/FS</AdditionalOptions>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
</ClCompile>
<Link>
<OutputFile>bin64\static_mt\TestApp.exe</OutputFile>
<AdditionalLibraryDirectories>..\..\..\lib64;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<GenerateDebugInformation>false</GenerateDebugInformation>
<ProgramDatabaseFile>
</ProgramDatabaseFile>
<SubSystem>Console</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
</Link>
</ItemDefinitionGroup>
<ItemGroup>
<ClCompile Include="src\TestApp.cpp" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>

View File

@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="Source Files">
<UniqueIdentifier>{64a104ed-fb69-4821-b11c-494d063d19f5}</UniqueIdentifier>
</Filter>
</ItemGroup>
<ItemGroup>
<ClCompile Include="src\TestApp.cpp">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>
</Project>

View File

@@ -0,0 +1,238 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="debug_shared|Win32">
<Configuration>debug_shared</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="debug_shared|x64">
<Configuration>debug_shared</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="release_shared|Win32">
<Configuration>release_shared</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="release_shared|x64">
<Configuration>release_shared</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectName>TestLibrary</ProjectName>
<ProjectGuid>{0955EB03-544B-4BD4-9C10-89CF38078F5F}</ProjectGuid>
<Keyword>Win32Proj</Keyword>
<WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='release_shared|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
<PlatformToolset>v140</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='release_shared|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
<PlatformToolset>v140</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='debug_shared|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
<PlatformToolset>v140</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='debug_shared|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
<PlatformToolset>v140</PlatformToolset>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='release_shared|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='release_shared|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='debug_shared|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='debug_shared|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup>
<_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
<OutDir Condition="'$(Configuration)|$(Platform)'=='debug_shared|Win32'">bin\</OutDir>
<IntDir Condition="'$(Configuration)|$(Platform)'=='debug_shared|Win32'">obj\TestLibrary\$(Configuration)\</IntDir>
<IgnoreImportLibrary Condition="'$(Configuration)|$(Platform)'=='debug_shared|Win32'">true</IgnoreImportLibrary>
<IgnoreImportLibrary Condition="'$(Configuration)|$(Platform)'=='debug_shared|x64'">true</IgnoreImportLibrary>
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='debug_shared|Win32'">true</LinkIncremental>
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='debug_shared|x64'">true</LinkIncremental>
<OutDir Condition="'$(Configuration)|$(Platform)'=='release_shared|Win32'">bin\</OutDir>
<IntDir Condition="'$(Configuration)|$(Platform)'=='release_shared|Win32'">obj\TestLibrary\$(Configuration)\</IntDir>
<IgnoreImportLibrary Condition="'$(Configuration)|$(Platform)'=='release_shared|Win32'">true</IgnoreImportLibrary>
<IgnoreImportLibrary Condition="'$(Configuration)|$(Platform)'=='release_shared|x64'">true</IgnoreImportLibrary>
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='release_shared|Win32'">false</LinkIncremental>
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='release_shared|x64'">false</LinkIncremental>
<TargetName Condition="'$(Configuration)|$(Platform)'=='release_shared|Win32'">TestLibrary</TargetName>
<TargetName Condition="'$(Configuration)|$(Platform)'=='release_shared|x64'">TestLibrary</TargetName>
<TargetName Condition="'$(Configuration)|$(Platform)'=='debug_shared|Win32'">TestLibraryd</TargetName>
<TargetName Condition="'$(Configuration)|$(Platform)'=='debug_shared|x64'">TestLibraryd</TargetName>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='debug_shared|x64'">
<OutDir>bin64\</OutDir>
<IntDir>obj64\TestLibrary\$(Configuration)\</IntDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='release_shared|x64'">
<OutDir>bin64\</OutDir>
<IntDir>obj64\TestLibrary\$(Configuration)\</IntDir>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='debug_shared|Win32'">
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<MinimalRebuild>false</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
<BufferSecurityCheck>true</BufferSecurityCheck>
<TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
<ForceConformanceInForLoopScope>true</ForceConformanceInForLoopScope>
<RuntimeTypeInfo>true</RuntimeTypeInfo>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<AdditionalOptions>/FS</AdditionalOptions>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
</ClCompile>
<Link>
<AdditionalDependencies>PocoFoundationd.lib;%(AdditionalDependencies)</AdditionalDependencies>
<OutputFile>bin\TestLibraryd.dll</OutputFile>
<AdditionalLibraryDirectories>..\..\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<GenerateDebugInformation>true</GenerateDebugInformation>
<ProgramDatabaseFile>bin\TestLibraryd.pdb</ProgramDatabaseFile>
<SubSystem>Console</SubSystem>
<ImportLibrary>
</ImportLibrary>
<TargetMachine>MachineX86</TargetMachine>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='debug_shared|x64'">
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
<BufferSecurityCheck>true</BufferSecurityCheck>
<TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
<ForceConformanceInForLoopScope>true</ForceConformanceInForLoopScope>
<RuntimeTypeInfo>true</RuntimeTypeInfo>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<AdditionalOptions>/FS</AdditionalOptions>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
</ClCompile>
<Link>
<AdditionalDependencies>PocoFoundationd.lib;%(AdditionalDependencies)</AdditionalDependencies>
<OutputFile>bin64\TestLibraryd.dll</OutputFile>
<AdditionalLibraryDirectories>..\..\lib64;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<GenerateDebugInformation>true</GenerateDebugInformation>
<ProgramDatabaseFile>bin64\TestLibraryd.pdb</ProgramDatabaseFile>
<SubSystem>Console</SubSystem>
<ImportLibrary>
</ImportLibrary>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='release_shared|Win32'">
<ClCompile>
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<IntrinsicFunctions>true</IntrinsicFunctions>
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
<OmitFramePointers>true</OmitFramePointers>
<AdditionalIncludeDirectories>..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<BufferSecurityCheck>false</BufferSecurityCheck>
<TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
<ForceConformanceInForLoopScope>true</ForceConformanceInForLoopScope>
<RuntimeTypeInfo>true</RuntimeTypeInfo>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>
</DebugInformationFormat>
<AdditionalOptions>/FS</AdditionalOptions>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
</ClCompile>
<Link>
<AdditionalDependencies>PocoFoundation.lib;%(AdditionalDependencies)</AdditionalDependencies>
<OutputFile>bin\TestLibrary.dll</OutputFile>
<AdditionalLibraryDirectories>..\..\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<GenerateDebugInformation>false</GenerateDebugInformation>
<ProgramDatabaseFile>
</ProgramDatabaseFile>
<SubSystem>Console</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<ImportLibrary>
</ImportLibrary>
<TargetMachine>MachineX86</TargetMachine>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='release_shared|x64'">
<ClCompile>
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<IntrinsicFunctions>true</IntrinsicFunctions>
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
<OmitFramePointers>true</OmitFramePointers>
<AdditionalIncludeDirectories>..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<BufferSecurityCheck>false</BufferSecurityCheck>
<TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
<ForceConformanceInForLoopScope>true</ForceConformanceInForLoopScope>
<RuntimeTypeInfo>true</RuntimeTypeInfo>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>
</DebugInformationFormat>
<AdditionalOptions>/FS</AdditionalOptions>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
</ClCompile>
<Link>
<AdditionalDependencies>PocoFoundation.lib;%(AdditionalDependencies)</AdditionalDependencies>
<OutputFile>bin64\TestLibrary.dll</OutputFile>
<AdditionalLibraryDirectories>..\..\lib64;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<GenerateDebugInformation>false</GenerateDebugInformation>
<ProgramDatabaseFile>
</ProgramDatabaseFile>
<SubSystem>Console</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<ImportLibrary>
</ImportLibrary>
</Link>
</ItemDefinitionGroup>
<ItemGroup>
<ClCompile Include="src\TestLibrary.cpp" />
<ClCompile Include="src\TestPlugin.cpp" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="src\TestPlugin.h" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>

View File

@@ -0,0 +1,25 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="Source Files">
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
<Extensions>cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
</Filter>
<Filter Include="Header Files">
<UniqueIdentifier>{c8906c29-86ed-4749-b34e-0f6454645796}</UniqueIdentifier>
</Filter>
</ItemGroup>
<ItemGroup>
<ClCompile Include="src\TestLibrary.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="src\TestPlugin.cpp">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="src\TestPlugin.h">
<Filter>Header Files</Filter>
</ClInclude>
</ItemGroup>
</Project>

View File

@@ -0,0 +1,238 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="debug_shared|Win32">
<Configuration>debug_shared</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="debug_shared|x64">
<Configuration>debug_shared</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="release_shared|Win32">
<Configuration>release_shared</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="release_shared|x64">
<Configuration>release_shared</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectName>TestLibrary</ProjectName>
<ProjectGuid>{0955EB03-544B-4BD4-9C10-89CF38078F5F}</ProjectGuid>
<Keyword>Win32Proj</Keyword>
<WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='release_shared|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
<PlatformToolset>v141</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='release_shared|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
<PlatformToolset>v141</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='debug_shared|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
<PlatformToolset>v141</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='debug_shared|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
<PlatformToolset>v141</PlatformToolset>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='release_shared|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='release_shared|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='debug_shared|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='debug_shared|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup>
<_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
<OutDir Condition="'$(Configuration)|$(Platform)'=='debug_shared|Win32'">bin\</OutDir>
<IntDir Condition="'$(Configuration)|$(Platform)'=='debug_shared|Win32'">obj\TestLibrary\$(Configuration)\</IntDir>
<IgnoreImportLibrary Condition="'$(Configuration)|$(Platform)'=='debug_shared|Win32'">true</IgnoreImportLibrary>
<IgnoreImportLibrary Condition="'$(Configuration)|$(Platform)'=='debug_shared|x64'">true</IgnoreImportLibrary>
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='debug_shared|Win32'">true</LinkIncremental>
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='debug_shared|x64'">true</LinkIncremental>
<OutDir Condition="'$(Configuration)|$(Platform)'=='release_shared|Win32'">bin\</OutDir>
<IntDir Condition="'$(Configuration)|$(Platform)'=='release_shared|Win32'">obj\TestLibrary\$(Configuration)\</IntDir>
<IgnoreImportLibrary Condition="'$(Configuration)|$(Platform)'=='release_shared|Win32'">true</IgnoreImportLibrary>
<IgnoreImportLibrary Condition="'$(Configuration)|$(Platform)'=='release_shared|x64'">true</IgnoreImportLibrary>
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='release_shared|Win32'">false</LinkIncremental>
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='release_shared|x64'">false</LinkIncremental>
<TargetName Condition="'$(Configuration)|$(Platform)'=='release_shared|Win32'">TestLibrary</TargetName>
<TargetName Condition="'$(Configuration)|$(Platform)'=='release_shared|x64'">TestLibrary</TargetName>
<TargetName Condition="'$(Configuration)|$(Platform)'=='debug_shared|Win32'">TestLibraryd</TargetName>
<TargetName Condition="'$(Configuration)|$(Platform)'=='debug_shared|x64'">TestLibraryd</TargetName>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='debug_shared|x64'">
<OutDir>bin64\</OutDir>
<IntDir>obj64\TestLibrary\$(Configuration)\</IntDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='release_shared|x64'">
<OutDir>bin64\</OutDir>
<IntDir>obj64\TestLibrary\$(Configuration)\</IntDir>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='debug_shared|Win32'">
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<MinimalRebuild>false</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
<BufferSecurityCheck>true</BufferSecurityCheck>
<TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
<ForceConformanceInForLoopScope>true</ForceConformanceInForLoopScope>
<RuntimeTypeInfo>true</RuntimeTypeInfo>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<AdditionalOptions>/FS</AdditionalOptions>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
</ClCompile>
<Link>
<AdditionalDependencies>PocoFoundationd.lib;%(AdditionalDependencies)</AdditionalDependencies>
<OutputFile>bin\TestLibraryd.dll</OutputFile>
<AdditionalLibraryDirectories>..\..\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<GenerateDebugInformation>true</GenerateDebugInformation>
<ProgramDatabaseFile>bin\TestLibraryd.pdb</ProgramDatabaseFile>
<SubSystem>Console</SubSystem>
<ImportLibrary>
</ImportLibrary>
<TargetMachine>MachineX86</TargetMachine>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='debug_shared|x64'">
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
<BufferSecurityCheck>true</BufferSecurityCheck>
<TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
<ForceConformanceInForLoopScope>true</ForceConformanceInForLoopScope>
<RuntimeTypeInfo>true</RuntimeTypeInfo>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<AdditionalOptions>/FS</AdditionalOptions>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
</ClCompile>
<Link>
<AdditionalDependencies>PocoFoundationd.lib;%(AdditionalDependencies)</AdditionalDependencies>
<OutputFile>bin64\TestLibraryd.dll</OutputFile>
<AdditionalLibraryDirectories>..\..\lib64;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<GenerateDebugInformation>true</GenerateDebugInformation>
<ProgramDatabaseFile>bin64\TestLibraryd.pdb</ProgramDatabaseFile>
<SubSystem>Console</SubSystem>
<ImportLibrary>
</ImportLibrary>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='release_shared|Win32'">
<ClCompile>
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<IntrinsicFunctions>true</IntrinsicFunctions>
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
<OmitFramePointers>true</OmitFramePointers>
<AdditionalIncludeDirectories>..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<BufferSecurityCheck>false</BufferSecurityCheck>
<TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
<ForceConformanceInForLoopScope>true</ForceConformanceInForLoopScope>
<RuntimeTypeInfo>true</RuntimeTypeInfo>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>
</DebugInformationFormat>
<AdditionalOptions>/FS</AdditionalOptions>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
</ClCompile>
<Link>
<AdditionalDependencies>PocoFoundation.lib;%(AdditionalDependencies)</AdditionalDependencies>
<OutputFile>bin\TestLibrary.dll</OutputFile>
<AdditionalLibraryDirectories>..\..\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<GenerateDebugInformation>false</GenerateDebugInformation>
<ProgramDatabaseFile>
</ProgramDatabaseFile>
<SubSystem>Console</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<ImportLibrary>
</ImportLibrary>
<TargetMachine>MachineX86</TargetMachine>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='release_shared|x64'">
<ClCompile>
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<IntrinsicFunctions>true</IntrinsicFunctions>
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
<OmitFramePointers>true</OmitFramePointers>
<AdditionalIncludeDirectories>..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<BufferSecurityCheck>false</BufferSecurityCheck>
<TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
<ForceConformanceInForLoopScope>true</ForceConformanceInForLoopScope>
<RuntimeTypeInfo>true</RuntimeTypeInfo>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>
</DebugInformationFormat>
<AdditionalOptions>/FS</AdditionalOptions>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
</ClCompile>
<Link>
<AdditionalDependencies>PocoFoundation.lib;%(AdditionalDependencies)</AdditionalDependencies>
<OutputFile>bin64\TestLibrary.dll</OutputFile>
<AdditionalLibraryDirectories>..\..\lib64;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<GenerateDebugInformation>false</GenerateDebugInformation>
<ProgramDatabaseFile>
</ProgramDatabaseFile>
<SubSystem>Console</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<ImportLibrary>
</ImportLibrary>
</Link>
</ItemDefinitionGroup>
<ItemGroup>
<ClCompile Include="src\TestLibrary.cpp" />
<ClCompile Include="src\TestPlugin.cpp" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="src\TestPlugin.h" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>

View File

@@ -0,0 +1,25 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="Source Files">
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
<Extensions>cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
</Filter>
<Filter Include="Header Files">
<UniqueIdentifier>{c8906c29-86ed-4749-b34e-0f6454645796}</UniqueIdentifier>
</Filter>
</ItemGroup>
<ItemGroup>
<ClCompile Include="src\TestLibrary.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="src\TestPlugin.cpp">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="src\TestPlugin.h">
<Filter>Header Files</Filter>
</ClInclude>
</ItemGroup>
</Project>

View File

@@ -0,0 +1,238 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="debug_shared|Win32">
<Configuration>debug_shared</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="debug_shared|x64">
<Configuration>debug_shared</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="release_shared|Win32">
<Configuration>release_shared</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="release_shared|x64">
<Configuration>release_shared</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectName>TestLibrary</ProjectName>
<ProjectGuid>{0955EB03-544B-4BD4-9C10-89CF38078F5F}</ProjectGuid>
<Keyword>Win32Proj</Keyword>
<WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='release_shared|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
<PlatformToolset>v142</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='release_shared|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
<PlatformToolset>v142</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='debug_shared|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
<PlatformToolset>v142</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='debug_shared|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
<PlatformToolset>v142</PlatformToolset>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='release_shared|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='release_shared|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='debug_shared|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='debug_shared|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup>
<_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
<OutDir Condition="'$(Configuration)|$(Platform)'=='debug_shared|Win32'">bin\</OutDir>
<IntDir Condition="'$(Configuration)|$(Platform)'=='debug_shared|Win32'">obj\TestLibrary\$(Configuration)\</IntDir>
<IgnoreImportLibrary Condition="'$(Configuration)|$(Platform)'=='debug_shared|Win32'">true</IgnoreImportLibrary>
<IgnoreImportLibrary Condition="'$(Configuration)|$(Platform)'=='debug_shared|x64'">true</IgnoreImportLibrary>
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='debug_shared|Win32'">true</LinkIncremental>
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='debug_shared|x64'">true</LinkIncremental>
<OutDir Condition="'$(Configuration)|$(Platform)'=='release_shared|Win32'">bin\</OutDir>
<IntDir Condition="'$(Configuration)|$(Platform)'=='release_shared|Win32'">obj\TestLibrary\$(Configuration)\</IntDir>
<IgnoreImportLibrary Condition="'$(Configuration)|$(Platform)'=='release_shared|Win32'">true</IgnoreImportLibrary>
<IgnoreImportLibrary Condition="'$(Configuration)|$(Platform)'=='release_shared|x64'">true</IgnoreImportLibrary>
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='release_shared|Win32'">false</LinkIncremental>
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='release_shared|x64'">false</LinkIncremental>
<TargetName Condition="'$(Configuration)|$(Platform)'=='release_shared|Win32'">TestLibrary</TargetName>
<TargetName Condition="'$(Configuration)|$(Platform)'=='release_shared|x64'">TestLibrary</TargetName>
<TargetName Condition="'$(Configuration)|$(Platform)'=='debug_shared|Win32'">TestLibraryd</TargetName>
<TargetName Condition="'$(Configuration)|$(Platform)'=='debug_shared|x64'">TestLibraryd</TargetName>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='debug_shared|x64'">
<OutDir>bin64\</OutDir>
<IntDir>obj64\TestLibrary\$(Configuration)\</IntDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='release_shared|x64'">
<OutDir>bin64\</OutDir>
<IntDir>obj64\TestLibrary\$(Configuration)\</IntDir>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='debug_shared|Win32'">
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<MinimalRebuild>false</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
<BufferSecurityCheck>true</BufferSecurityCheck>
<TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
<ForceConformanceInForLoopScope>true</ForceConformanceInForLoopScope>
<RuntimeTypeInfo>true</RuntimeTypeInfo>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<AdditionalOptions>/FS</AdditionalOptions>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
</ClCompile>
<Link>
<AdditionalDependencies>PocoFoundationd.lib;%(AdditionalDependencies)</AdditionalDependencies>
<OutputFile>bin\TestLibraryd.dll</OutputFile>
<AdditionalLibraryDirectories>..\..\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<GenerateDebugInformation>true</GenerateDebugInformation>
<ProgramDatabaseFile>bin\TestLibraryd.pdb</ProgramDatabaseFile>
<SubSystem>Console</SubSystem>
<ImportLibrary>
</ImportLibrary>
<TargetMachine>MachineX86</TargetMachine>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='debug_shared|x64'">
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
<BufferSecurityCheck>true</BufferSecurityCheck>
<TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
<ForceConformanceInForLoopScope>true</ForceConformanceInForLoopScope>
<RuntimeTypeInfo>true</RuntimeTypeInfo>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<AdditionalOptions>/FS</AdditionalOptions>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
</ClCompile>
<Link>
<AdditionalDependencies>PocoFoundationd.lib;%(AdditionalDependencies)</AdditionalDependencies>
<OutputFile>bin64\TestLibraryd.dll</OutputFile>
<AdditionalLibraryDirectories>..\..\lib64;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<GenerateDebugInformation>true</GenerateDebugInformation>
<ProgramDatabaseFile>bin64\TestLibraryd.pdb</ProgramDatabaseFile>
<SubSystem>Console</SubSystem>
<ImportLibrary>
</ImportLibrary>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='release_shared|Win32'">
<ClCompile>
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<IntrinsicFunctions>true</IntrinsicFunctions>
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
<OmitFramePointers>true</OmitFramePointers>
<AdditionalIncludeDirectories>..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<BufferSecurityCheck>false</BufferSecurityCheck>
<TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
<ForceConformanceInForLoopScope>true</ForceConformanceInForLoopScope>
<RuntimeTypeInfo>true</RuntimeTypeInfo>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>
</DebugInformationFormat>
<AdditionalOptions>/FS</AdditionalOptions>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
</ClCompile>
<Link>
<AdditionalDependencies>PocoFoundation.lib;%(AdditionalDependencies)</AdditionalDependencies>
<OutputFile>bin\TestLibrary.dll</OutputFile>
<AdditionalLibraryDirectories>..\..\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<GenerateDebugInformation>false</GenerateDebugInformation>
<ProgramDatabaseFile>
</ProgramDatabaseFile>
<SubSystem>Console</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<ImportLibrary>
</ImportLibrary>
<TargetMachine>MachineX86</TargetMachine>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='release_shared|x64'">
<ClCompile>
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<IntrinsicFunctions>true</IntrinsicFunctions>
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
<OmitFramePointers>true</OmitFramePointers>
<AdditionalIncludeDirectories>..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<BufferSecurityCheck>false</BufferSecurityCheck>
<TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
<ForceConformanceInForLoopScope>true</ForceConformanceInForLoopScope>
<RuntimeTypeInfo>true</RuntimeTypeInfo>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>
</DebugInformationFormat>
<AdditionalOptions>/FS</AdditionalOptions>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
</ClCompile>
<Link>
<AdditionalDependencies>PocoFoundation.lib;%(AdditionalDependencies)</AdditionalDependencies>
<OutputFile>bin64\TestLibrary.dll</OutputFile>
<AdditionalLibraryDirectories>..\..\lib64;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<GenerateDebugInformation>false</GenerateDebugInformation>
<ProgramDatabaseFile>
</ProgramDatabaseFile>
<SubSystem>Console</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<ImportLibrary>
</ImportLibrary>
</Link>
</ItemDefinitionGroup>
<ItemGroup>
<ClCompile Include="src\TestLibrary.cpp" />
<ClCompile Include="src\TestPlugin.cpp" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="src\TestPlugin.h" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>

View File

@@ -0,0 +1,25 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="Source Files">
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
<Extensions>cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
</Filter>
<Filter Include="Header Files">
<UniqueIdentifier>{c8906c29-86ed-4749-b34e-0f6454645796}</UniqueIdentifier>
</Filter>
</ItemGroup>
<ItemGroup>
<ClCompile Include="src\TestLibrary.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="src\TestPlugin.cpp">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="src\TestPlugin.h">
<Filter>Header Files</Filter>
</ClInclude>
</ItemGroup>
</Project>

View File

@@ -0,0 +1,891 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="debug_shared|Win32">
<Configuration>debug_shared</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="debug_shared|x64">
<Configuration>debug_shared</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="debug_static_md|Win32">
<Configuration>debug_static_md</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="debug_static_md|x64">
<Configuration>debug_static_md</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="debug_static_mt|Win32">
<Configuration>debug_static_mt</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="debug_static_mt|x64">
<Configuration>debug_static_mt</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="release_shared|Win32">
<Configuration>release_shared</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="release_shared|x64">
<Configuration>release_shared</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="release_static_md|Win32">
<Configuration>release_static_md</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="release_static_md|x64">
<Configuration>release_static_md</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="release_static_mt|Win32">
<Configuration>release_static_mt</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="release_static_mt|x64">
<Configuration>release_static_mt</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectName>TestSuite</ProjectName>
<ProjectGuid>{F1EE93DF-347F-4CB3-B191-C4E63F38E972}</ProjectGuid>
<RootNamespace>TestSuite</RootNamespace>
<Keyword>Win32Proj</Keyword>
<WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='release_static_md|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
<PlatformToolset>v140</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='release_static_md|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
<PlatformToolset>v140</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='debug_static_md|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
<PlatformToolset>v140</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='debug_static_md|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
<PlatformToolset>v140</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='release_static_mt|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
<PlatformToolset>v140</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='release_static_mt|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
<PlatformToolset>v140</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='debug_static_mt|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
<PlatformToolset>v140</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='debug_static_mt|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
<PlatformToolset>v140</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='release_shared|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
<PlatformToolset>v140</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='release_shared|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
<PlatformToolset>v140</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='debug_shared|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
<PlatformToolset>v140</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='debug_shared|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
<PlatformToolset>v140</PlatformToolset>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings" />
<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" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='release_static_md|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<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" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='debug_static_md|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<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" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='release_static_mt|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<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" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='debug_static_mt|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<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" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='release_shared|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<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" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='debug_shared|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup>
<_ProjectFileVersion>14.0.25431.1</_ProjectFileVersion>
<TargetName Condition="'$(Configuration)|$(Platform)'=='debug_shared|Win32'">TestSuited</TargetName>
<TargetName Condition="'$(Configuration)|$(Platform)'=='debug_shared|x64'">TestSuited</TargetName>
<TargetName Condition="'$(Configuration)|$(Platform)'=='debug_static_md|Win32'">TestSuited</TargetName>
<TargetName Condition="'$(Configuration)|$(Platform)'=='debug_static_md|x64'">TestSuited</TargetName>
<TargetName Condition="'$(Configuration)|$(Platform)'=='debug_static_mt|Win32'">TestSuited</TargetName>
<TargetName Condition="'$(Configuration)|$(Platform)'=='debug_static_mt|x64'">TestSuited</TargetName>
<TargetName Condition="'$(Configuration)|$(Platform)'=='release_shared|Win32'">TestSuite</TargetName>
<TargetName Condition="'$(Configuration)|$(Platform)'=='release_shared|x64'">TestSuite</TargetName>
<TargetName Condition="'$(Configuration)|$(Platform)'=='release_static_md|Win32'">TestSuite</TargetName>
<TargetName Condition="'$(Configuration)|$(Platform)'=='release_static_md|x64'">TestSuite</TargetName>
<TargetName Condition="'$(Configuration)|$(Platform)'=='release_static_mt|Win32'">TestSuite</TargetName>
<TargetName Condition="'$(Configuration)|$(Platform)'=='release_static_mt|x64'">TestSuite</TargetName>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='debug_shared|Win32'">
<OutDir>bin\</OutDir>
<IntDir>obj\TestSuite\$(Configuration)\</IntDir>
<LinkIncremental>true</LinkIncremental>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='debug_shared|x64'">
<LinkIncremental>true</LinkIncremental>
<IntDir>obj64\TestSuite\$(Configuration)\</IntDir>
<OutDir>bin64\</OutDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='release_shared|Win32'">
<OutDir>bin\</OutDir>
<IntDir>obj\TestSuite\$(Configuration)\</IntDir>
<LinkIncremental>false</LinkIncremental>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='release_shared|x64'">
<LinkIncremental>false</LinkIncremental>
<IntDir>obj64\TestSuite\$(Configuration)\</IntDir>
<OutDir>bin64\</OutDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='debug_static_mt|Win32'">
<OutDir>bin\static_mt\</OutDir>
<IntDir>obj\TestSuite\$(Configuration)\</IntDir>
<LinkIncremental>true</LinkIncremental>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='debug_static_mt|x64'">
<LinkIncremental>true</LinkIncremental>
<IntDir>obj64\TestSuite\$(Configuration)\</IntDir>
<OutDir>bin64\static_mt\</OutDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='release_static_mt|Win32'">
<OutDir>bin\static_mt\</OutDir>
<IntDir>obj\TestSuite\$(Configuration)\</IntDir>
<LinkIncremental>false</LinkIncremental>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='release_static_mt|x64'">
<LinkIncremental>false</LinkIncremental>
<OutDir>bin64\static_mt\</OutDir>
<IntDir>obj64\TestSuite\$(Configuration)\</IntDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='debug_static_md|Win32'">
<OutDir>bin\static_md\</OutDir>
<IntDir>obj\TestSuite\$(Configuration)\</IntDir>
<LinkIncremental>true</LinkIncremental>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='debug_static_md|x64'">
<LinkIncremental>true</LinkIncremental>
<IntDir>obj64\TestSuite\$(Configuration)\</IntDir>
<OutDir>bin64\static_md\</OutDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='release_static_md|Win32'">
<OutDir>bin\static_md\</OutDir>
<IntDir>obj\TestSuite\$(Configuration)\</IntDir>
<LinkIncremental>false</LinkIncremental>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='release_static_md|x64'">
<LinkIncremental>false</LinkIncremental>
<IntDir>obj64\TestSuite\$(Configuration)\</IntDir>
<OutDir>bin64\static_md\</OutDir>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='debug_shared|Win32'">
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<MinimalRebuild>false</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
<BufferSecurityCheck>true</BufferSecurityCheck>
<TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
<ForceConformanceInForLoopScope>true</ForceConformanceInForLoopScope>
<RuntimeTypeInfo>true</RuntimeTypeInfo>
<PrecompiledHeader />
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<CompileAs>Default</CompileAs>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
</ClCompile>
<Link>
<AdditionalDependencies>iphlpapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
<OutputFile>bin\TestSuited.exe</OutputFile>
<AdditionalLibraryDirectories>..\..\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<SuppressStartupBanner>true</SuppressStartupBanner>
<GenerateDebugInformation>true</GenerateDebugInformation>
<ProgramDatabaseFile>bin\TestSuited.pdb</ProgramDatabaseFile>
<SubSystem>Console</SubSystem>
<TargetMachine>MachineX86</TargetMachine>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='debug_shared|x64'">
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
<BufferSecurityCheck>true</BufferSecurityCheck>
<TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
<ForceConformanceInForLoopScope>true</ForceConformanceInForLoopScope>
<RuntimeTypeInfo>true</RuntimeTypeInfo>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<CompileAs>Default</CompileAs>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
</ClCompile>
<Link>
<AdditionalDependencies>iphlpapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
<OutputFile>bin64\TestSuited.exe</OutputFile>
<AdditionalLibraryDirectories>..\..\lib64;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<SuppressStartupBanner>true</SuppressStartupBanner>
<GenerateDebugInformation>true</GenerateDebugInformation>
<ProgramDatabaseFile>bin64\TestSuited.pdb</ProgramDatabaseFile>
<SubSystem>Console</SubSystem>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='release_shared|Win32'">
<ClCompile>
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<IntrinsicFunctions>true</IntrinsicFunctions>
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
<OmitFramePointers>true</OmitFramePointers>
<AdditionalIncludeDirectories>..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<BufferSecurityCheck>false</BufferSecurityCheck>
<TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
<ForceConformanceInForLoopScope>true</ForceConformanceInForLoopScope>
<RuntimeTypeInfo>true</RuntimeTypeInfo>
<PrecompiledHeader />
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat />
<CompileAs>Default</CompileAs>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
</ClCompile>
<Link>
<AdditionalDependencies>iphlpapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
<OutputFile>bin\TestSuite.exe</OutputFile>
<AdditionalLibraryDirectories>..\..\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<GenerateDebugInformation>false</GenerateDebugInformation>
<SubSystem>Console</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<TargetMachine>MachineX86</TargetMachine>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='release_shared|x64'">
<ClCompile>
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<IntrinsicFunctions>true</IntrinsicFunctions>
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
<OmitFramePointers>true</OmitFramePointers>
<AdditionalIncludeDirectories>..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<BufferSecurityCheck>false</BufferSecurityCheck>
<TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
<ForceConformanceInForLoopScope>true</ForceConformanceInForLoopScope>
<RuntimeTypeInfo>true</RuntimeTypeInfo>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>
</DebugInformationFormat>
<CompileAs>Default</CompileAs>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
</ClCompile>
<Link>
<AdditionalDependencies>iphlpapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
<OutputFile>bin64\TestSuite.exe</OutputFile>
<AdditionalLibraryDirectories>..\..\lib64;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<GenerateDebugInformation>false</GenerateDebugInformation>
<SubSystem>Console</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='debug_static_mt|Win32'">
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<MinimalRebuild>false</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
<BufferSecurityCheck>true</BufferSecurityCheck>
<TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
<ForceConformanceInForLoopScope>true</ForceConformanceInForLoopScope>
<RuntimeTypeInfo>true</RuntimeTypeInfo>
<PrecompiledHeader />
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<CompileAs>Default</CompileAs>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
</ClCompile>
<Link>
<AdditionalDependencies>iphlpapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
<OutputFile>bin\static_mt\TestSuited.exe</OutputFile>
<AdditionalLibraryDirectories>..\..\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<SuppressStartupBanner>true</SuppressStartupBanner>
<GenerateDebugInformation>true</GenerateDebugInformation>
<ProgramDatabaseFile>bin\static_mt\TestSuited.pdb</ProgramDatabaseFile>
<SubSystem>Console</SubSystem>
<TargetMachine>MachineX86</TargetMachine>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='debug_static_mt|x64'">
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
<BufferSecurityCheck>true</BufferSecurityCheck>
<TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
<ForceConformanceInForLoopScope>true</ForceConformanceInForLoopScope>
<RuntimeTypeInfo>true</RuntimeTypeInfo>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<CompileAs>Default</CompileAs>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
</ClCompile>
<Link>
<AdditionalDependencies>iphlpapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
<OutputFile>bin64\static_mt\TestSuited.exe</OutputFile>
<AdditionalLibraryDirectories>..\..\lib64;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<SuppressStartupBanner>true</SuppressStartupBanner>
<GenerateDebugInformation>true</GenerateDebugInformation>
<ProgramDatabaseFile>bin64\static_mt\TestSuited.pdb</ProgramDatabaseFile>
<SubSystem>Console</SubSystem>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='release_static_mt|Win32'">
<ClCompile>
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<IntrinsicFunctions>true</IntrinsicFunctions>
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
<OmitFramePointers>true</OmitFramePointers>
<AdditionalIncludeDirectories>..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<BufferSecurityCheck>false</BufferSecurityCheck>
<TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
<ForceConformanceInForLoopScope>true</ForceConformanceInForLoopScope>
<RuntimeTypeInfo>true</RuntimeTypeInfo>
<PrecompiledHeader />
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat />
<CompileAs>Default</CompileAs>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
</ClCompile>
<Link>
<AdditionalDependencies>iphlpapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
<OutputFile>bin\static_mt\TestSuite.exe</OutputFile>
<AdditionalLibraryDirectories>..\..\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<GenerateDebugInformation>false</GenerateDebugInformation>
<SubSystem>Console</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<TargetMachine>MachineX86</TargetMachine>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='release_static_mt|x64'">
<ClCompile>
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<IntrinsicFunctions>true</IntrinsicFunctions>
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
<OmitFramePointers>true</OmitFramePointers>
<AdditionalIncludeDirectories>..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<BufferSecurityCheck>false</BufferSecurityCheck>
<TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
<ForceConformanceInForLoopScope>true</ForceConformanceInForLoopScope>
<RuntimeTypeInfo>true</RuntimeTypeInfo>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>
</DebugInformationFormat>
<CompileAs>Default</CompileAs>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
</ClCompile>
<Link>
<AdditionalDependencies>iphlpapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
<OutputFile>bin64\static_mt\TestSuite.exe</OutputFile>
<AdditionalLibraryDirectories>..\..\lib64;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<GenerateDebugInformation>false</GenerateDebugInformation>
<SubSystem>Console</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='debug_static_md|Win32'">
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<MinimalRebuild>false</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
<BufferSecurityCheck>true</BufferSecurityCheck>
<TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
<ForceConformanceInForLoopScope>true</ForceConformanceInForLoopScope>
<RuntimeTypeInfo>true</RuntimeTypeInfo>
<PrecompiledHeader />
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<CompileAs>Default</CompileAs>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
</ClCompile>
<Link>
<AdditionalDependencies>iphlpapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
<OutputFile>bin\static_md\TestSuited.exe</OutputFile>
<AdditionalLibraryDirectories>..\..\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<SuppressStartupBanner>true</SuppressStartupBanner>
<GenerateDebugInformation>true</GenerateDebugInformation>
<ProgramDatabaseFile>bin\static_md\TestSuited.pdb</ProgramDatabaseFile>
<SubSystem>Console</SubSystem>
<TargetMachine>MachineX86</TargetMachine>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='debug_static_md|x64'">
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
<BufferSecurityCheck>true</BufferSecurityCheck>
<TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
<ForceConformanceInForLoopScope>true</ForceConformanceInForLoopScope>
<RuntimeTypeInfo>true</RuntimeTypeInfo>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<CompileAs>Default</CompileAs>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
</ClCompile>
<Link>
<AdditionalDependencies>iphlpapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
<OutputFile>bin64\static_md\TestSuited.exe</OutputFile>
<AdditionalLibraryDirectories>..\..\lib64;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<SuppressStartupBanner>true</SuppressStartupBanner>
<GenerateDebugInformation>true</GenerateDebugInformation>
<ProgramDatabaseFile>bin64\static_md\TestSuited.pdb</ProgramDatabaseFile>
<SubSystem>Console</SubSystem>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='release_static_md|Win32'">
<ClCompile>
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<IntrinsicFunctions>true</IntrinsicFunctions>
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
<OmitFramePointers>true</OmitFramePointers>
<AdditionalIncludeDirectories>..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<BufferSecurityCheck>false</BufferSecurityCheck>
<TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
<ForceConformanceInForLoopScope>true</ForceConformanceInForLoopScope>
<RuntimeTypeInfo>true</RuntimeTypeInfo>
<PrecompiledHeader />
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat />
<CompileAs>Default</CompileAs>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
</ClCompile>
<Link>
<AdditionalDependencies>iphlpapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
<OutputFile>bin\static_md\TestSuite.exe</OutputFile>
<AdditionalLibraryDirectories>..\..\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<GenerateDebugInformation>false</GenerateDebugInformation>
<SubSystem>Console</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<TargetMachine>MachineX86</TargetMachine>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='release_static_md|x64'">
<ClCompile>
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<IntrinsicFunctions>true</IntrinsicFunctions>
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
<OmitFramePointers>true</OmitFramePointers>
<AdditionalIncludeDirectories>..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<BufferSecurityCheck>false</BufferSecurityCheck>
<TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
<ForceConformanceInForLoopScope>true</ForceConformanceInForLoopScope>
<RuntimeTypeInfo>true</RuntimeTypeInfo>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>
</DebugInformationFormat>
<CompileAs>Default</CompileAs>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
</ClCompile>
<Link>
<AdditionalDependencies>iphlpapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
<OutputFile>bin64\static_md\TestSuite.exe</OutputFile>
<AdditionalLibraryDirectories>..\..\lib64;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<GenerateDebugInformation>false</GenerateDebugInformation>
<SubSystem>Console</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
</Link>
</ItemDefinitionGroup>
<ItemGroup>
<ClCompile Include="src\ActiveDispatcherTest.cpp" />
<ClCompile Include="src\ActiveMethodTest.cpp" />
<ClCompile Include="src\ActivityTest.cpp" />
<ClCompile Include="src\AnyTest.cpp" />
<ClCompile Include="src\ArrayTest.cpp" />
<ClCompile Include="src\AutoPtrTest.cpp" />
<ClCompile Include="src\AutoReleasePoolTest.cpp" />
<ClCompile Include="src\Base32Test.cpp" />
<ClCompile Include="src\Base64Test.cpp" />
<ClCompile Include="src\BasicEventTest.cpp" />
<ClCompile Include="src\BinaryReaderWriterTest.cpp" />
<ClCompile Include="src\ByteOrderTest.cpp" />
<ClCompile Include="src\CacheTestSuite.cpp" />
<ClCompile Include="src\ChannelTest.cpp" />
<ClCompile Include="src\ClassLoaderTest.cpp" />
<ClCompile Include="src\ClockTest.cpp" />
<ClCompile Include="src\ConditionTest.cpp" />
<ClCompile Include="src\CoreTest.cpp" />
<ClCompile Include="src\CoreTestSuite.cpp" />
<ClCompile Include="src\CountingStreamTest.cpp" />
<ClCompile Include="src\CryptTestSuite.cpp" />
<ClCompile Include="src\DataURIStreamTest.cpp" />
<ClCompile Include="src\DateTimeFormatterTest.cpp" />
<ClCompile Include="src\DateTimeParserTest.cpp" />
<ClCompile Include="src\DateTimeTest.cpp" />
<ClCompile Include="src\DateTimeTestSuite.cpp" />
<ClCompile Include="src\DigestStreamTest.cpp" />
<ClCompile Include="src\DirectoryIteratorsTest.cpp" />
<ClCompile Include="src\DirectoryWatcherTest.cpp" />
<ClCompile Include="src\Driver.cpp" />
<ClCompile Include="src\DummyDelegate.cpp" />
<ClCompile Include="src\DynamicFactoryTest.cpp" />
<ClCompile Include="src\EventTestSuite.cpp" />
<ClCompile Include="src\ExpireCacheTest.cpp" />
<ClCompile Include="src\ExpireLRUCacheTest.cpp" />
<ClCompile Include="src\FIFOBufferStreamTest.cpp" />
<ClCompile Include="src\FIFOEventTest.cpp" />
<ClCompile Include="src\FileChannelTest.cpp" />
<ClCompile Include="src\FileStreamTest.cpp" />
<ClCompile Include="src\FilesystemTestSuite.cpp" />
<ClCompile Include="src\FileTest.cpp" />
<ClCompile Include="src\FormatTest.cpp" />
<ClCompile Include="src\FoundationTestSuite.cpp" />
<ClCompile Include="src\FPETest.cpp" />
<ClCompile Include="src\GlobTest.cpp" />
<ClCompile Include="src\HashingTestSuite.cpp" />
<ClCompile Include="src\HashMapTest.cpp" />
<ClCompile Include="src\HashSetTest.cpp" />
<ClCompile Include="src\HashTableTest.cpp" />
<ClCompile Include="src\HexBinaryTest.cpp" />
<ClCompile Include="src\HMACEngineTest.cpp" />
<ClCompile Include="src\LinearHashTableTest.cpp" />
<ClCompile Include="src\LineEndingConverterTest.cpp" />
<ClCompile Include="src\ListMapTest.cpp" />
<ClCompile Include="src\LocalDateTimeTest.cpp" />
<ClCompile Include="src\LoggerTest.cpp" />
<ClCompile Include="src\LoggingFactoryTest.cpp" />
<ClCompile Include="src\LoggingRegistryTest.cpp" />
<ClCompile Include="src\LoggingTestSuite.cpp" />
<ClCompile Include="src\LogStreamTest.cpp" />
<ClCompile Include="src\LRUCacheTest.cpp" />
<ClCompile Include="src\ManifestTest.cpp" />
<ClCompile Include="src\MD4EngineTest.cpp" />
<ClCompile Include="src\MD5EngineTest.cpp" />
<ClCompile Include="src\MemoryPoolTest.cpp" />
<ClCompile Include="src\MemoryStreamTest.cpp" />
<ClCompile Include="src\NamedEventTest.cpp" />
<ClCompile Include="src\NamedMutexTest.cpp" />
<ClCompile Include="src\NamedTuplesTest.cpp" />
<ClCompile Include="src\NDCTest.cpp" />
<ClCompile Include="src\NotificationCenterTest.cpp" />
<ClCompile Include="src\NotificationQueueTest.cpp" />
<ClCompile Include="src\NotificationsTestSuite.cpp" />
<ClCompile Include="src\NullStreamTest.cpp" />
<ClCompile Include="src\NumberFormatterTest.cpp" />
<ClCompile Include="src\NumberParserTest.cpp" />
<ClCompile Include="src\ObjectPoolTest.cpp" />
<ClCompile Include="src\OrderedContainersTest.cpp" />
<ClCompile Include="src\PathTest.cpp" />
<ClCompile Include="src\PatternFormatterTest.cpp" />
<ClCompile Include="src\PBKDF2EngineTest.cpp" />
<ClCompile Include="src\PriorityEventTest.cpp" />
<ClCompile Include="src\PriorityNotificationQueueTest.cpp" />
<ClCompile Include="src\ProcessesTestSuite.cpp" />
<ClCompile Include="src\ProcessTest.cpp" />
<ClCompile Include="src\RandomStreamTest.cpp" />
<ClCompile Include="src\RandomTest.cpp" />
<ClCompile Include="src\RegularExpressionTest.cpp" />
<ClCompile Include="src\RWLockTest.cpp" />
<ClCompile Include="src\SemaphoreTest.cpp" />
<ClCompile Include="src\SHA1EngineTest.cpp" />
<ClCompile Include="src\SHA2EngineTest.cpp" />
<ClCompile Include="src\SharedLibraryTest.cpp" />
<ClCompile Include="src\SharedLibraryTestSuite.cpp" />
<ClCompile Include="src\SharedMemoryTest.cpp" />
<ClCompile Include="src\SharedPtrTest.cpp" />
<ClCompile Include="src\SimpleFileChannelTest.cpp" />
<ClCompile Include="src\SimpleHashTableTest.cpp" />
<ClCompile Include="src\StopwatchTest.cpp" />
<ClCompile Include="src\StreamConverterTest.cpp" />
<ClCompile Include="src\StreamCopierTest.cpp" />
<ClCompile Include="src\StreamsTestSuite.cpp" />
<ClCompile Include="src\StreamTokenizerTest.cpp" />
<ClCompile Include="src\StringTest.cpp" />
<ClCompile Include="src\StringTokenizerTest.cpp" />
<ClCompile Include="src\TaskManagerTest.cpp" />
<ClCompile Include="src\TaskTest.cpp" />
<ClCompile Include="src\TaskTestSuite.cpp" />
<ClCompile Include="src\TeeStreamTest.cpp" />
<ClCompile Include="src\TestChannel.cpp" />
<ClCompile Include="src\TestPlugin.cpp" />
<ClCompile Include="src\TextBufferIteratorTest.cpp" />
<ClCompile Include="src\TextConverterTest.cpp" />
<ClCompile Include="src\TextEncodingTest.cpp" />
<ClCompile Include="src\TextIteratorTest.cpp" />
<ClCompile Include="src\TextTestSuite.cpp" />
<ClCompile Include="src\ThreadingTestSuite.cpp" />
<ClCompile Include="src\ThreadLocalTest.cpp" />
<ClCompile Include="src\ThreadPoolTest.cpp" />
<ClCompile Include="src\ThreadTest.cpp" />
<ClCompile Include="src\TimedNotificationQueueTest.cpp" />
<ClCompile Include="src\TimerTest.cpp" />
<ClCompile Include="src\TimespanTest.cpp" />
<ClCompile Include="src\TimestampTest.cpp" />
<ClCompile Include="src\TimezoneTest.cpp" />
<ClCompile Include="src\TuplesTest.cpp" />
<ClCompile Include="src\TypeListTest.cpp" />
<ClCompile Include="src\UnicodeConverterTest.cpp" />
<ClCompile Include="src\UniqueExpireCacheTest.cpp" />
<ClCompile Include="src\UniqueExpireLRUCacheTest.cpp" />
<ClCompile Include="src\URIStreamOpenerTest.cpp" />
<ClCompile Include="src\URITest.cpp" />
<ClCompile Include="src\URITestSuite.cpp" />
<ClCompile Include="src\UTF8StringTest.cpp" />
<ClCompile Include="src\UUIDGeneratorTest.cpp" />
<ClCompile Include="src\UUIDTest.cpp" />
<ClCompile Include="src\UUIDTestSuite.cpp" />
<ClCompile Include="src\VarTest.cpp" />
<ClCompile Include="src\ZLibTest.cpp" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="src\ActiveDispatcherTest.h" />
<ClInclude Include="src\ActiveMethodTest.h" />
<ClInclude Include="src\ActivityTest.h" />
<ClInclude Include="src\AnyTest.h" />
<ClInclude Include="src\ArrayTest.h" />
<ClInclude Include="src\AutoPtrTest.h" />
<ClInclude Include="src\AutoReleasePoolTest.h" />
<ClInclude Include="src\Base32Test.h" />
<ClInclude Include="src\Base64Test.h" />
<ClInclude Include="src\BasicEventTest.h" />
<ClInclude Include="src\BinaryReaderWriterTest.h" />
<ClInclude Include="src\ByteOrderTest.h" />
<ClInclude Include="src\CacheTestSuite.h" />
<ClInclude Include="src\ChannelTest.h" />
<ClInclude Include="src\ClassLoaderTest.h" />
<ClInclude Include="src\ClockTest.h" />
<ClInclude Include="src\ConditionTest.h" />
<ClInclude Include="src\CoreTest.h" />
<ClInclude Include="src\CoreTestSuite.h" />
<ClInclude Include="src\CountingStreamTest.h" />
<ClInclude Include="src\CryptTestSuite.h" />
<ClInclude Include="src\DataURIStreamTest.h" />
<ClInclude Include="src\DateTimeFormatterTest.h" />
<ClInclude Include="src\DateTimeParserTest.h" />
<ClInclude Include="src\DateTimeTest.h" />
<ClInclude Include="src\DateTimeTestSuite.h" />
<ClInclude Include="src\DigestStreamTest.h" />
<ClInclude Include="src\DirectoryIteratorsTest.h" />
<ClInclude Include="src\DirectoryWatcherTest.h" />
<ClInclude Include="src\DummyDelegate.h" />
<ClInclude Include="src\DynamicAnyTest.h" />
<ClInclude Include="src\DynamicFactoryTest.h" />
<ClInclude Include="src\EventTestSuite.h" />
<ClInclude Include="src\ExpireCacheTest.h" />
<ClInclude Include="src\ExpireLRUCacheTest.h" />
<ClInclude Include="src\FIFOBufferStreamTest.h" />
<ClInclude Include="src\FIFOEventTest.h" />
<ClInclude Include="src\FileChannelTest.h" />
<ClInclude Include="src\FileStreamTest.h" />
<ClInclude Include="src\FilesystemTestSuite.h" />
<ClInclude Include="src\FileTest.h" />
<ClInclude Include="src\FormatTest.h" />
<ClInclude Include="src\FoundationTestSuite.h" />
<ClInclude Include="src\FPETest.h" />
<ClInclude Include="src\GlobTest.h" />
<ClInclude Include="src\HashingTestSuite.h" />
<ClInclude Include="src\HashMapTest.h" />
<ClInclude Include="src\HashSetTest.h" />
<ClInclude Include="src\HashTableTest.h" />
<ClInclude Include="src\HexBinaryTest.h" />
<ClInclude Include="src\HMACEngineTest.h" />
<ClInclude Include="src\LinearHashTableTest.h" />
<ClInclude Include="src\LineEndingConverterTest.h" />
<ClInclude Include="src\ListMapTest.h" />
<ClInclude Include="src\LocalDateTimeTest.h" />
<ClInclude Include="src\LoggerTest.h" />
<ClInclude Include="src\LoggingFactoryTest.h" />
<ClInclude Include="src\LoggingRegistryTest.h" />
<ClInclude Include="src\LoggingTestSuite.h" />
<ClInclude Include="src\LogStreamTest.h" />
<ClInclude Include="src\LRUCacheTest.h" />
<ClInclude Include="src\ManifestTest.h" />
<ClInclude Include="src\MD4EngineTest.h" />
<ClInclude Include="src\MD5EngineTest.h" />
<ClInclude Include="src\MemoryPoolTest.h" />
<ClInclude Include="src\MemoryStreamTest.h" />
<ClInclude Include="src\NamedEventTest.h" />
<ClInclude Include="src\NamedMutexTest.h" />
<ClInclude Include="src\NamedTuplesTest.h" />
<ClInclude Include="src\NDCTest.h" />
<ClInclude Include="src\NotificationCenterTest.h" />
<ClInclude Include="src\NotificationQueueTest.h" />
<ClInclude Include="src\NotificationsTestSuite.h" />
<ClInclude Include="src\NullStreamTest.h" />
<ClInclude Include="src\NumberFormatterTest.h" />
<ClInclude Include="src\NumberParserTest.h" />
<ClInclude Include="src\ObjectPoolTest.h" />
<ClInclude Include="src\OrderedContainersTest.h" />
<ClInclude Include="src\PathTest.h" />
<ClInclude Include="src\PatternFormatterTest.h" />
<ClInclude Include="src\PBKDF2EngineTest.h" />
<ClInclude Include="src\PriorityEventTest.h" />
<ClInclude Include="src\PriorityNotificationQueueTest.h" />
<ClInclude Include="src\ProcessesTestSuite.h" />
<ClInclude Include="src\ProcessTest.h" />
<ClInclude Include="src\RandomStreamTest.h" />
<ClInclude Include="src\RandomTest.h" />
<ClInclude Include="src\RegularExpressionTest.h" />
<ClInclude Include="src\RWLockTest.h" />
<ClInclude Include="src\SemaphoreTest.h" />
<ClInclude Include="src\SHA1EngineTest.h" />
<ClInclude Include="src\SHA2EngineTest.h" />
<ClInclude Include="src\SharedLibraryTest.h" />
<ClInclude Include="src\SharedLibraryTestSuite.h" />
<ClInclude Include="src\SharedMemoryTest.h" />
<ClInclude Include="src\SharedPtrTest.h" />
<ClInclude Include="src\SimpleFileChannelTest.h" />
<ClInclude Include="src\SimpleHashTableTest.h" />
<ClInclude Include="src\StopwatchTest.h" />
<ClInclude Include="src\StreamConverterTest.h" />
<ClInclude Include="src\StreamCopierTest.h" />
<ClInclude Include="src\StreamsTestSuite.h" />
<ClInclude Include="src\StreamTokenizerTest.h" />
<ClInclude Include="src\StringTest.h" />
<ClInclude Include="src\StringTokenizerTest.h" />
<ClInclude Include="src\TaskManagerTest.h" />
<ClInclude Include="src\TaskTest.h" />
<ClInclude Include="src\TaskTestSuite.h" />
<ClInclude Include="src\TeeStreamTest.h" />
<ClInclude Include="src\TestChannel.h" />
<ClInclude Include="src\TestPlugin.h" />
<ClInclude Include="src\TextBufferIteratorTest.h" />
<ClInclude Include="src\TextConverterTest.h" />
<ClInclude Include="src\TextEncodingTest.h" />
<ClInclude Include="src\TextIteratorTest.h" />
<ClInclude Include="src\TextTestSuite.h" />
<ClInclude Include="src\ThreadingTestSuite.h" />
<ClInclude Include="src\ThreadLocalTest.h" />
<ClInclude Include="src\ThreadPoolTest.h" />
<ClInclude Include="src\ThreadTest.h" />
<ClInclude Include="src\TimedNotificationQueueTest.h" />
<ClInclude Include="src\TimerTest.h" />
<ClInclude Include="src\TimespanTest.h" />
<ClInclude Include="src\TimestampTest.h" />
<ClInclude Include="src\TimezoneTest.h" />
<ClInclude Include="src\TuplesTest.h" />
<ClInclude Include="src\TypeListTest.h" />
<ClInclude Include="src\UnicodeConverterTest.h" />
<ClInclude Include="src\UniqueExpireCacheTest.h" />
<ClInclude Include="src\UniqueExpireLRUCacheTest.h" />
<ClInclude Include="src\URIStreamOpenerTest.h" />
<ClInclude Include="src\URITest.h" />
<ClInclude Include="src\URITestSuite.h" />
<ClInclude Include="src\UTF8StringTest.h" />
<ClInclude Include="src\UUIDGeneratorTest.h" />
<ClInclude Include="src\UUIDTest.h" />
<ClInclude Include="src\UUIDTestSuite.h" />
<ClInclude Include="src\VarTest.h" />
<ClInclude Include="src\ZLibTest.h" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets" />
</Project>

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,891 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="debug_shared|Win32">
<Configuration>debug_shared</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="debug_shared|x64">
<Configuration>debug_shared</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="debug_static_md|Win32">
<Configuration>debug_static_md</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="debug_static_md|x64">
<Configuration>debug_static_md</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="debug_static_mt|Win32">
<Configuration>debug_static_mt</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="debug_static_mt|x64">
<Configuration>debug_static_mt</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="release_shared|Win32">
<Configuration>release_shared</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="release_shared|x64">
<Configuration>release_shared</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="release_static_md|Win32">
<Configuration>release_static_md</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="release_static_md|x64">
<Configuration>release_static_md</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="release_static_mt|Win32">
<Configuration>release_static_mt</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="release_static_mt|x64">
<Configuration>release_static_mt</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectName>TestSuite</ProjectName>
<ProjectGuid>{F1EE93DF-347F-4CB3-B191-C4E63F38E972}</ProjectGuid>
<RootNamespace>TestSuite</RootNamespace>
<Keyword>Win32Proj</Keyword>
<WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='release_static_md|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
<PlatformToolset>v141</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='release_static_md|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
<PlatformToolset>v141</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='debug_static_md|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
<PlatformToolset>v141</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='debug_static_md|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
<PlatformToolset>v141</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='release_static_mt|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
<PlatformToolset>v141</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='release_static_mt|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
<PlatformToolset>v141</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='debug_static_mt|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
<PlatformToolset>v141</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='debug_static_mt|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
<PlatformToolset>v141</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='release_shared|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
<PlatformToolset>v141</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='release_shared|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
<PlatformToolset>v141</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='debug_shared|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
<PlatformToolset>v141</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='debug_shared|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
<PlatformToolset>v141</PlatformToolset>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings" />
<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" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='release_static_md|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<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" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='debug_static_md|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<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" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='release_static_mt|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<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" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='debug_static_mt|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<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" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='release_shared|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<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" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='debug_shared|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup>
<_ProjectFileVersion>14.0.25431.1</_ProjectFileVersion>
<TargetName Condition="'$(Configuration)|$(Platform)'=='debug_shared|Win32'">TestSuited</TargetName>
<TargetName Condition="'$(Configuration)|$(Platform)'=='debug_shared|x64'">TestSuited</TargetName>
<TargetName Condition="'$(Configuration)|$(Platform)'=='debug_static_md|Win32'">TestSuited</TargetName>
<TargetName Condition="'$(Configuration)|$(Platform)'=='debug_static_md|x64'">TestSuited</TargetName>
<TargetName Condition="'$(Configuration)|$(Platform)'=='debug_static_mt|Win32'">TestSuited</TargetName>
<TargetName Condition="'$(Configuration)|$(Platform)'=='debug_static_mt|x64'">TestSuited</TargetName>
<TargetName Condition="'$(Configuration)|$(Platform)'=='release_shared|Win32'">TestSuite</TargetName>
<TargetName Condition="'$(Configuration)|$(Platform)'=='release_shared|x64'">TestSuite</TargetName>
<TargetName Condition="'$(Configuration)|$(Platform)'=='release_static_md|Win32'">TestSuite</TargetName>
<TargetName Condition="'$(Configuration)|$(Platform)'=='release_static_md|x64'">TestSuite</TargetName>
<TargetName Condition="'$(Configuration)|$(Platform)'=='release_static_mt|Win32'">TestSuite</TargetName>
<TargetName Condition="'$(Configuration)|$(Platform)'=='release_static_mt|x64'">TestSuite</TargetName>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='debug_shared|Win32'">
<OutDir>bin\</OutDir>
<IntDir>obj\TestSuite\$(Configuration)\</IntDir>
<LinkIncremental>true</LinkIncremental>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='debug_shared|x64'">
<LinkIncremental>true</LinkIncremental>
<IntDir>obj64\TestSuite\$(Configuration)\</IntDir>
<OutDir>bin64\</OutDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='release_shared|Win32'">
<OutDir>bin\</OutDir>
<IntDir>obj\TestSuite\$(Configuration)\</IntDir>
<LinkIncremental>false</LinkIncremental>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='release_shared|x64'">
<LinkIncremental>false</LinkIncremental>
<IntDir>obj64\TestSuite\$(Configuration)\</IntDir>
<OutDir>bin64\</OutDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='debug_static_mt|Win32'">
<OutDir>bin\static_mt\</OutDir>
<IntDir>obj\TestSuite\$(Configuration)\</IntDir>
<LinkIncremental>true</LinkIncremental>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='debug_static_mt|x64'">
<LinkIncremental>true</LinkIncremental>
<IntDir>obj64\TestSuite\$(Configuration)\</IntDir>
<OutDir>bin64\static_mt\</OutDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='release_static_mt|Win32'">
<OutDir>bin\static_mt\</OutDir>
<IntDir>obj\TestSuite\$(Configuration)\</IntDir>
<LinkIncremental>false</LinkIncremental>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='release_static_mt|x64'">
<LinkIncremental>false</LinkIncremental>
<OutDir>bin64\static_mt\</OutDir>
<IntDir>obj64\TestSuite\$(Configuration)\</IntDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='debug_static_md|Win32'">
<OutDir>bin\static_md\</OutDir>
<IntDir>obj\TestSuite\$(Configuration)\</IntDir>
<LinkIncremental>true</LinkIncremental>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='debug_static_md|x64'">
<LinkIncremental>true</LinkIncremental>
<IntDir>obj64\TestSuite\$(Configuration)\</IntDir>
<OutDir>bin64\static_md\</OutDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='release_static_md|Win32'">
<OutDir>bin\static_md\</OutDir>
<IntDir>obj\TestSuite\$(Configuration)\</IntDir>
<LinkIncremental>false</LinkIncremental>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='release_static_md|x64'">
<LinkIncremental>false</LinkIncremental>
<IntDir>obj64\TestSuite\$(Configuration)\</IntDir>
<OutDir>bin64\static_md\</OutDir>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='debug_shared|Win32'">
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<MinimalRebuild>false</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
<BufferSecurityCheck>true</BufferSecurityCheck>
<TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
<ForceConformanceInForLoopScope>true</ForceConformanceInForLoopScope>
<RuntimeTypeInfo>true</RuntimeTypeInfo>
<PrecompiledHeader />
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<CompileAs>Default</CompileAs>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
</ClCompile>
<Link>
<AdditionalDependencies>iphlpapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
<OutputFile>bin\TestSuited.exe</OutputFile>
<AdditionalLibraryDirectories>..\..\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<SuppressStartupBanner>true</SuppressStartupBanner>
<GenerateDebugInformation>true</GenerateDebugInformation>
<ProgramDatabaseFile>bin\TestSuited.pdb</ProgramDatabaseFile>
<SubSystem>Console</SubSystem>
<TargetMachine>MachineX86</TargetMachine>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='debug_shared|x64'">
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
<BufferSecurityCheck>true</BufferSecurityCheck>
<TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
<ForceConformanceInForLoopScope>true</ForceConformanceInForLoopScope>
<RuntimeTypeInfo>true</RuntimeTypeInfo>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<CompileAs>Default</CompileAs>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
</ClCompile>
<Link>
<AdditionalDependencies>iphlpapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
<OutputFile>bin64\TestSuited.exe</OutputFile>
<AdditionalLibraryDirectories>..\..\lib64;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<SuppressStartupBanner>true</SuppressStartupBanner>
<GenerateDebugInformation>true</GenerateDebugInformation>
<ProgramDatabaseFile>bin64\TestSuited.pdb</ProgramDatabaseFile>
<SubSystem>Console</SubSystem>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='release_shared|Win32'">
<ClCompile>
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<IntrinsicFunctions>true</IntrinsicFunctions>
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
<OmitFramePointers>true</OmitFramePointers>
<AdditionalIncludeDirectories>..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<BufferSecurityCheck>false</BufferSecurityCheck>
<TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
<ForceConformanceInForLoopScope>true</ForceConformanceInForLoopScope>
<RuntimeTypeInfo>true</RuntimeTypeInfo>
<PrecompiledHeader />
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat />
<CompileAs>Default</CompileAs>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
</ClCompile>
<Link>
<AdditionalDependencies>iphlpapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
<OutputFile>bin\TestSuite.exe</OutputFile>
<AdditionalLibraryDirectories>..\..\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<GenerateDebugInformation>false</GenerateDebugInformation>
<SubSystem>Console</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<TargetMachine>MachineX86</TargetMachine>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='release_shared|x64'">
<ClCompile>
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<IntrinsicFunctions>true</IntrinsicFunctions>
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
<OmitFramePointers>true</OmitFramePointers>
<AdditionalIncludeDirectories>..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<BufferSecurityCheck>false</BufferSecurityCheck>
<TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
<ForceConformanceInForLoopScope>true</ForceConformanceInForLoopScope>
<RuntimeTypeInfo>true</RuntimeTypeInfo>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>
</DebugInformationFormat>
<CompileAs>Default</CompileAs>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
</ClCompile>
<Link>
<AdditionalDependencies>iphlpapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
<OutputFile>bin64\TestSuite.exe</OutputFile>
<AdditionalLibraryDirectories>..\..\lib64;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<GenerateDebugInformation>false</GenerateDebugInformation>
<SubSystem>Console</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='debug_static_mt|Win32'">
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<MinimalRebuild>false</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
<BufferSecurityCheck>true</BufferSecurityCheck>
<TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
<ForceConformanceInForLoopScope>true</ForceConformanceInForLoopScope>
<RuntimeTypeInfo>true</RuntimeTypeInfo>
<PrecompiledHeader />
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<CompileAs>Default</CompileAs>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
</ClCompile>
<Link>
<AdditionalDependencies>iphlpapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
<OutputFile>bin\static_mt\TestSuited.exe</OutputFile>
<AdditionalLibraryDirectories>..\..\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<SuppressStartupBanner>true</SuppressStartupBanner>
<GenerateDebugInformation>true</GenerateDebugInformation>
<ProgramDatabaseFile>bin\static_mt\TestSuited.pdb</ProgramDatabaseFile>
<SubSystem>Console</SubSystem>
<TargetMachine>MachineX86</TargetMachine>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='debug_static_mt|x64'">
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
<BufferSecurityCheck>true</BufferSecurityCheck>
<TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
<ForceConformanceInForLoopScope>true</ForceConformanceInForLoopScope>
<RuntimeTypeInfo>true</RuntimeTypeInfo>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<CompileAs>Default</CompileAs>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
</ClCompile>
<Link>
<AdditionalDependencies>iphlpapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
<OutputFile>bin64\static_mt\TestSuited.exe</OutputFile>
<AdditionalLibraryDirectories>..\..\lib64;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<SuppressStartupBanner>true</SuppressStartupBanner>
<GenerateDebugInformation>true</GenerateDebugInformation>
<ProgramDatabaseFile>bin64\static_mt\TestSuited.pdb</ProgramDatabaseFile>
<SubSystem>Console</SubSystem>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='release_static_mt|Win32'">
<ClCompile>
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<IntrinsicFunctions>true</IntrinsicFunctions>
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
<OmitFramePointers>true</OmitFramePointers>
<AdditionalIncludeDirectories>..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<BufferSecurityCheck>false</BufferSecurityCheck>
<TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
<ForceConformanceInForLoopScope>true</ForceConformanceInForLoopScope>
<RuntimeTypeInfo>true</RuntimeTypeInfo>
<PrecompiledHeader />
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat />
<CompileAs>Default</CompileAs>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
</ClCompile>
<Link>
<AdditionalDependencies>iphlpapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
<OutputFile>bin\static_mt\TestSuite.exe</OutputFile>
<AdditionalLibraryDirectories>..\..\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<GenerateDebugInformation>false</GenerateDebugInformation>
<SubSystem>Console</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<TargetMachine>MachineX86</TargetMachine>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='release_static_mt|x64'">
<ClCompile>
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<IntrinsicFunctions>true</IntrinsicFunctions>
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
<OmitFramePointers>true</OmitFramePointers>
<AdditionalIncludeDirectories>..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<BufferSecurityCheck>false</BufferSecurityCheck>
<TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
<ForceConformanceInForLoopScope>true</ForceConformanceInForLoopScope>
<RuntimeTypeInfo>true</RuntimeTypeInfo>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>
</DebugInformationFormat>
<CompileAs>Default</CompileAs>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
</ClCompile>
<Link>
<AdditionalDependencies>iphlpapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
<OutputFile>bin64\static_mt\TestSuite.exe</OutputFile>
<AdditionalLibraryDirectories>..\..\lib64;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<GenerateDebugInformation>false</GenerateDebugInformation>
<SubSystem>Console</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='debug_static_md|Win32'">
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<MinimalRebuild>false</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
<BufferSecurityCheck>true</BufferSecurityCheck>
<TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
<ForceConformanceInForLoopScope>true</ForceConformanceInForLoopScope>
<RuntimeTypeInfo>true</RuntimeTypeInfo>
<PrecompiledHeader />
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<CompileAs>Default</CompileAs>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
</ClCompile>
<Link>
<AdditionalDependencies>iphlpapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
<OutputFile>bin\static_md\TestSuited.exe</OutputFile>
<AdditionalLibraryDirectories>..\..\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<SuppressStartupBanner>true</SuppressStartupBanner>
<GenerateDebugInformation>true</GenerateDebugInformation>
<ProgramDatabaseFile>bin\static_md\TestSuited.pdb</ProgramDatabaseFile>
<SubSystem>Console</SubSystem>
<TargetMachine>MachineX86</TargetMachine>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='debug_static_md|x64'">
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
<BufferSecurityCheck>true</BufferSecurityCheck>
<TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
<ForceConformanceInForLoopScope>true</ForceConformanceInForLoopScope>
<RuntimeTypeInfo>true</RuntimeTypeInfo>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<CompileAs>Default</CompileAs>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
</ClCompile>
<Link>
<AdditionalDependencies>iphlpapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
<OutputFile>bin64\static_md\TestSuited.exe</OutputFile>
<AdditionalLibraryDirectories>..\..\lib64;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<SuppressStartupBanner>true</SuppressStartupBanner>
<GenerateDebugInformation>true</GenerateDebugInformation>
<ProgramDatabaseFile>bin64\static_md\TestSuited.pdb</ProgramDatabaseFile>
<SubSystem>Console</SubSystem>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='release_static_md|Win32'">
<ClCompile>
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<IntrinsicFunctions>true</IntrinsicFunctions>
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
<OmitFramePointers>true</OmitFramePointers>
<AdditionalIncludeDirectories>..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<BufferSecurityCheck>false</BufferSecurityCheck>
<TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
<ForceConformanceInForLoopScope>true</ForceConformanceInForLoopScope>
<RuntimeTypeInfo>true</RuntimeTypeInfo>
<PrecompiledHeader />
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat />
<CompileAs>Default</CompileAs>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
</ClCompile>
<Link>
<AdditionalDependencies>iphlpapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
<OutputFile>bin\static_md\TestSuite.exe</OutputFile>
<AdditionalLibraryDirectories>..\..\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<GenerateDebugInformation>false</GenerateDebugInformation>
<SubSystem>Console</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<TargetMachine>MachineX86</TargetMachine>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='release_static_md|x64'">
<ClCompile>
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<IntrinsicFunctions>true</IntrinsicFunctions>
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
<OmitFramePointers>true</OmitFramePointers>
<AdditionalIncludeDirectories>..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<BufferSecurityCheck>false</BufferSecurityCheck>
<TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
<ForceConformanceInForLoopScope>true</ForceConformanceInForLoopScope>
<RuntimeTypeInfo>true</RuntimeTypeInfo>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>
</DebugInformationFormat>
<CompileAs>Default</CompileAs>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
</ClCompile>
<Link>
<AdditionalDependencies>iphlpapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
<OutputFile>bin64\static_md\TestSuite.exe</OutputFile>
<AdditionalLibraryDirectories>..\..\lib64;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<GenerateDebugInformation>false</GenerateDebugInformation>
<SubSystem>Console</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
</Link>
</ItemDefinitionGroup>
<ItemGroup>
<ClCompile Include="src\ActiveDispatcherTest.cpp" />
<ClCompile Include="src\ActiveMethodTest.cpp" />
<ClCompile Include="src\ActivityTest.cpp" />
<ClCompile Include="src\AnyTest.cpp" />
<ClCompile Include="src\ArrayTest.cpp" />
<ClCompile Include="src\AutoPtrTest.cpp" />
<ClCompile Include="src\AutoReleasePoolTest.cpp" />
<ClCompile Include="src\Base32Test.cpp" />
<ClCompile Include="src\Base64Test.cpp" />
<ClCompile Include="src\BasicEventTest.cpp" />
<ClCompile Include="src\BinaryReaderWriterTest.cpp" />
<ClCompile Include="src\ByteOrderTest.cpp" />
<ClCompile Include="src\CacheTestSuite.cpp" />
<ClCompile Include="src\ChannelTest.cpp" />
<ClCompile Include="src\ClassLoaderTest.cpp" />
<ClCompile Include="src\ClockTest.cpp" />
<ClCompile Include="src\ConditionTest.cpp" />
<ClCompile Include="src\CoreTest.cpp" />
<ClCompile Include="src\CoreTestSuite.cpp" />
<ClCompile Include="src\CountingStreamTest.cpp" />
<ClCompile Include="src\CryptTestSuite.cpp" />
<ClCompile Include="src\DataURIStreamTest.cpp" />
<ClCompile Include="src\DateTimeFormatterTest.cpp" />
<ClCompile Include="src\DateTimeParserTest.cpp" />
<ClCompile Include="src\DateTimeTest.cpp" />
<ClCompile Include="src\DateTimeTestSuite.cpp" />
<ClCompile Include="src\DigestStreamTest.cpp" />
<ClCompile Include="src\DirectoryIteratorsTest.cpp" />
<ClCompile Include="src\DirectoryWatcherTest.cpp" />
<ClCompile Include="src\Driver.cpp" />
<ClCompile Include="src\DummyDelegate.cpp" />
<ClCompile Include="src\DynamicFactoryTest.cpp" />
<ClCompile Include="src\EventTestSuite.cpp" />
<ClCompile Include="src\ExpireCacheTest.cpp" />
<ClCompile Include="src\ExpireLRUCacheTest.cpp" />
<ClCompile Include="src\FIFOBufferStreamTest.cpp" />
<ClCompile Include="src\FIFOEventTest.cpp" />
<ClCompile Include="src\FileChannelTest.cpp" />
<ClCompile Include="src\FileStreamTest.cpp" />
<ClCompile Include="src\FilesystemTestSuite.cpp" />
<ClCompile Include="src\FileTest.cpp" />
<ClCompile Include="src\FormatTest.cpp" />
<ClCompile Include="src\FoundationTestSuite.cpp" />
<ClCompile Include="src\FPETest.cpp" />
<ClCompile Include="src\GlobTest.cpp" />
<ClCompile Include="src\HashingTestSuite.cpp" />
<ClCompile Include="src\HashMapTest.cpp" />
<ClCompile Include="src\HashSetTest.cpp" />
<ClCompile Include="src\HashTableTest.cpp" />
<ClCompile Include="src\HexBinaryTest.cpp" />
<ClCompile Include="src\HMACEngineTest.cpp" />
<ClCompile Include="src\LinearHashTableTest.cpp" />
<ClCompile Include="src\LineEndingConverterTest.cpp" />
<ClCompile Include="src\ListMapTest.cpp" />
<ClCompile Include="src\LocalDateTimeTest.cpp" />
<ClCompile Include="src\LoggerTest.cpp" />
<ClCompile Include="src\LoggingFactoryTest.cpp" />
<ClCompile Include="src\LoggingRegistryTest.cpp" />
<ClCompile Include="src\LoggingTestSuite.cpp" />
<ClCompile Include="src\LogStreamTest.cpp" />
<ClCompile Include="src\LRUCacheTest.cpp" />
<ClCompile Include="src\ManifestTest.cpp" />
<ClCompile Include="src\MD4EngineTest.cpp" />
<ClCompile Include="src\MD5EngineTest.cpp" />
<ClCompile Include="src\MemoryPoolTest.cpp" />
<ClCompile Include="src\MemoryStreamTest.cpp" />
<ClCompile Include="src\NamedEventTest.cpp" />
<ClCompile Include="src\NamedMutexTest.cpp" />
<ClCompile Include="src\NamedTuplesTest.cpp" />
<ClCompile Include="src\NDCTest.cpp" />
<ClCompile Include="src\NotificationCenterTest.cpp" />
<ClCompile Include="src\NotificationQueueTest.cpp" />
<ClCompile Include="src\NotificationsTestSuite.cpp" />
<ClCompile Include="src\NullStreamTest.cpp" />
<ClCompile Include="src\NumberFormatterTest.cpp" />
<ClCompile Include="src\NumberParserTest.cpp" />
<ClCompile Include="src\ObjectPoolTest.cpp" />
<ClCompile Include="src\OrderedContainersTest.cpp" />
<ClCompile Include="src\PathTest.cpp" />
<ClCompile Include="src\PatternFormatterTest.cpp" />
<ClCompile Include="src\PBKDF2EngineTest.cpp" />
<ClCompile Include="src\PriorityEventTest.cpp" />
<ClCompile Include="src\PriorityNotificationQueueTest.cpp" />
<ClCompile Include="src\ProcessesTestSuite.cpp" />
<ClCompile Include="src\ProcessTest.cpp" />
<ClCompile Include="src\RandomStreamTest.cpp" />
<ClCompile Include="src\RandomTest.cpp" />
<ClCompile Include="src\RegularExpressionTest.cpp" />
<ClCompile Include="src\RWLockTest.cpp" />
<ClCompile Include="src\SemaphoreTest.cpp" />
<ClCompile Include="src\SHA1EngineTest.cpp" />
<ClCompile Include="src\SHA2EngineTest.cpp" />
<ClCompile Include="src\SharedLibraryTest.cpp" />
<ClCompile Include="src\SharedLibraryTestSuite.cpp" />
<ClCompile Include="src\SharedMemoryTest.cpp" />
<ClCompile Include="src\SharedPtrTest.cpp" />
<ClCompile Include="src\SimpleFileChannelTest.cpp" />
<ClCompile Include="src\SimpleHashTableTest.cpp" />
<ClCompile Include="src\StopwatchTest.cpp" />
<ClCompile Include="src\StreamConverterTest.cpp" />
<ClCompile Include="src\StreamCopierTest.cpp" />
<ClCompile Include="src\StreamsTestSuite.cpp" />
<ClCompile Include="src\StreamTokenizerTest.cpp" />
<ClCompile Include="src\StringTest.cpp" />
<ClCompile Include="src\StringTokenizerTest.cpp" />
<ClCompile Include="src\TaskManagerTest.cpp" />
<ClCompile Include="src\TaskTest.cpp" />
<ClCompile Include="src\TaskTestSuite.cpp" />
<ClCompile Include="src\TeeStreamTest.cpp" />
<ClCompile Include="src\TestChannel.cpp" />
<ClCompile Include="src\TestPlugin.cpp" />
<ClCompile Include="src\TextBufferIteratorTest.cpp" />
<ClCompile Include="src\TextConverterTest.cpp" />
<ClCompile Include="src\TextEncodingTest.cpp" />
<ClCompile Include="src\TextIteratorTest.cpp" />
<ClCompile Include="src\TextTestSuite.cpp" />
<ClCompile Include="src\ThreadingTestSuite.cpp" />
<ClCompile Include="src\ThreadLocalTest.cpp" />
<ClCompile Include="src\ThreadPoolTest.cpp" />
<ClCompile Include="src\ThreadTest.cpp" />
<ClCompile Include="src\TimedNotificationQueueTest.cpp" />
<ClCompile Include="src\TimerTest.cpp" />
<ClCompile Include="src\TimespanTest.cpp" />
<ClCompile Include="src\TimestampTest.cpp" />
<ClCompile Include="src\TimezoneTest.cpp" />
<ClCompile Include="src\TuplesTest.cpp" />
<ClCompile Include="src\TypeListTest.cpp" />
<ClCompile Include="src\UnicodeConverterTest.cpp" />
<ClCompile Include="src\UniqueExpireCacheTest.cpp" />
<ClCompile Include="src\UniqueExpireLRUCacheTest.cpp" />
<ClCompile Include="src\URIStreamOpenerTest.cpp" />
<ClCompile Include="src\URITest.cpp" />
<ClCompile Include="src\URITestSuite.cpp" />
<ClCompile Include="src\UTF8StringTest.cpp" />
<ClCompile Include="src\UUIDGeneratorTest.cpp" />
<ClCompile Include="src\UUIDTest.cpp" />
<ClCompile Include="src\UUIDTestSuite.cpp" />
<ClCompile Include="src\VarTest.cpp" />
<ClCompile Include="src\ZLibTest.cpp" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="src\ActiveDispatcherTest.h" />
<ClInclude Include="src\ActiveMethodTest.h" />
<ClInclude Include="src\ActivityTest.h" />
<ClInclude Include="src\AnyTest.h" />
<ClInclude Include="src\ArrayTest.h" />
<ClInclude Include="src\AutoPtrTest.h" />
<ClInclude Include="src\AutoReleasePoolTest.h" />
<ClInclude Include="src\Base32Test.h" />
<ClInclude Include="src\Base64Test.h" />
<ClInclude Include="src\BasicEventTest.h" />
<ClInclude Include="src\BinaryReaderWriterTest.h" />
<ClInclude Include="src\ByteOrderTest.h" />
<ClInclude Include="src\CacheTestSuite.h" />
<ClInclude Include="src\ChannelTest.h" />
<ClInclude Include="src\ClassLoaderTest.h" />
<ClInclude Include="src\ClockTest.h" />
<ClInclude Include="src\ConditionTest.h" />
<ClInclude Include="src\CoreTest.h" />
<ClInclude Include="src\CoreTestSuite.h" />
<ClInclude Include="src\CountingStreamTest.h" />
<ClInclude Include="src\CryptTestSuite.h" />
<ClInclude Include="src\DataURIStreamTest.h" />
<ClInclude Include="src\DateTimeFormatterTest.h" />
<ClInclude Include="src\DateTimeParserTest.h" />
<ClInclude Include="src\DateTimeTest.h" />
<ClInclude Include="src\DateTimeTestSuite.h" />
<ClInclude Include="src\DigestStreamTest.h" />
<ClInclude Include="src\DirectoryIteratorsTest.h" />
<ClInclude Include="src\DirectoryWatcherTest.h" />
<ClInclude Include="src\DummyDelegate.h" />
<ClInclude Include="src\DynamicAnyTest.h" />
<ClInclude Include="src\DynamicFactoryTest.h" />
<ClInclude Include="src\EventTestSuite.h" />
<ClInclude Include="src\ExpireCacheTest.h" />
<ClInclude Include="src\ExpireLRUCacheTest.h" />
<ClInclude Include="src\FIFOBufferStreamTest.h" />
<ClInclude Include="src\FIFOEventTest.h" />
<ClInclude Include="src\FileChannelTest.h" />
<ClInclude Include="src\FileStreamTest.h" />
<ClInclude Include="src\FilesystemTestSuite.h" />
<ClInclude Include="src\FileTest.h" />
<ClInclude Include="src\FormatTest.h" />
<ClInclude Include="src\FoundationTestSuite.h" />
<ClInclude Include="src\FPETest.h" />
<ClInclude Include="src\GlobTest.h" />
<ClInclude Include="src\HashingTestSuite.h" />
<ClInclude Include="src\HashMapTest.h" />
<ClInclude Include="src\HashSetTest.h" />
<ClInclude Include="src\HashTableTest.h" />
<ClInclude Include="src\HexBinaryTest.h" />
<ClInclude Include="src\HMACEngineTest.h" />
<ClInclude Include="src\LinearHashTableTest.h" />
<ClInclude Include="src\LineEndingConverterTest.h" />
<ClInclude Include="src\ListMapTest.h" />
<ClInclude Include="src\LocalDateTimeTest.h" />
<ClInclude Include="src\LoggerTest.h" />
<ClInclude Include="src\LoggingFactoryTest.h" />
<ClInclude Include="src\LoggingRegistryTest.h" />
<ClInclude Include="src\LoggingTestSuite.h" />
<ClInclude Include="src\LogStreamTest.h" />
<ClInclude Include="src\LRUCacheTest.h" />
<ClInclude Include="src\ManifestTest.h" />
<ClInclude Include="src\MD4EngineTest.h" />
<ClInclude Include="src\MD5EngineTest.h" />
<ClInclude Include="src\MemoryPoolTest.h" />
<ClInclude Include="src\MemoryStreamTest.h" />
<ClInclude Include="src\NamedEventTest.h" />
<ClInclude Include="src\NamedMutexTest.h" />
<ClInclude Include="src\NamedTuplesTest.h" />
<ClInclude Include="src\NDCTest.h" />
<ClInclude Include="src\NotificationCenterTest.h" />
<ClInclude Include="src\NotificationQueueTest.h" />
<ClInclude Include="src\NotificationsTestSuite.h" />
<ClInclude Include="src\NullStreamTest.h" />
<ClInclude Include="src\NumberFormatterTest.h" />
<ClInclude Include="src\NumberParserTest.h" />
<ClInclude Include="src\ObjectPoolTest.h" />
<ClInclude Include="src\OrderedContainersTest.h" />
<ClInclude Include="src\PathTest.h" />
<ClInclude Include="src\PatternFormatterTest.h" />
<ClInclude Include="src\PBKDF2EngineTest.h" />
<ClInclude Include="src\PriorityEventTest.h" />
<ClInclude Include="src\PriorityNotificationQueueTest.h" />
<ClInclude Include="src\ProcessesTestSuite.h" />
<ClInclude Include="src\ProcessTest.h" />
<ClInclude Include="src\RandomStreamTest.h" />
<ClInclude Include="src\RandomTest.h" />
<ClInclude Include="src\RegularExpressionTest.h" />
<ClInclude Include="src\RWLockTest.h" />
<ClInclude Include="src\SemaphoreTest.h" />
<ClInclude Include="src\SHA1EngineTest.h" />
<ClInclude Include="src\SHA2EngineTest.h" />
<ClInclude Include="src\SharedLibraryTest.h" />
<ClInclude Include="src\SharedLibraryTestSuite.h" />
<ClInclude Include="src\SharedMemoryTest.h" />
<ClInclude Include="src\SharedPtrTest.h" />
<ClInclude Include="src\SimpleFileChannelTest.h" />
<ClInclude Include="src\SimpleHashTableTest.h" />
<ClInclude Include="src\StopwatchTest.h" />
<ClInclude Include="src\StreamConverterTest.h" />
<ClInclude Include="src\StreamCopierTest.h" />
<ClInclude Include="src\StreamsTestSuite.h" />
<ClInclude Include="src\StreamTokenizerTest.h" />
<ClInclude Include="src\StringTest.h" />
<ClInclude Include="src\StringTokenizerTest.h" />
<ClInclude Include="src\TaskManagerTest.h" />
<ClInclude Include="src\TaskTest.h" />
<ClInclude Include="src\TaskTestSuite.h" />
<ClInclude Include="src\TeeStreamTest.h" />
<ClInclude Include="src\TestChannel.h" />
<ClInclude Include="src\TestPlugin.h" />
<ClInclude Include="src\TextBufferIteratorTest.h" />
<ClInclude Include="src\TextConverterTest.h" />
<ClInclude Include="src\TextEncodingTest.h" />
<ClInclude Include="src\TextIteratorTest.h" />
<ClInclude Include="src\TextTestSuite.h" />
<ClInclude Include="src\ThreadingTestSuite.h" />
<ClInclude Include="src\ThreadLocalTest.h" />
<ClInclude Include="src\ThreadPoolTest.h" />
<ClInclude Include="src\ThreadTest.h" />
<ClInclude Include="src\TimedNotificationQueueTest.h" />
<ClInclude Include="src\TimerTest.h" />
<ClInclude Include="src\TimespanTest.h" />
<ClInclude Include="src\TimestampTest.h" />
<ClInclude Include="src\TimezoneTest.h" />
<ClInclude Include="src\TuplesTest.h" />
<ClInclude Include="src\TypeListTest.h" />
<ClInclude Include="src\UnicodeConverterTest.h" />
<ClInclude Include="src\UniqueExpireCacheTest.h" />
<ClInclude Include="src\UniqueExpireLRUCacheTest.h" />
<ClInclude Include="src\URIStreamOpenerTest.h" />
<ClInclude Include="src\URITest.h" />
<ClInclude Include="src\URITestSuite.h" />
<ClInclude Include="src\UTF8StringTest.h" />
<ClInclude Include="src\UUIDGeneratorTest.h" />
<ClInclude Include="src\UUIDTest.h" />
<ClInclude Include="src\UUIDTestSuite.h" />
<ClInclude Include="src\VarTest.h" />
<ClInclude Include="src\ZLibTest.h" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets" />
</Project>

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,891 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="debug_shared|Win32">
<Configuration>debug_shared</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="debug_shared|x64">
<Configuration>debug_shared</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="debug_static_md|Win32">
<Configuration>debug_static_md</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="debug_static_md|x64">
<Configuration>debug_static_md</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="debug_static_mt|Win32">
<Configuration>debug_static_mt</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="debug_static_mt|x64">
<Configuration>debug_static_mt</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="release_shared|Win32">
<Configuration>release_shared</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="release_shared|x64">
<Configuration>release_shared</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="release_static_md|Win32">
<Configuration>release_static_md</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="release_static_md|x64">
<Configuration>release_static_md</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="release_static_mt|Win32">
<Configuration>release_static_mt</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="release_static_mt|x64">
<Configuration>release_static_mt</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectName>TestSuite</ProjectName>
<ProjectGuid>{F1EE93DF-347F-4CB3-B191-C4E63F38E972}</ProjectGuid>
<RootNamespace>TestSuite</RootNamespace>
<Keyword>Win32Proj</Keyword>
<WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='release_static_md|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
<PlatformToolset>v142</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='release_static_md|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
<PlatformToolset>v142</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='debug_static_md|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
<PlatformToolset>v142</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='debug_static_md|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
<PlatformToolset>v142</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='release_static_mt|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
<PlatformToolset>v142</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='release_static_mt|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
<PlatformToolset>v142</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='debug_static_mt|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
<PlatformToolset>v142</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='debug_static_mt|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
<PlatformToolset>v142</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='release_shared|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
<PlatformToolset>v142</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='release_shared|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
<PlatformToolset>v142</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='debug_shared|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
<PlatformToolset>v142</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='debug_shared|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
<PlatformToolset>v142</PlatformToolset>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings" />
<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" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='release_static_md|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<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" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='debug_static_md|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<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" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='release_static_mt|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<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" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='debug_static_mt|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<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" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='release_shared|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<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" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='debug_shared|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup>
<_ProjectFileVersion>14.0.25431.1</_ProjectFileVersion>
<TargetName Condition="'$(Configuration)|$(Platform)'=='debug_shared|Win32'">TestSuited</TargetName>
<TargetName Condition="'$(Configuration)|$(Platform)'=='debug_shared|x64'">TestSuited</TargetName>
<TargetName Condition="'$(Configuration)|$(Platform)'=='debug_static_md|Win32'">TestSuited</TargetName>
<TargetName Condition="'$(Configuration)|$(Platform)'=='debug_static_md|x64'">TestSuited</TargetName>
<TargetName Condition="'$(Configuration)|$(Platform)'=='debug_static_mt|Win32'">TestSuited</TargetName>
<TargetName Condition="'$(Configuration)|$(Platform)'=='debug_static_mt|x64'">TestSuited</TargetName>
<TargetName Condition="'$(Configuration)|$(Platform)'=='release_shared|Win32'">TestSuite</TargetName>
<TargetName Condition="'$(Configuration)|$(Platform)'=='release_shared|x64'">TestSuite</TargetName>
<TargetName Condition="'$(Configuration)|$(Platform)'=='release_static_md|Win32'">TestSuite</TargetName>
<TargetName Condition="'$(Configuration)|$(Platform)'=='release_static_md|x64'">TestSuite</TargetName>
<TargetName Condition="'$(Configuration)|$(Platform)'=='release_static_mt|Win32'">TestSuite</TargetName>
<TargetName Condition="'$(Configuration)|$(Platform)'=='release_static_mt|x64'">TestSuite</TargetName>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='debug_shared|Win32'">
<OutDir>bin\</OutDir>
<IntDir>obj\TestSuite\$(Configuration)\</IntDir>
<LinkIncremental>true</LinkIncremental>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='debug_shared|x64'">
<LinkIncremental>true</LinkIncremental>
<IntDir>obj64\TestSuite\$(Configuration)\</IntDir>
<OutDir>bin64\</OutDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='release_shared|Win32'">
<OutDir>bin\</OutDir>
<IntDir>obj\TestSuite\$(Configuration)\</IntDir>
<LinkIncremental>false</LinkIncremental>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='release_shared|x64'">
<LinkIncremental>false</LinkIncremental>
<IntDir>obj64\TestSuite\$(Configuration)\</IntDir>
<OutDir>bin64\</OutDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='debug_static_mt|Win32'">
<OutDir>bin\static_mt\</OutDir>
<IntDir>obj\TestSuite\$(Configuration)\</IntDir>
<LinkIncremental>true</LinkIncremental>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='debug_static_mt|x64'">
<LinkIncremental>true</LinkIncremental>
<IntDir>obj64\TestSuite\$(Configuration)\</IntDir>
<OutDir>bin64\static_mt\</OutDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='release_static_mt|Win32'">
<OutDir>bin\static_mt\</OutDir>
<IntDir>obj\TestSuite\$(Configuration)\</IntDir>
<LinkIncremental>false</LinkIncremental>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='release_static_mt|x64'">
<LinkIncremental>false</LinkIncremental>
<OutDir>bin64\static_mt\</OutDir>
<IntDir>obj64\TestSuite\$(Configuration)\</IntDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='debug_static_md|Win32'">
<OutDir>bin\static_md\</OutDir>
<IntDir>obj\TestSuite\$(Configuration)\</IntDir>
<LinkIncremental>true</LinkIncremental>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='debug_static_md|x64'">
<LinkIncremental>true</LinkIncremental>
<IntDir>obj64\TestSuite\$(Configuration)\</IntDir>
<OutDir>bin64\static_md\</OutDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='release_static_md|Win32'">
<OutDir>bin\static_md\</OutDir>
<IntDir>obj\TestSuite\$(Configuration)\</IntDir>
<LinkIncremental>false</LinkIncremental>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='release_static_md|x64'">
<LinkIncremental>false</LinkIncremental>
<IntDir>obj64\TestSuite\$(Configuration)\</IntDir>
<OutDir>bin64\static_md\</OutDir>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='debug_shared|Win32'">
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<MinimalRebuild>false</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
<BufferSecurityCheck>true</BufferSecurityCheck>
<TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
<ForceConformanceInForLoopScope>true</ForceConformanceInForLoopScope>
<RuntimeTypeInfo>true</RuntimeTypeInfo>
<PrecompiledHeader />
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<CompileAs>Default</CompileAs>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
</ClCompile>
<Link>
<AdditionalDependencies>iphlpapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
<OutputFile>bin\TestSuited.exe</OutputFile>
<AdditionalLibraryDirectories>..\..\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<SuppressStartupBanner>true</SuppressStartupBanner>
<GenerateDebugInformation>true</GenerateDebugInformation>
<ProgramDatabaseFile>bin\TestSuited.pdb</ProgramDatabaseFile>
<SubSystem>Console</SubSystem>
<TargetMachine>MachineX86</TargetMachine>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='debug_shared|x64'">
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
<BufferSecurityCheck>true</BufferSecurityCheck>
<TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
<ForceConformanceInForLoopScope>true</ForceConformanceInForLoopScope>
<RuntimeTypeInfo>true</RuntimeTypeInfo>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<CompileAs>Default</CompileAs>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
</ClCompile>
<Link>
<AdditionalDependencies>iphlpapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
<OutputFile>bin64\TestSuited.exe</OutputFile>
<AdditionalLibraryDirectories>..\..\lib64;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<SuppressStartupBanner>true</SuppressStartupBanner>
<GenerateDebugInformation>true</GenerateDebugInformation>
<ProgramDatabaseFile>bin64\TestSuited.pdb</ProgramDatabaseFile>
<SubSystem>Console</SubSystem>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='release_shared|Win32'">
<ClCompile>
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<IntrinsicFunctions>true</IntrinsicFunctions>
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
<OmitFramePointers>true</OmitFramePointers>
<AdditionalIncludeDirectories>..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<BufferSecurityCheck>false</BufferSecurityCheck>
<TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
<ForceConformanceInForLoopScope>true</ForceConformanceInForLoopScope>
<RuntimeTypeInfo>true</RuntimeTypeInfo>
<PrecompiledHeader />
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat />
<CompileAs>Default</CompileAs>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
</ClCompile>
<Link>
<AdditionalDependencies>iphlpapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
<OutputFile>bin\TestSuite.exe</OutputFile>
<AdditionalLibraryDirectories>..\..\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<GenerateDebugInformation>false</GenerateDebugInformation>
<SubSystem>Console</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<TargetMachine>MachineX86</TargetMachine>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='release_shared|x64'">
<ClCompile>
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<IntrinsicFunctions>true</IntrinsicFunctions>
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
<OmitFramePointers>true</OmitFramePointers>
<AdditionalIncludeDirectories>..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<BufferSecurityCheck>false</BufferSecurityCheck>
<TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
<ForceConformanceInForLoopScope>true</ForceConformanceInForLoopScope>
<RuntimeTypeInfo>true</RuntimeTypeInfo>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>
</DebugInformationFormat>
<CompileAs>Default</CompileAs>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
</ClCompile>
<Link>
<AdditionalDependencies>iphlpapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
<OutputFile>bin64\TestSuite.exe</OutputFile>
<AdditionalLibraryDirectories>..\..\lib64;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<GenerateDebugInformation>false</GenerateDebugInformation>
<SubSystem>Console</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='debug_static_mt|Win32'">
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<MinimalRebuild>false</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
<BufferSecurityCheck>true</BufferSecurityCheck>
<TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
<ForceConformanceInForLoopScope>true</ForceConformanceInForLoopScope>
<RuntimeTypeInfo>true</RuntimeTypeInfo>
<PrecompiledHeader />
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<CompileAs>Default</CompileAs>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
</ClCompile>
<Link>
<AdditionalDependencies>iphlpapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
<OutputFile>bin\static_mt\TestSuited.exe</OutputFile>
<AdditionalLibraryDirectories>..\..\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<SuppressStartupBanner>true</SuppressStartupBanner>
<GenerateDebugInformation>true</GenerateDebugInformation>
<ProgramDatabaseFile>bin\static_mt\TestSuited.pdb</ProgramDatabaseFile>
<SubSystem>Console</SubSystem>
<TargetMachine>MachineX86</TargetMachine>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='debug_static_mt|x64'">
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
<BufferSecurityCheck>true</BufferSecurityCheck>
<TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
<ForceConformanceInForLoopScope>true</ForceConformanceInForLoopScope>
<RuntimeTypeInfo>true</RuntimeTypeInfo>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<CompileAs>Default</CompileAs>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
</ClCompile>
<Link>
<AdditionalDependencies>iphlpapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
<OutputFile>bin64\static_mt\TestSuited.exe</OutputFile>
<AdditionalLibraryDirectories>..\..\lib64;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<SuppressStartupBanner>true</SuppressStartupBanner>
<GenerateDebugInformation>true</GenerateDebugInformation>
<ProgramDatabaseFile>bin64\static_mt\TestSuited.pdb</ProgramDatabaseFile>
<SubSystem>Console</SubSystem>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='release_static_mt|Win32'">
<ClCompile>
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<IntrinsicFunctions>true</IntrinsicFunctions>
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
<OmitFramePointers>true</OmitFramePointers>
<AdditionalIncludeDirectories>..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<BufferSecurityCheck>false</BufferSecurityCheck>
<TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
<ForceConformanceInForLoopScope>true</ForceConformanceInForLoopScope>
<RuntimeTypeInfo>true</RuntimeTypeInfo>
<PrecompiledHeader />
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat />
<CompileAs>Default</CompileAs>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
</ClCompile>
<Link>
<AdditionalDependencies>iphlpapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
<OutputFile>bin\static_mt\TestSuite.exe</OutputFile>
<AdditionalLibraryDirectories>..\..\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<GenerateDebugInformation>false</GenerateDebugInformation>
<SubSystem>Console</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<TargetMachine>MachineX86</TargetMachine>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='release_static_mt|x64'">
<ClCompile>
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<IntrinsicFunctions>true</IntrinsicFunctions>
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
<OmitFramePointers>true</OmitFramePointers>
<AdditionalIncludeDirectories>..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<BufferSecurityCheck>false</BufferSecurityCheck>
<TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
<ForceConformanceInForLoopScope>true</ForceConformanceInForLoopScope>
<RuntimeTypeInfo>true</RuntimeTypeInfo>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>
</DebugInformationFormat>
<CompileAs>Default</CompileAs>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
</ClCompile>
<Link>
<AdditionalDependencies>iphlpapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
<OutputFile>bin64\static_mt\TestSuite.exe</OutputFile>
<AdditionalLibraryDirectories>..\..\lib64;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<GenerateDebugInformation>false</GenerateDebugInformation>
<SubSystem>Console</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='debug_static_md|Win32'">
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<MinimalRebuild>false</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
<BufferSecurityCheck>true</BufferSecurityCheck>
<TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
<ForceConformanceInForLoopScope>true</ForceConformanceInForLoopScope>
<RuntimeTypeInfo>true</RuntimeTypeInfo>
<PrecompiledHeader />
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<CompileAs>Default</CompileAs>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
</ClCompile>
<Link>
<AdditionalDependencies>iphlpapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
<OutputFile>bin\static_md\TestSuited.exe</OutputFile>
<AdditionalLibraryDirectories>..\..\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<SuppressStartupBanner>true</SuppressStartupBanner>
<GenerateDebugInformation>true</GenerateDebugInformation>
<ProgramDatabaseFile>bin\static_md\TestSuited.pdb</ProgramDatabaseFile>
<SubSystem>Console</SubSystem>
<TargetMachine>MachineX86</TargetMachine>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='debug_static_md|x64'">
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
<BufferSecurityCheck>true</BufferSecurityCheck>
<TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
<ForceConformanceInForLoopScope>true</ForceConformanceInForLoopScope>
<RuntimeTypeInfo>true</RuntimeTypeInfo>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<CompileAs>Default</CompileAs>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
</ClCompile>
<Link>
<AdditionalDependencies>iphlpapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
<OutputFile>bin64\static_md\TestSuited.exe</OutputFile>
<AdditionalLibraryDirectories>..\..\lib64;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<SuppressStartupBanner>true</SuppressStartupBanner>
<GenerateDebugInformation>true</GenerateDebugInformation>
<ProgramDatabaseFile>bin64\static_md\TestSuited.pdb</ProgramDatabaseFile>
<SubSystem>Console</SubSystem>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='release_static_md|Win32'">
<ClCompile>
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<IntrinsicFunctions>true</IntrinsicFunctions>
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
<OmitFramePointers>true</OmitFramePointers>
<AdditionalIncludeDirectories>..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<BufferSecurityCheck>false</BufferSecurityCheck>
<TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
<ForceConformanceInForLoopScope>true</ForceConformanceInForLoopScope>
<RuntimeTypeInfo>true</RuntimeTypeInfo>
<PrecompiledHeader />
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat />
<CompileAs>Default</CompileAs>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
</ClCompile>
<Link>
<AdditionalDependencies>iphlpapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
<OutputFile>bin\static_md\TestSuite.exe</OutputFile>
<AdditionalLibraryDirectories>..\..\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<GenerateDebugInformation>false</GenerateDebugInformation>
<SubSystem>Console</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<TargetMachine>MachineX86</TargetMachine>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='release_static_md|x64'">
<ClCompile>
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<IntrinsicFunctions>true</IntrinsicFunctions>
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
<OmitFramePointers>true</OmitFramePointers>
<AdditionalIncludeDirectories>..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<BufferSecurityCheck>false</BufferSecurityCheck>
<TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
<ForceConformanceInForLoopScope>true</ForceConformanceInForLoopScope>
<RuntimeTypeInfo>true</RuntimeTypeInfo>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>
</DebugInformationFormat>
<CompileAs>Default</CompileAs>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
</ClCompile>
<Link>
<AdditionalDependencies>iphlpapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
<OutputFile>bin64\static_md\TestSuite.exe</OutputFile>
<AdditionalLibraryDirectories>..\..\lib64;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<GenerateDebugInformation>false</GenerateDebugInformation>
<SubSystem>Console</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
</Link>
</ItemDefinitionGroup>
<ItemGroup>
<ClCompile Include="src\ActiveDispatcherTest.cpp" />
<ClCompile Include="src\ActiveMethodTest.cpp" />
<ClCompile Include="src\ActivityTest.cpp" />
<ClCompile Include="src\AnyTest.cpp" />
<ClCompile Include="src\ArrayTest.cpp" />
<ClCompile Include="src\AutoPtrTest.cpp" />
<ClCompile Include="src\AutoReleasePoolTest.cpp" />
<ClCompile Include="src\Base32Test.cpp" />
<ClCompile Include="src\Base64Test.cpp" />
<ClCompile Include="src\BasicEventTest.cpp" />
<ClCompile Include="src\BinaryReaderWriterTest.cpp" />
<ClCompile Include="src\ByteOrderTest.cpp" />
<ClCompile Include="src\CacheTestSuite.cpp" />
<ClCompile Include="src\ChannelTest.cpp" />
<ClCompile Include="src\ClassLoaderTest.cpp" />
<ClCompile Include="src\ClockTest.cpp" />
<ClCompile Include="src\ConditionTest.cpp" />
<ClCompile Include="src\CoreTest.cpp" />
<ClCompile Include="src\CoreTestSuite.cpp" />
<ClCompile Include="src\CountingStreamTest.cpp" />
<ClCompile Include="src\CryptTestSuite.cpp" />
<ClCompile Include="src\DataURIStreamTest.cpp" />
<ClCompile Include="src\DateTimeFormatterTest.cpp" />
<ClCompile Include="src\DateTimeParserTest.cpp" />
<ClCompile Include="src\DateTimeTest.cpp" />
<ClCompile Include="src\DateTimeTestSuite.cpp" />
<ClCompile Include="src\DigestStreamTest.cpp" />
<ClCompile Include="src\DirectoryIteratorsTest.cpp" />
<ClCompile Include="src\DirectoryWatcherTest.cpp" />
<ClCompile Include="src\Driver.cpp" />
<ClCompile Include="src\DummyDelegate.cpp" />
<ClCompile Include="src\DynamicFactoryTest.cpp" />
<ClCompile Include="src\EventTestSuite.cpp" />
<ClCompile Include="src\ExpireCacheTest.cpp" />
<ClCompile Include="src\ExpireLRUCacheTest.cpp" />
<ClCompile Include="src\FIFOBufferStreamTest.cpp" />
<ClCompile Include="src\FIFOEventTest.cpp" />
<ClCompile Include="src\FileChannelTest.cpp" />
<ClCompile Include="src\FileStreamTest.cpp" />
<ClCompile Include="src\FilesystemTestSuite.cpp" />
<ClCompile Include="src\FileTest.cpp" />
<ClCompile Include="src\FormatTest.cpp" />
<ClCompile Include="src\FoundationTestSuite.cpp" />
<ClCompile Include="src\FPETest.cpp" />
<ClCompile Include="src\GlobTest.cpp" />
<ClCompile Include="src\HashingTestSuite.cpp" />
<ClCompile Include="src\HashMapTest.cpp" />
<ClCompile Include="src\HashSetTest.cpp" />
<ClCompile Include="src\HashTableTest.cpp" />
<ClCompile Include="src\HexBinaryTest.cpp" />
<ClCompile Include="src\HMACEngineTest.cpp" />
<ClCompile Include="src\LinearHashTableTest.cpp" />
<ClCompile Include="src\LineEndingConverterTest.cpp" />
<ClCompile Include="src\ListMapTest.cpp" />
<ClCompile Include="src\LocalDateTimeTest.cpp" />
<ClCompile Include="src\LoggerTest.cpp" />
<ClCompile Include="src\LoggingFactoryTest.cpp" />
<ClCompile Include="src\LoggingRegistryTest.cpp" />
<ClCompile Include="src\LoggingTestSuite.cpp" />
<ClCompile Include="src\LogStreamTest.cpp" />
<ClCompile Include="src\LRUCacheTest.cpp" />
<ClCompile Include="src\ManifestTest.cpp" />
<ClCompile Include="src\MD4EngineTest.cpp" />
<ClCompile Include="src\MD5EngineTest.cpp" />
<ClCompile Include="src\MemoryPoolTest.cpp" />
<ClCompile Include="src\MemoryStreamTest.cpp" />
<ClCompile Include="src\NamedEventTest.cpp" />
<ClCompile Include="src\NamedMutexTest.cpp" />
<ClCompile Include="src\NamedTuplesTest.cpp" />
<ClCompile Include="src\NDCTest.cpp" />
<ClCompile Include="src\NotificationCenterTest.cpp" />
<ClCompile Include="src\NotificationQueueTest.cpp" />
<ClCompile Include="src\NotificationsTestSuite.cpp" />
<ClCompile Include="src\NullStreamTest.cpp" />
<ClCompile Include="src\NumberFormatterTest.cpp" />
<ClCompile Include="src\NumberParserTest.cpp" />
<ClCompile Include="src\ObjectPoolTest.cpp" />
<ClCompile Include="src\OrderedContainersTest.cpp" />
<ClCompile Include="src\PathTest.cpp" />
<ClCompile Include="src\PatternFormatterTest.cpp" />
<ClCompile Include="src\PBKDF2EngineTest.cpp" />
<ClCompile Include="src\PriorityEventTest.cpp" />
<ClCompile Include="src\PriorityNotificationQueueTest.cpp" />
<ClCompile Include="src\ProcessesTestSuite.cpp" />
<ClCompile Include="src\ProcessTest.cpp" />
<ClCompile Include="src\RandomStreamTest.cpp" />
<ClCompile Include="src\RandomTest.cpp" />
<ClCompile Include="src\RegularExpressionTest.cpp" />
<ClCompile Include="src\RWLockTest.cpp" />
<ClCompile Include="src\SemaphoreTest.cpp" />
<ClCompile Include="src\SHA1EngineTest.cpp" />
<ClCompile Include="src\SHA2EngineTest.cpp" />
<ClCompile Include="src\SharedLibraryTest.cpp" />
<ClCompile Include="src\SharedLibraryTestSuite.cpp" />
<ClCompile Include="src\SharedMemoryTest.cpp" />
<ClCompile Include="src\SharedPtrTest.cpp" />
<ClCompile Include="src\SimpleFileChannelTest.cpp" />
<ClCompile Include="src\SimpleHashTableTest.cpp" />
<ClCompile Include="src\StopwatchTest.cpp" />
<ClCompile Include="src\StreamConverterTest.cpp" />
<ClCompile Include="src\StreamCopierTest.cpp" />
<ClCompile Include="src\StreamsTestSuite.cpp" />
<ClCompile Include="src\StreamTokenizerTest.cpp" />
<ClCompile Include="src\StringTest.cpp" />
<ClCompile Include="src\StringTokenizerTest.cpp" />
<ClCompile Include="src\TaskManagerTest.cpp" />
<ClCompile Include="src\TaskTest.cpp" />
<ClCompile Include="src\TaskTestSuite.cpp" />
<ClCompile Include="src\TeeStreamTest.cpp" />
<ClCompile Include="src\TestChannel.cpp" />
<ClCompile Include="src\TestPlugin.cpp" />
<ClCompile Include="src\TextBufferIteratorTest.cpp" />
<ClCompile Include="src\TextConverterTest.cpp" />
<ClCompile Include="src\TextEncodingTest.cpp" />
<ClCompile Include="src\TextIteratorTest.cpp" />
<ClCompile Include="src\TextTestSuite.cpp" />
<ClCompile Include="src\ThreadingTestSuite.cpp" />
<ClCompile Include="src\ThreadLocalTest.cpp" />
<ClCompile Include="src\ThreadPoolTest.cpp" />
<ClCompile Include="src\ThreadTest.cpp" />
<ClCompile Include="src\TimedNotificationQueueTest.cpp" />
<ClCompile Include="src\TimerTest.cpp" />
<ClCompile Include="src\TimespanTest.cpp" />
<ClCompile Include="src\TimestampTest.cpp" />
<ClCompile Include="src\TimezoneTest.cpp" />
<ClCompile Include="src\TuplesTest.cpp" />
<ClCompile Include="src\TypeListTest.cpp" />
<ClCompile Include="src\UnicodeConverterTest.cpp" />
<ClCompile Include="src\UniqueExpireCacheTest.cpp" />
<ClCompile Include="src\UniqueExpireLRUCacheTest.cpp" />
<ClCompile Include="src\URIStreamOpenerTest.cpp" />
<ClCompile Include="src\URITest.cpp" />
<ClCompile Include="src\URITestSuite.cpp" />
<ClCompile Include="src\UTF8StringTest.cpp" />
<ClCompile Include="src\UUIDGeneratorTest.cpp" />
<ClCompile Include="src\UUIDTest.cpp" />
<ClCompile Include="src\UUIDTestSuite.cpp" />
<ClCompile Include="src\VarTest.cpp" />
<ClCompile Include="src\ZLibTest.cpp" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="src\ActiveDispatcherTest.h" />
<ClInclude Include="src\ActiveMethodTest.h" />
<ClInclude Include="src\ActivityTest.h" />
<ClInclude Include="src\AnyTest.h" />
<ClInclude Include="src\ArrayTest.h" />
<ClInclude Include="src\AutoPtrTest.h" />
<ClInclude Include="src\AutoReleasePoolTest.h" />
<ClInclude Include="src\Base32Test.h" />
<ClInclude Include="src\Base64Test.h" />
<ClInclude Include="src\BasicEventTest.h" />
<ClInclude Include="src\BinaryReaderWriterTest.h" />
<ClInclude Include="src\ByteOrderTest.h" />
<ClInclude Include="src\CacheTestSuite.h" />
<ClInclude Include="src\ChannelTest.h" />
<ClInclude Include="src\ClassLoaderTest.h" />
<ClInclude Include="src\ClockTest.h" />
<ClInclude Include="src\ConditionTest.h" />
<ClInclude Include="src\CoreTest.h" />
<ClInclude Include="src\CoreTestSuite.h" />
<ClInclude Include="src\CountingStreamTest.h" />
<ClInclude Include="src\CryptTestSuite.h" />
<ClInclude Include="src\DataURIStreamTest.h" />
<ClInclude Include="src\DateTimeFormatterTest.h" />
<ClInclude Include="src\DateTimeParserTest.h" />
<ClInclude Include="src\DateTimeTest.h" />
<ClInclude Include="src\DateTimeTestSuite.h" />
<ClInclude Include="src\DigestStreamTest.h" />
<ClInclude Include="src\DirectoryIteratorsTest.h" />
<ClInclude Include="src\DirectoryWatcherTest.h" />
<ClInclude Include="src\DummyDelegate.h" />
<ClInclude Include="src\DynamicAnyTest.h" />
<ClInclude Include="src\DynamicFactoryTest.h" />
<ClInclude Include="src\EventTestSuite.h" />
<ClInclude Include="src\ExpireCacheTest.h" />
<ClInclude Include="src\ExpireLRUCacheTest.h" />
<ClInclude Include="src\FIFOBufferStreamTest.h" />
<ClInclude Include="src\FIFOEventTest.h" />
<ClInclude Include="src\FileChannelTest.h" />
<ClInclude Include="src\FileStreamTest.h" />
<ClInclude Include="src\FilesystemTestSuite.h" />
<ClInclude Include="src\FileTest.h" />
<ClInclude Include="src\FormatTest.h" />
<ClInclude Include="src\FoundationTestSuite.h" />
<ClInclude Include="src\FPETest.h" />
<ClInclude Include="src\GlobTest.h" />
<ClInclude Include="src\HashingTestSuite.h" />
<ClInclude Include="src\HashMapTest.h" />
<ClInclude Include="src\HashSetTest.h" />
<ClInclude Include="src\HashTableTest.h" />
<ClInclude Include="src\HexBinaryTest.h" />
<ClInclude Include="src\HMACEngineTest.h" />
<ClInclude Include="src\LinearHashTableTest.h" />
<ClInclude Include="src\LineEndingConverterTest.h" />
<ClInclude Include="src\ListMapTest.h" />
<ClInclude Include="src\LocalDateTimeTest.h" />
<ClInclude Include="src\LoggerTest.h" />
<ClInclude Include="src\LoggingFactoryTest.h" />
<ClInclude Include="src\LoggingRegistryTest.h" />
<ClInclude Include="src\LoggingTestSuite.h" />
<ClInclude Include="src\LogStreamTest.h" />
<ClInclude Include="src\LRUCacheTest.h" />
<ClInclude Include="src\ManifestTest.h" />
<ClInclude Include="src\MD4EngineTest.h" />
<ClInclude Include="src\MD5EngineTest.h" />
<ClInclude Include="src\MemoryPoolTest.h" />
<ClInclude Include="src\MemoryStreamTest.h" />
<ClInclude Include="src\NamedEventTest.h" />
<ClInclude Include="src\NamedMutexTest.h" />
<ClInclude Include="src\NamedTuplesTest.h" />
<ClInclude Include="src\NDCTest.h" />
<ClInclude Include="src\NotificationCenterTest.h" />
<ClInclude Include="src\NotificationQueueTest.h" />
<ClInclude Include="src\NotificationsTestSuite.h" />
<ClInclude Include="src\NullStreamTest.h" />
<ClInclude Include="src\NumberFormatterTest.h" />
<ClInclude Include="src\NumberParserTest.h" />
<ClInclude Include="src\ObjectPoolTest.h" />
<ClInclude Include="src\OrderedContainersTest.h" />
<ClInclude Include="src\PathTest.h" />
<ClInclude Include="src\PatternFormatterTest.h" />
<ClInclude Include="src\PBKDF2EngineTest.h" />
<ClInclude Include="src\PriorityEventTest.h" />
<ClInclude Include="src\PriorityNotificationQueueTest.h" />
<ClInclude Include="src\ProcessesTestSuite.h" />
<ClInclude Include="src\ProcessTest.h" />
<ClInclude Include="src\RandomStreamTest.h" />
<ClInclude Include="src\RandomTest.h" />
<ClInclude Include="src\RegularExpressionTest.h" />
<ClInclude Include="src\RWLockTest.h" />
<ClInclude Include="src\SemaphoreTest.h" />
<ClInclude Include="src\SHA1EngineTest.h" />
<ClInclude Include="src\SHA2EngineTest.h" />
<ClInclude Include="src\SharedLibraryTest.h" />
<ClInclude Include="src\SharedLibraryTestSuite.h" />
<ClInclude Include="src\SharedMemoryTest.h" />
<ClInclude Include="src\SharedPtrTest.h" />
<ClInclude Include="src\SimpleFileChannelTest.h" />
<ClInclude Include="src\SimpleHashTableTest.h" />
<ClInclude Include="src\StopwatchTest.h" />
<ClInclude Include="src\StreamConverterTest.h" />
<ClInclude Include="src\StreamCopierTest.h" />
<ClInclude Include="src\StreamsTestSuite.h" />
<ClInclude Include="src\StreamTokenizerTest.h" />
<ClInclude Include="src\StringTest.h" />
<ClInclude Include="src\StringTokenizerTest.h" />
<ClInclude Include="src\TaskManagerTest.h" />
<ClInclude Include="src\TaskTest.h" />
<ClInclude Include="src\TaskTestSuite.h" />
<ClInclude Include="src\TeeStreamTest.h" />
<ClInclude Include="src\TestChannel.h" />
<ClInclude Include="src\TestPlugin.h" />
<ClInclude Include="src\TextBufferIteratorTest.h" />
<ClInclude Include="src\TextConverterTest.h" />
<ClInclude Include="src\TextEncodingTest.h" />
<ClInclude Include="src\TextIteratorTest.h" />
<ClInclude Include="src\TextTestSuite.h" />
<ClInclude Include="src\ThreadingTestSuite.h" />
<ClInclude Include="src\ThreadLocalTest.h" />
<ClInclude Include="src\ThreadPoolTest.h" />
<ClInclude Include="src\ThreadTest.h" />
<ClInclude Include="src\TimedNotificationQueueTest.h" />
<ClInclude Include="src\TimerTest.h" />
<ClInclude Include="src\TimespanTest.h" />
<ClInclude Include="src\TimestampTest.h" />
<ClInclude Include="src\TimezoneTest.h" />
<ClInclude Include="src\TuplesTest.h" />
<ClInclude Include="src\TypeListTest.h" />
<ClInclude Include="src\UnicodeConverterTest.h" />
<ClInclude Include="src\UniqueExpireCacheTest.h" />
<ClInclude Include="src\UniqueExpireLRUCacheTest.h" />
<ClInclude Include="src\URIStreamOpenerTest.h" />
<ClInclude Include="src\URITest.h" />
<ClInclude Include="src\URITestSuite.h" />
<ClInclude Include="src\UTF8StringTest.h" />
<ClInclude Include="src\UUIDGeneratorTest.h" />
<ClInclude Include="src\UUIDTest.h" />
<ClInclude Include="src\UUIDTestSuite.h" />
<ClInclude Include="src\VarTest.h" />
<ClInclude Include="src\ZLibTest.h" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets" />
</Project>

File diff suppressed because it is too large Load Diff

View File

View File

@@ -0,0 +1,221 @@
//
// ActiveDispatcherTest.cpp
//
// Copyright (c) 2006, Applied Informatics Software Engineering GmbH.
// All rights reserved.
//
// SPDX-License-Identifier: BSL-1.0
//
#include "ActiveDispatcherTest.h"
#include "CppUnit/TestCaller.h"
#include "CppUnit/TestSuite.h"
#include "Poco/ActiveDispatcher.h"
#include "Poco/ActiveMethod.h"
#include "Poco/Thread.h"
#include "Poco/Event.h"
#include "Poco/Exception.h"
using Poco::ActiveDispatcher;
using Poco::ActiveMethod;
using Poco::ActiveResult;
using Poco::ActiveStarter;
using Poco::Thread;
using Poco::Event;
using Poco::Exception;
namespace
{
class ActiveObject: public ActiveDispatcher
{
public:
ActiveObject():
testMethod(this, &ActiveObject::testMethodImpl),
testVoid(this, &ActiveObject::testVoidImpl),
testVoidInOut(this, &ActiveObject::testVoidInOutImpl),
testVoidIn(this, &ActiveObject::testVoidInImpl)
{
}
~ActiveObject()
{
}
ActiveMethod<int, int, ActiveObject, ActiveStarter<ActiveDispatcher> > testMethod;
ActiveMethod<void, int, ActiveObject, ActiveStarter<ActiveDispatcher> > testVoid;
ActiveMethod<void, void, ActiveObject, ActiveStarter<ActiveDispatcher> > testVoidInOut;
ActiveMethod<int, void, ActiveObject, ActiveStarter<ActiveDispatcher> > testVoidIn;
void cont()
{
_continue.set();
}
protected:
int testMethodImpl(const int& n)
{
if (n == 100) throw Exception("n == 100");
_continue.wait();
return n;
}
void testVoidImpl(const int& n)
{
if (n == 100) throw Exception("n == 100");
_continue.wait();
}
void testVoidInOutImpl()
{
_continue.wait();
}
int testVoidInImpl()
{
_continue.wait();
return 123;
}
private:
Event _continue;
};
}
ActiveDispatcherTest::ActiveDispatcherTest(const std::string& name): CppUnit::TestCase(name)
{
}
ActiveDispatcherTest::~ActiveDispatcherTest()
{
}
void ActiveDispatcherTest::testWait()
{
ActiveObject activeObj;
ActiveResult<int> result = activeObj.testMethod(123);
assertTrue (!result.available());
activeObj.cont();
result.wait();
assertTrue (result.available());
assertTrue (result.data() == 123);
assertTrue (!result.failed());
}
void ActiveDispatcherTest::testWaitInterval()
{
ActiveObject activeObj;
ActiveResult<int> result = activeObj.testMethod(123);
assertTrue (!result.available());
try
{
result.wait(100);
fail("wait must fail");
}
catch (Exception&)
{
}
activeObj.cont();
result.wait(10000);
assertTrue (result.available());
assertTrue (result.data() == 123);
assertTrue (!result.failed());
}
void ActiveDispatcherTest::testTryWait()
{
ActiveObject activeObj;
ActiveResult<int> result = activeObj.testMethod(123);
assertTrue (!result.available());
assertTrue (!result.tryWait(200));
activeObj.cont();
assertTrue (result.tryWait(10000));
assertTrue (result.available());
assertTrue (result.data() == 123);
assertTrue (!result.failed());
}
void ActiveDispatcherTest::testFailure()
{
ActiveObject activeObj;
ActiveResult<int> result = activeObj.testMethod(100);
result.wait();
assertTrue (result.available());
assertTrue (result.failed());
std::string msg = result.error();
assertTrue (msg == "n == 100");
}
void ActiveDispatcherTest::testVoid()
{
ActiveObject activeObj;
ActiveResult<void> result = activeObj.testVoid(123);
assertTrue (!result.available());
activeObj.cont();
result.wait();
assertTrue (result.available());
assertTrue (!result.failed());
}
void ActiveDispatcherTest::testVoidInOut()
{
ActiveObject activeObj;
ActiveResult<void> result = activeObj.testVoidInOut();
assertTrue (!result.available());
activeObj.cont();
result.wait();
assertTrue (result.available());
assertTrue (!result.failed());
}
void ActiveDispatcherTest::testVoidIn()
{
ActiveObject activeObj;
ActiveResult<int> result = activeObj.testVoidIn();
assertTrue (!result.available());
activeObj.cont();
result.wait();
assertTrue (result.available());
assertTrue (!result.failed());
assertTrue (result.data() == 123);
}
void ActiveDispatcherTest::setUp()
{
}
void ActiveDispatcherTest::tearDown()
{
}
CppUnit::Test* ActiveDispatcherTest::suite()
{
CppUnit::TestSuite* pSuite = new CppUnit::TestSuite("ActiveDispatcherTest");
CppUnit_addTest(pSuite, ActiveDispatcherTest, testWait);
CppUnit_addTest(pSuite, ActiveDispatcherTest, testWaitInterval);
CppUnit_addTest(pSuite, ActiveDispatcherTest, testTryWait);
CppUnit_addTest(pSuite, ActiveDispatcherTest, testFailure);
CppUnit_addTest(pSuite, ActiveDispatcherTest, testVoid);
CppUnit_addTest(pSuite, ActiveDispatcherTest, testVoidIn);
CppUnit_addTest(pSuite, ActiveDispatcherTest, testVoidInOut);
return pSuite;
}

View File

@@ -0,0 +1,41 @@
//
// ActiveDispatcherTest.h
//
// Definition of the ActiveDispatcherTest class.
//
// SPDX-License-Identifier: BSL-1.0
//
#ifndef ActiveDispatcherTest_INCLUDED
#define ActiveDispatcherTest_INCLUDED
#include "Poco/Foundation.h"
#include "CppUnit/TestCase.h"
class ActiveDispatcherTest: public CppUnit::TestCase
{
public:
ActiveDispatcherTest(const std::string& name);
~ActiveDispatcherTest();
void testWait();
void testWaitInterval();
void testTryWait();
void testFailure();
void testVoid();
void testVoidIn();
void testVoidInOut();
void setUp();
void tearDown();
static CppUnit::Test* suite();
private:
};
#endif // ActiveDispatcherTest_INCLUDED

View File

@@ -0,0 +1,261 @@
//
// ActiveMethodTest.cpp
//
// Copyright (c) 2004-2006, Applied Informatics Software Engineering GmbH.
// and Contributors.
//
// SPDX-License-Identifier: BSL-1.0
//
#include "ActiveMethodTest.h"
#include "CppUnit/TestCaller.h"
#include "CppUnit/TestSuite.h"
#include "Poco/ActiveMethod.h"
#include "Poco/Thread.h"
#include "Poco/Event.h"
#include "Poco/Exception.h"
using Poco::ActiveMethod;
using Poco::ActiveResult;
using Poco::Thread;
using Poco::Event;
using Poco::Exception;
namespace
{
class ActiveObject
{
public:
typedef ActiveMethod<int, int, ActiveObject> IntIntType;
typedef ActiveMethod<void, int, ActiveObject> VoidIntType;
typedef ActiveMethod<void, void, ActiveObject> VoidVoidType;
typedef ActiveMethod<int, void, ActiveObject> IntVoidType;
ActiveObject():
testMethod(this, &ActiveObject::testMethodImpl),
testVoid(this,&ActiveObject::testVoidOutImpl),
testVoidInOut(this,&ActiveObject::testVoidInOutImpl),
testVoidIn(this,&ActiveObject::testVoidInImpl)
{
}
~ActiveObject()
{
}
IntIntType testMethod;
VoidIntType testVoid;
VoidVoidType testVoidInOut;
IntVoidType testVoidIn;
void cont()
{
_continue.set();
}
protected:
int testMethodImpl(const int& n)
{
if (n == 100) throw Exception("n == 100");
_continue.wait();
return n;
}
void testVoidOutImpl(const int& n)
{
if (n == 100) throw Exception("n == 100");
_continue.wait();
}
void testVoidInOutImpl()
{
_continue.wait();
}
int testVoidInImpl()
{
_continue.wait();
return 123;
}
private:
Event _continue;
};
}
ActiveMethodTest::ActiveMethodTest(const std::string& name): CppUnit::TestCase(name)
{
}
ActiveMethodTest::~ActiveMethodTest()
{
}
void ActiveMethodTest::testWait()
{
ActiveObject activeObj;
ActiveResult<int> result = activeObj.testMethod(123);
assertTrue (!result.available());
activeObj.cont();
result.wait();
assertTrue (result.available());
assertTrue (result.data() == 123);
assertTrue (!result.failed());
}
void ActiveMethodTest::testCopy()
{
ActiveObject activeObj;
ActiveObject::IntIntType ii = activeObj.testMethod;
ActiveResult<int> rii = ii(123);
assertTrue (!rii.available());
activeObj.cont();
rii.wait();
assertTrue (rii.available());
assertTrue (rii.data() == 123);
assertTrue (!rii.failed());
ActiveObject::VoidIntType vi = activeObj.testVoid;
ActiveResult<void> rvi = vi(123);
assertTrue (!rvi.available());
activeObj.cont();
rvi.wait();
assertTrue (rvi.available());
assertTrue (!rvi.failed());
ActiveObject::VoidVoidType vv = activeObj.testVoidInOut;
ActiveResult<void> rvv = vv();
assertTrue (!rvv.available());
activeObj.cont();
rvv.wait();
assertTrue (rvv.available());
assertTrue (!rvv.failed());
ActiveObject::IntVoidType iv = activeObj.testVoidIn;
ActiveResult<int> riv = iv();
assertTrue (!riv.available());
activeObj.cont();
riv.wait();
assertTrue (riv.available());
assertTrue (riv.data() == 123);
assertTrue (!riv.failed());
}
void ActiveMethodTest::testWaitInterval()
{
ActiveObject activeObj;
ActiveResult<int> result = activeObj.testMethod(123);
assertTrue (!result.available());
try
{
result.wait(100);
fail("wait must fail");
}
catch (Exception&)
{
}
activeObj.cont();
result.wait(10000);
assertTrue (result.available());
assertTrue (result.data() == 123);
assertTrue (!result.failed());
}
void ActiveMethodTest::testTryWait()
{
ActiveObject activeObj;
ActiveResult<int> result = activeObj.testMethod(123);
assertTrue (!result.available());
assertTrue (!result.tryWait(200));
activeObj.cont();
assertTrue (result.tryWait(10000));
assertTrue (result.available());
assertTrue (result.data() == 123);
assertTrue (!result.failed());
}
void ActiveMethodTest::testFailure()
{
ActiveObject activeObj;
ActiveResult<int> result = activeObj.testMethod(100);
result.wait();
assertTrue (result.available());
assertTrue (result.failed());
std::string msg = result.error();
assertTrue (msg == "n == 100");
}
void ActiveMethodTest::testVoidOut()
{
ActiveObject activeObj;
ActiveResult<void> result = activeObj.testVoid(101);
activeObj.cont();
result.wait();
assertTrue (result.available());
assertTrue (!result.failed());
}
void ActiveMethodTest::testVoidInOut()
{
ActiveObject activeObj;
ActiveResult<void> result = activeObj.testVoidInOut();
activeObj.cont();
result.wait();
assertTrue (result.available());
assertTrue (!result.failed());
}
void ActiveMethodTest::testVoidIn()
{
ActiveObject activeObj;
ActiveResult<int> result = activeObj.testVoidIn();
activeObj.cont();
result.wait();
assertTrue (result.available());
assertTrue (!result.failed());
assertTrue (result.data() == 123);
}
void ActiveMethodTest::setUp()
{
}
void ActiveMethodTest::tearDown()
{
}
CppUnit::Test* ActiveMethodTest::suite()
{
CppUnit::TestSuite* pSuite = new CppUnit::TestSuite("ActiveMethodTest");
CppUnit_addTest(pSuite, ActiveMethodTest, testWait);
CppUnit_addTest(pSuite, ActiveMethodTest, testCopy);
CppUnit_addTest(pSuite, ActiveMethodTest, testWaitInterval);
CppUnit_addTest(pSuite, ActiveMethodTest, testTryWait);
CppUnit_addTest(pSuite, ActiveMethodTest, testFailure);
CppUnit_addTest(pSuite, ActiveMethodTest, testVoidOut);
CppUnit_addTest(pSuite, ActiveMethodTest, testVoidIn);
CppUnit_addTest(pSuite, ActiveMethodTest, testVoidInOut);
return pSuite;
}

View File

@@ -0,0 +1,45 @@
//
// ActiveMethodTest.h
//
// Definition of the ActiveMethodTest class.
//
// Copyright (c) 2004-2006, Applied Informatics Software Engineering GmbH.
// and Contributors.
//
// SPDX-License-Identifier: BSL-1.0
//
#ifndef ActiveMethodTest_INCLUDED
#define ActiveMethodTest_INCLUDED
#include "Poco/Foundation.h"
#include "CppUnit/TestCase.h"
class ActiveMethodTest: public CppUnit::TestCase
{
public:
ActiveMethodTest(const std::string& name);
~ActiveMethodTest();
void testWait();
void testCopy();
void testWaitInterval();
void testTryWait();
void testFailure();
void testVoidOut();
void testVoidInOut();
void testVoidIn();
void setUp();
void tearDown();
static CppUnit::Test* suite();
private:
};
#endif // ActiveMethodTest_INCLUDED

View File

@@ -0,0 +1,102 @@
//
// ActivityTest.cpp
//
// Copyright (c) 2004-2006, Applied Informatics Software Engineering GmbH.
// and Contributors.
//
// SPDX-License-Identifier: BSL-1.0
//
#include "ActivityTest.h"
#include "CppUnit/TestCaller.h"
#include "CppUnit/TestSuite.h"
#include "Poco/Activity.h"
#include "Poco/Thread.h"
using Poco::Activity;
using Poco::Thread;
namespace
{
class ActiveObject
{
public:
ActiveObject():
_activity(this, &ActiveObject::run),
_count(0)
{
}
~ActiveObject()
{
}
Activity<ActiveObject>& activity()
{
return _activity;
}
Poco::UInt64 count() const
{
return _count;
}
protected:
void run()
{
while (!_activity.isStopped())
++_count;
}
private:
Activity<ActiveObject> _activity;
Poco::UInt64 _count;
};
}
ActivityTest::ActivityTest(const std::string& name): CppUnit::TestCase(name)
{
}
ActivityTest::~ActivityTest()
{
}
void ActivityTest::testActivity()
{
ActiveObject activeObj;
assertTrue (activeObj.activity().isStopped());
activeObj.activity().start();
assertTrue (!activeObj.activity().isStopped());
Thread::sleep(1000);
assertTrue (activeObj.activity().isRunning());
activeObj.activity().stop();
activeObj.activity().wait();
assertTrue (activeObj.count() > 0);
}
void ActivityTest::setUp()
{
}
void ActivityTest::tearDown()
{
}
CppUnit::Test* ActivityTest::suite()
{
CppUnit::TestSuite* pSuite = new CppUnit::TestSuite("ActivityTest");
CppUnit_addTest(pSuite, ActivityTest, testActivity);
return pSuite;
}

View File

@@ -0,0 +1,38 @@
//
// ActivityTest.h
//
// Definition of the ActivityTest class.
//
// Copyright (c) 2004-2006, Applied Informatics Software Engineering GmbH.
// and Contributors.
//
// SPDX-License-Identifier: BSL-1.0
//
#ifndef ActivityTest_INCLUDED
#define ActivityTest_INCLUDED
#include "Poco/Foundation.h"
#include "CppUnit/TestCase.h"
class ActivityTest: public CppUnit::TestCase
{
public:
ActivityTest(const std::string& name);
~ActivityTest();
void testActivity();
void setUp();
void tearDown();
static CppUnit::Test* suite();
private:
};
#endif // ActivityTest_INCLUDED

View File

@@ -0,0 +1,301 @@
//
// AnyTest.cpp
//
// Copyright (c) 2006, Applied Informatics Software Engineering GmbH.
// and Contributors.
//
// SPDX-License-Identifier: BSL-1.0
//
#include "AnyTest.h"
#include "CppUnit/TestCaller.h"
#include "CppUnit/TestSuite.h"
#include "Poco/Exception.h"
#include "Poco/Any.h"
#include "Poco/Bugcheck.h"
#include <vector>
#if defined(_MSC_VER) && _MSC_VER < 1400
#pragma warning(disable:4800)//forcing value to bool 'true' or 'false'
#endif
using namespace Poco;
class SomeClass
{
public:
int i;
std::string str;
SomeClass(int h, std::string s): i (h), str(s)
{
};
bool operator==(const SomeClass& other) const
{
return i == other.i && str == other.str;
}
};
AnyTest::AnyTest(const std::string& name): CppUnit::TestCase(name)
{
}
AnyTest::~AnyTest()
{
}
void AnyTest::testDefaultCtor()
{
const Any value;
assertTrue (value.empty());
assertTrue (0 == AnyCast<int>(&value));
assertTrue (value.type() == typeid(void));
}
void AnyTest::testConvertingCtor()
{
std::string text = "test message";
Any value = text;
assertTrue (!value.empty());
assertTrue (value.type() == typeid(std::string));
assertTrue (0 == AnyCast<int>(&value));
assertTrue (0 != AnyCast<std::string>(&value));
assertTrue (AnyCast<std::string>(value) == text);
assertTrue (AnyCast<std::string>(&value) != &text);
}
void AnyTest::testCopyCtor()
{
std::string text = "test message";
Any original = text, copy = original;
assertTrue (!copy.empty());
assertTrue (original.type() == copy.type());
assertTrue (AnyCast<std::string>(original) == AnyCast<std::string>(copy));
assertTrue (text == AnyCast<std::string>(copy));
assertTrue (AnyCast<std::string>(&original) != AnyCast<std::string>(&copy));
}
void AnyTest::testCopyAssign()
{
std::string text = "test message";
Any original = text, copy;
Any* assignResult = &(copy = original);
assertTrue (!copy.empty());
assertTrue (original.type() == copy.type());
assertTrue (AnyCast<std::string>(original) == AnyCast<std::string>(copy));
assertTrue (text == AnyCast<std::string>(copy));
assertTrue (AnyCast<std::string>(&original) != AnyCast<std::string>(&copy));
assertTrue (assignResult == &copy);
// test self assignment
Any& ref = original;
original = ref;
assertTrue (AnyCast<std::string>(original) == AnyCast<std::string>(copy));
original = original;
assertTrue (AnyCast<std::string>(original) == AnyCast<std::string>(copy));
}
void AnyTest::testConvertingAssign()
{
std::string text = "test message";
Any value;
Any* assignResult = &(value = text);
assertTrue (!value.empty());
assertTrue (value.type() == typeid(std::string));
assertTrue (0 == AnyCast<int>(&value));
assertTrue (0 != AnyCast<std::string>(&value));
assertTrue (AnyCast<std::string>(value) == text);
assertTrue (AnyCast<std::string>(&value) != &text);
assertTrue (assignResult == &value);
}
void AnyTest::testCastToReference()
{
Any a(137);
const Any b(a);
int& ra = AnyCast<int &>(a);
int const& ra_c = AnyCast<int const &>(a);
int volatile& ra_v = AnyCast<int volatile &>(a);
int const volatile& ra_cv = AnyCast<int const volatile&>(a);
// cv references to same obj
assertTrue (&ra == &ra_c && &ra == &ra_v && &ra == &ra_cv);
int const & rb_c = AnyCast<int const &>(b);
int const volatile & rb_cv = AnyCast<int const volatile &>(b);
assertTrue (&rb_c == &rb_cv); // cv references to copied const obj
assertTrue (&ra != &rb_c); // copies hold different objects
++ra;
int incremented = AnyCast<int>(a);
assertTrue (incremented == 138); // increment by reference changes value
try
{
AnyCast<char &>(a);
failmsg ("AnyCast to incorrect reference type");
}
catch (BadCastException&) { }
try
{
AnyCast<const char &>(b),
failmsg ("AnyCast to incorrect const reference type");
}
catch (BadCastException&) { }
}
void AnyTest::testBadCast()
{
std::string text = "test message";
Any value = text;
try
{
AnyCast<const char *>(value);
fail ("must throw");
}
catch (BadCastException&) { }
}
void AnyTest::testSwap()
{
std::string text = "test message";
Any original = text, swapped;
std::string* originalPtr = AnyCast<std::string>(&original);
Any* swapResult = &original.swap(swapped);
assertTrue (original.empty());
assertTrue (!swapped.empty());
assertTrue (swapped.type() == typeid(std::string));
assertTrue (text == AnyCast<std::string>(swapped));
assertTrue (0 != originalPtr);
#ifdef POCO_NO_SOO // pointers only match when heap-allocated
assertTrue (originalPtr == AnyCast<std::string>(&swapped));
#endif
assertTrue (swapResult == &original);
}
void AnyTest::testEmptyCopy()
{
const Any null;
Any copied = null, assigned;
assigned = null;
assertTrue (null.empty());
assertTrue (copied.empty());
assertTrue (assigned.empty());
}
void AnyTest::testInt()
{
Any e;
assertTrue (e.empty());
Any a = 13;
assertTrue (a.type() == typeid(int));
int* i = AnyCast<int>(&a);
assertTrue (*i == 13);
Any b = a;
assertTrue (b.type() == typeid(int));
int *cpyI = AnyCast<int>(&b);
assertTrue (*cpyI == *i);
*cpyI = 20;
assertTrue (*cpyI != *i);
std::string* s = AnyCast<std::string>(&a);
assertTrue (s == NULL);
int POCO_UNUSED tmp = AnyCast<int>(a);
const Any c = a;
tmp = AnyCast<int>(a);
}
void AnyTest::testComplexType()
{
SomeClass str(13,std::string("hello"));
Any a = str;
Any b = a;
assertTrue (a.type() == typeid(SomeClass));
assertTrue (b.type() == typeid(SomeClass));
SomeClass str2 = AnyCast<SomeClass>(a);
assertTrue (str == str2);
const SomeClass& strCRef = RefAnyCast<SomeClass>(a);
assertTrue (str == strCRef);
SomeClass& strRef = RefAnyCast<SomeClass>(a);
assertTrue (str == strRef);
}
void AnyTest::testVector()
{
std::vector<int> tmp;
tmp.push_back(1);
tmp.push_back(2);
tmp.push_back(3);
Any a = tmp;
assertTrue (a.type() == typeid(std::vector<int>));
std::vector<int> tmp2 = AnyCast<std::vector<int> >(a);
assertTrue (tmp2.size() == 3);
const std::vector<int>& vecCRef = RefAnyCast<std::vector<int> >(a);
std::vector<int>& vecRef = RefAnyCast<std::vector<int> >(a);
assertTrue (vecRef[0] == 1);
assertTrue (vecRef[1] == 2);
assertTrue (vecRef[2] == 3);
vecRef[0] = 0;
assertTrue (vecRef[0] == vecCRef[0]);
}
void AnyTest::setUp()
{
}
void AnyTest::tearDown()
{
}
CppUnit::Test* AnyTest::suite()
{
CppUnit::TestSuite* pSuite = new CppUnit::TestSuite("AnyTest");
CppUnit_addTest(pSuite, AnyTest, testConvertingCtor);
CppUnit_addTest(pSuite, AnyTest, testDefaultCtor);
CppUnit_addTest(pSuite, AnyTest, testCopyCtor);
CppUnit_addTest(pSuite, AnyTest, testCopyAssign);
CppUnit_addTest(pSuite, AnyTest, testConvertingAssign);
CppUnit_addTest(pSuite, AnyTest, testBadCast);
CppUnit_addTest(pSuite, AnyTest, testSwap);
CppUnit_addTest(pSuite, AnyTest, testEmptyCopy);
CppUnit_addTest(pSuite, AnyTest, testCastToReference);
CppUnit_addTest(pSuite, AnyTest, testInt);
CppUnit_addTest(pSuite, AnyTest, testComplexType);
CppUnit_addTest(pSuite, AnyTest, testVector);
return pSuite;
}

View File

@@ -0,0 +1,46 @@
//
// AnyTest.h
//
// Tests for Any types
//
// Copyright (c) 2006, Applied Informatics Software Engineering GmbH.
// and Contributors.
//
// SPDX-License-Identifier: BSL-1.0
//
#ifndef AnyTest_INCLUDED
#define AnyTest_INCLUDED
#include "Poco/Foundation.h"
#include "CppUnit/TestCase.h"
class AnyTest: public CppUnit::TestCase
{
public:
AnyTest(const std::string& name);
~AnyTest();
void testConvertingCtor();
void testDefaultCtor();
void testCopyCtor();
void testCopyAssign();
void testConvertingAssign();
void testBadCast();
void testSwap();
void testEmptyCopy();
void testCastToReference();
void testInt();
void testComplexType();
void testVector();
void setUp();
void tearDown();
static CppUnit::Test* suite();
};
#endif // AnyTest_INCLUDED

View File

@@ -0,0 +1,231 @@
//
// ArrayTest.cpp
//
// Copyright (c) 2004-2006, Applied Informatics Software Engineering GmbH.
// and Contributors.
//
// SPDX-License-Identifier: BSL-1.0
//
#include "ArrayTest.h"
#include "CppUnit/TestCaller.h"
#include "CppUnit/TestSuite.h"
#include "Poco/Array.h"
#include <vector>
#include <algorithm>
#include <functional>
ArrayTest::ArrayTest(const std::string& name): CppUnit::TestCase(name)
{
}
ArrayTest::~ArrayTest()
{
}
struct Element
{
int _data;
};
void ArrayTest::testConstruction()
{
// fundamental type
typedef Poco::Array<float,6> FloatArray;
FloatArray a = { { 42.f } };
for (unsigned i=1; i<a.size(); ++i) {
a[i] = a[i-1]+1.f;
}
// copy constructor and assignment operator
FloatArray b(a);
FloatArray c;
c = a;
assertTrue (a==b && a==c);
typedef Poco::Array<double,6> DArray;
typedef Poco::Array<int,6> IArray;
IArray ia = {{1, 2, 3, 4, 5, 6 }};
DArray da;
da = ia;
da.assign(42);
// user-defined type
typedef Poco::Array<Element,10> ElementArray;
ElementArray g;
for (unsigned i=0; i<g.size(); ++i) {
g[i]._data = i;
}
for (unsigned i=0; i<g.size(); ++i) {
assertTrue (g[i]._data == i);
}
}
void ArrayTest::testOperations()
{
const int SIZE = 6;
typedef Poco::Array<int,SIZE> Array;
Array a = { { 1 } };
// use some common STL container operations
assertTrue (a.size() == SIZE);
assertTrue (a.max_size() == SIZE);
assertTrue (a.empty() == false);
assertTrue (a.front() == a[0]);
assertTrue (a.back() == a[a.size()-1]);
//assertTrue (a.data() == &a[0]);
// assign
a.assign(100);
for(int i = 0; i<a.size(); i++){
assertTrue (a[i] == 100);
}
// swap
Array b;
b.assign(10);
for(int i=0; i<SIZE; i++){
assertTrue (a[i] == 100);
assertTrue (b[i] == 10);
}
a.swap(b);
for(int i=0; i<SIZE; i++){
assertTrue (a[i] == 10);
assertTrue (b[i] == 100);
}
}
void ArrayTest::testContainer()
{
const int SIZE = 2;
typedef Poco::Array<int,SIZE> Array;
Array a = {{1, 2}};
assertTrue (a[0] == 1);
assertTrue (a[1] == 2);
typedef std::vector<Array> ArrayVec;
ArrayVec container;
container.push_back(a);
container.push_back(a);
assertTrue (container[0][0] == 1);
assertTrue (container[0][1] == 2);
assertTrue (container[1][0] == 1);
assertTrue (container[1][1] == 2);
}
void ArrayTest::testIterator()
{
// create array of four seasons
Poco::Array<std::string,4> seasons = {
{ "spring", "summer", "autumn", "winter" }
};
// copy and change order
Poco::Array<std::string,4> org = seasons;
for (size_t i=seasons.size()-1; i>0; --i) {
swap(seasons.at(i),seasons.at((i+1)%seasons.size()));
}
// try swap()
swap(seasons,org);
// try reverse iterators
for (Poco::Array<std::string,4>::reverse_iterator pos
=seasons.rbegin(); pos<seasons.rend(); ++pos) {
}
}
void ArrayTest::testAlgorithm()
{
// create and initialize array
const int SIZE = 10;
typedef Poco::Array<int,SIZE> IArray;
IArray a = { { 1, 2, 3, 4, 5 } };
IArray b(a);
// modify elements directly
for (unsigned i=0; i<b.size(); ++i) {
++b[i];
}
// try iterators
for (IArray::iterator pos =b.begin(); pos<b.end(); ++pos) {
--(*pos);
}
for (unsigned i=0; i<a.size(); ++i) {
assertTrue (a[i] == b[i]);
}
// change order using an STL algorithm
std::reverse(a.begin(),a.end());
for (unsigned i=0; i<a.size(); ++i) {
assertTrue (a[SIZE-i-1] == b[i]);
}
std::reverse(a.begin(),a.end());
// negate elements using STL framework
std::transform( a.begin(),a.end(), // source
a.begin(), // destination
std::negate<int>()); // operation
for (unsigned i=0; i<a.size(); ++i) {
assertTrue (a[i] == -b[i]);
}
}
void ArrayTest::testMultiLevelArray()
{
const int SIZE = 2;
typedef Poco::Array<int,SIZE> IArray;
typedef Poco::Array<IArray,SIZE> MultiArray;
MultiArray a;
a[0][0] = 1;
a[0][1] = 2;
a[1][0] = 3;
a[1][1] = 4;
MultiArray b = a;
assertTrue (b[0][0] == 1);
assertTrue (b[0][1] == 2);
assertTrue (b[1][0] == 3);
assertTrue (b[1][1] == 4);
}
void ArrayTest::setUp()
{
}
void ArrayTest::tearDown()
{
}
CppUnit::Test* ArrayTest::suite()
{
CppUnit::TestSuite* pSuite = new CppUnit::TestSuite("ArrayTest");
CppUnit_addTest(pSuite, ArrayTest, testConstruction);
CppUnit_addTest(pSuite, ArrayTest, testOperations);
CppUnit_addTest(pSuite, ArrayTest, testContainer);
CppUnit_addTest(pSuite, ArrayTest, testIterator);
CppUnit_addTest(pSuite, ArrayTest, testAlgorithm);
CppUnit_addTest(pSuite, ArrayTest, testMultiLevelArray);
return pSuite;
}

View File

@@ -0,0 +1,44 @@
//
// ArrayTest.h
//
// Definition of the ArrayTest class.
//
// Copyright (c) 2004-2006, Applied Informatics Software Engineering GmbH.
// and Contributors.
//
// SPDX-License-Identifier: BSL-1.0
//
#ifndef ArrayTest_INCLUDED
#define ArrayTest_INCLUDED
#include "Poco/Foundation.h"
#include "CppUnit/TestCase.h"
class ArrayTest: public CppUnit::TestCase
{
public:
ArrayTest(const std::string& name);
~ArrayTest();
void testConstruction();
void testOperations();
void testContainer();
void testIterator();
void testAlgorithm();
void testMultiLevelArray();
void setUp();
void tearDown();
static CppUnit::Test* suite();
private:
};
#endif // ArrayTest_INCLUDED

View File

@@ -0,0 +1,220 @@
//
// AutoPtrTest.cpp
//
// Copyright (c) 2004-2006, Applied Informatics Software Engineering GmbH.
// and Contributors.
//
// SPDX-License-Identifier: BSL-1.0
//
#include "AutoPtrTest.h"
#include "CppUnit/TestCaller.h"
#include "CppUnit/TestSuite.h"
#include "Poco/AutoPtr.h"
#include "Poco/Exception.h"
using Poco::AutoPtr;
using Poco::makeAuto;
using Poco::NullPointerException;
namespace
{
class TestObj
{
public:
TestObj(): _rc(1)
{
++_count;
}
explicit TestObj(int value): _rc(1)
{
}
TestObj(int value1, const std::string& value2): _rc(1)
{
}
void duplicate()
{
++_rc;
}
void release()
{
if (--_rc == 0)
delete this;
}
int rc() const
{
return _rc;
}
static int count()
{
return _count;
}
protected:
~TestObj()
{
--_count;
}
private:
int _rc;
static int _count;
};
int TestObj::_count = 0;
}
AutoPtrTest::AutoPtrTest(const std::string& name): CppUnit::TestCase(name)
{
}
AutoPtrTest::~AutoPtrTest()
{
}
void AutoPtrTest::testAutoPtr()
{
{
AutoPtr<TestObj> ptr = new TestObj;
assertTrue (ptr->rc() == 1);
AutoPtr<TestObj> ptr2 = ptr;
assertTrue (ptr->rc() == 2);
ptr2 = new TestObj;
assertTrue (ptr->rc() == 1);
AutoPtr<TestObj> ptr3;
ptr3 = ptr2;
assertTrue (ptr2->rc() == 2);
ptr3 = new TestObj;
assertTrue (ptr2->rc() == 1);
ptr3 = ptr2;
assertTrue (ptr2->rc() == 2);
assertTrue (TestObj::count() > 0);
AutoPtr<TestObj> ptr4 = std::move(ptr);
assertTrue (ptr4->rc() == 1);
assertTrue (ptr.isNull());
ptr3 = std::move(ptr4);
assertTrue (ptr4.isNull());
assertTrue (ptr3->rc() == 1);
}
assertTrue (TestObj::count() == 0);
}
void AutoPtrTest::testOps()
{
AutoPtr<TestObj> ptr1;
assertNull(ptr1.get());
TestObj* pTO1 = new TestObj;
TestObj* pTO2 = new TestObj;
if (pTO2 < pTO1)
{
TestObj* pTmp = pTO1;
pTO1 = pTO2;
pTO2 = pTmp;
}
assertTrue (pTO1 < pTO2);
ptr1 = pTO1;
AutoPtr<TestObj> ptr2 = pTO2;
AutoPtr<TestObj> ptr3 = ptr1;
AutoPtr<TestObj> ptr4;
assertTrue (ptr1.get() == pTO1);
assertTrue (ptr1 == pTO1);
assertTrue (ptr2.get() == pTO2);
assertTrue (ptr2 == pTO2);
assertTrue (ptr3.get() == pTO1);
assertTrue (ptr3 == pTO1);
assertTrue (ptr1 == pTO1);
assertTrue (ptr1 != pTO2);
assertTrue (ptr1 < pTO2);
assertTrue (ptr1 <= pTO2);
assertTrue (ptr2 > pTO1);
assertTrue (ptr2 >= pTO1);
assertTrue (ptr1 == ptr3);
assertTrue (ptr1 != ptr2);
assertTrue (ptr1 < ptr2);
assertTrue (ptr1 <= ptr2);
assertTrue (ptr2 > ptr1);
assertTrue (ptr2 >= ptr1);
ptr1 = pTO1;
ptr2 = pTO2;
ptr1.swap(ptr2);
assertTrue (ptr2.get() == pTO1);
assertTrue (ptr1.get() == pTO2);
try
{
assertTrue (ptr4->rc() > 0);
fail ("must throw NullPointerException");
}
catch (NullPointerException&)
{
}
assertTrue (!(ptr4 == ptr1));
assertTrue (!(ptr4 == ptr2));
assertTrue (ptr4 != ptr1);
assertTrue (ptr4 != ptr2);
ptr4 = ptr2;
assertTrue (ptr4 == ptr2);
assertTrue (!(ptr4 != ptr2));
assertTrue (!(!ptr1));
ptr1 = 0;
assertTrue (!ptr1);
assertTrue (ptr1 == nullptr);
assertTrue (ptr2 != nullptr);
}
void AutoPtrTest::testMakeAuto()
{
AutoPtr<TestObj> ptr = makeAuto<TestObj>();
assertTrue (ptr->rc() == 1);
ptr = makeAuto<TestObj>(42);
assertTrue (ptr->rc() == 1);
ptr = makeAuto<TestObj>(42, "fortytwo");
assertTrue (ptr->rc() == 1);
}
void AutoPtrTest::setUp()
{
}
void AutoPtrTest::tearDown()
{
}
CppUnit::Test* AutoPtrTest::suite()
{
CppUnit::TestSuite* pSuite = new CppUnit::TestSuite("AutoPtrTest");
CppUnit_addTest(pSuite, AutoPtrTest, testAutoPtr);
CppUnit_addTest(pSuite, AutoPtrTest, testOps);
CppUnit_addTest(pSuite, AutoPtrTest, testMakeAuto);
return pSuite;
}

View File

@@ -0,0 +1,40 @@
//
// AutoPtrTest.h
//
// Definition of the AutoPtrTest class.
//
// Copyright (c) 2004-2006, Applied Informatics Software Engineering GmbH.
// and Contributors.
//
// SPDX-License-Identifier: BSL-1.0
//
#ifndef AutoPtrTest_INCLUDED
#define AutoPtrTest_INCLUDED
#include "Poco/Foundation.h"
#include "CppUnit/TestCase.h"
class AutoPtrTest: public CppUnit::TestCase
{
public:
AutoPtrTest(const std::string& name);
~AutoPtrTest();
void testAutoPtr();
void testOps();
void testMakeAuto();
void setUp();
void tearDown();
static CppUnit::Test* suite();
private:
};
#endif // AutoPtrTest_INCLUDED

View File

@@ -0,0 +1,104 @@
//
// AutoReleasePoolTest.cpp
//
// Copyright (c) 2004-2006, Applied Informatics Software Engineering GmbH.
// and Contributors.
//
// SPDX-License-Identifier: BSL-1.0
//
#include "AutoReleasePoolTest.h"
#include "CppUnit/TestCaller.h"
#include "CppUnit/TestSuite.h"
#include "Poco/AutoReleasePool.h"
using Poco::AutoReleasePool;
namespace
{
class TestObj
{
public:
TestObj(): _rc(1)
{
++_count;
}
void duplicate()
{
++_rc;
}
void release()
{
if (--_rc == 0)
delete this;
}
int rc() const
{
return _rc;
}
static int count()
{
return _count;
}
protected:
~TestObj()
{
--_count;
}
private:
int _rc;
static int _count;
};
int TestObj::_count = 0;
}
AutoReleasePoolTest::AutoReleasePoolTest(const std::string& name): CppUnit::TestCase(name)
{
}
AutoReleasePoolTest::~AutoReleasePoolTest()
{
}
void AutoReleasePoolTest::testAutoReleasePool()
{
AutoReleasePool<TestObj> arp;
arp.add(new TestObj);
arp.add(new TestObj);
assertTrue (TestObj::count() == 2);
arp.release();
assertTrue (TestObj::count() == 0);
}
void AutoReleasePoolTest::setUp()
{
}
void AutoReleasePoolTest::tearDown()
{
}
CppUnit::Test* AutoReleasePoolTest::suite()
{
CppUnit::TestSuite* pSuite = new CppUnit::TestSuite("AutoReleasePoolTest");
CppUnit_addTest(pSuite, AutoReleasePoolTest, testAutoReleasePool);
return pSuite;
}

View File

@@ -0,0 +1,38 @@
//
// AutoReleasePoolTest.h
//
// Definition of the AutoReleasePoolTest class.
//
// Copyright (c) 2004-2006, Applied Informatics Software Engineering GmbH.
// and Contributors.
//
// SPDX-License-Identifier: BSL-1.0
//
#ifndef AutoReleasePoolTest_INCLUDED
#define AutoReleasePoolTest_INCLUDED
#include "Poco/Foundation.h"
#include "CppUnit/TestCase.h"
class AutoReleasePoolTest: public CppUnit::TestCase
{
public:
AutoReleasePoolTest(const std::string& name);
~AutoReleasePoolTest();
void testAutoReleasePool();
void setUp();
void tearDown();
static CppUnit::Test* suite();
private:
};
#endif // AutoReleasePoolTest_INCLUDED

View File

@@ -0,0 +1,182 @@
//
// Base32Test.cpp
//
// Copyright (c) 2004-2006, Applied Informatics Software Engineering GmbH.
// and Contributors.
//
// SPDX-License-Identifier: BSL-1.0
//
#include "Base32Test.h"
#include "CppUnit/TestCaller.h"
#include "CppUnit/TestSuite.h"
#include "Poco/Base32Encoder.h"
#include "Poco/Base32Decoder.h"
#include "Poco/Exception.h"
#include <sstream>
using Poco::Base32Encoder;
using Poco::Base32Decoder;
using Poco::DataFormatException;
Base32Test::Base32Test(const std::string& name): CppUnit::TestCase(name)
{
}
Base32Test::~Base32Test()
{
}
void Base32Test::testEncoder()
{
{
std::ostringstream str;
Base32Encoder encoder(str);
encoder << std::string("\00\01\02\03\04\05", 6);
encoder.close();
assertTrue (str.str() == "AAAQEAYEAU======");
}
{
std::ostringstream str;
Base32Encoder encoder(str);
encoder << std::string("\00\01\02\03", 4);
encoder.close();
assertTrue (str.str() == "AAAQEAY=");
}
{
std::ostringstream str;
Base32Encoder encoder(str, false);
encoder << "ABCDEF";
encoder.close();
assertTrue (str.str() == "IFBEGRCFIY");
}
{
std::ostringstream str;
Base32Encoder encoder(str);
encoder << "ABCDEF";
encoder.close();
assertTrue (str.str() == "IFBEGRCFIY======");
}
{
std::ostringstream str;
Base32Encoder encoder(str);
encoder << "ABCDE";
encoder.close();
assertTrue (str.str() == "IFBEGRCF");
}
}
void Base32Test::testDecoder()
{
{
std::istringstream istr("AAAQEAYEAU======");
Base32Decoder decoder(istr);
assertTrue (decoder.good() && decoder.get() == 0);
assertTrue (decoder.good() && decoder.get() == 1);
assertTrue (decoder.good() && decoder.get() == 2);
assertTrue (decoder.good() && decoder.get() == 3);
assertTrue (decoder.good() && decoder.get() == 4);
assertTrue (decoder.good() && decoder.get() == 5);
assertTrue (decoder.good() && decoder.get() == -1);
}
{
std::istringstream istr("AAAQEAYE");
Base32Decoder decoder(istr);
assertTrue (decoder.good() && decoder.get() == 0);
assertTrue (decoder.good() && decoder.get() == 1);
assertTrue (decoder.good() && decoder.get() == 2);
assertTrue (decoder.good() && decoder.get() == 3);
assertTrue (decoder.good() && decoder.get() == 4);
assertTrue (decoder.good() && decoder.get() == -1);
}
{
std::istringstream istr("AAAQEAY=");
Base32Decoder decoder(istr);
assertTrue (decoder.good() && decoder.get() == 0);
assertTrue (decoder.good() && decoder.get() == 1);
assertTrue (decoder.good() && decoder.get() == 2);
assertTrue (decoder.good() && decoder.get() == 3);
assertTrue (decoder.good() && decoder.get() == -1);
}
{
std::istringstream istr("IFBEGRCFIY======");
Base32Decoder decoder(istr);
std::string s;
decoder >> s;
assertTrue (s == "ABCDEF");
assertTrue (decoder.eof());
assertTrue (!decoder.fail());
}
{
std::istringstream istr("QUJD#REVG");
Base32Decoder decoder(istr);
std::string s;
try
{
decoder >> s;
assertTrue (decoder.bad());
}
catch (DataFormatException&)
{
}
assertTrue (!decoder.eof());
}
}
void Base32Test::testEncodeDecode()
{
{
std::stringstream str;
Base32Encoder encoder(str);
encoder << "The quick brown fox ";
encoder << "jumped over the lazy dog.";
encoder.close();
Base32Decoder decoder(str);
std::string s;
int c = decoder.get();
while (c != -1) { s += char(c); c = decoder.get(); }
assertTrue (s == "The quick brown fox jumped over the lazy dog.");
}
{
std::string src;
for (int i = 0; i < 255; ++i) src += char(i);
std::stringstream str;
Base32Encoder encoder(str);
encoder.write(src.data(), (std::streamsize) src.size());
encoder.close();
Base32Decoder decoder(str);
std::string s;
int c = decoder.get();
while (c != -1) { s += char(c); c = decoder.get(); }
assertTrue (s == src);
}
}
void Base32Test::setUp()
{
}
void Base32Test::tearDown()
{
}
CppUnit::Test* Base32Test::suite()
{
CppUnit::TestSuite* pSuite = new CppUnit::TestSuite("Base32Test");
CppUnit_addTest(pSuite, Base32Test, testEncoder);
CppUnit_addTest(pSuite, Base32Test, testDecoder);
CppUnit_addTest(pSuite, Base32Test, testEncodeDecode);
return pSuite;
}

View File

@@ -0,0 +1,40 @@
//
// Base32Test.h
//
// Definition of the Base32Test class.
//
// Copyright (c) 2004-2006, Applied Informatics Software Engineering GmbH.
// and Contributors.
//
// SPDX-License-Identifier: BSL-1.0
//
#ifndef Base32Test_INCLUDED
#define Base32Test_INCLUDED
#include "Poco/Foundation.h"
#include "CppUnit/TestCase.h"
class Base32Test: public CppUnit::TestCase
{
public:
Base32Test(const std::string& name);
~Base32Test();
void testEncoder();
void testDecoder();
void testEncodeDecode();
void setUp();
void tearDown();
static CppUnit::Test* suite();
private:
};
#endif // Base32Test_INCLUDED

View File

@@ -0,0 +1,369 @@
//
// Base64Test.cpp
//
// Copyright (c) 2004-2006, Applied Informatics Software Engineering GmbH.
// and Contributors.
//
// SPDX-License-Identifier: BSL-1.0
//
#include "Base64Test.h"
#include "CppUnit/TestCaller.h"
#include "CppUnit/TestSuite.h"
#include "Poco/Base64Encoder.h"
#include "Poco/Base64Decoder.h"
#include "Poco/Exception.h"
#include <sstream>
using Poco::Base64Encoder;
using Poco::Base64Decoder;
using Poco::DataFormatException;
Base64Test::Base64Test(const std::string& name): CppUnit::TestCase(name)
{
}
Base64Test::~Base64Test()
{
}
void Base64Test::testEncoder()
{
{
std::ostringstream str;
Base64Encoder encoder(str);
encoder << std::string("\00\01\02\03\04\05", 6);
encoder.close();
assertTrue (str.str() == "AAECAwQF");
}
{
std::ostringstream str;
Base64Encoder encoder(str);
encoder << std::string("\00\01\02\03", 4);
encoder.close();
assertTrue (str.str() == "AAECAw==");
}
{
std::ostringstream str;
Base64Encoder encoder(str);
encoder << "ABCDEF";
encoder.close();
assertTrue (str.str() == "QUJDREVG");
}
{
std::ostringstream str;
Base64Encoder encoder(str);
encoder << "!@#$%^&*()_~<>";
encoder.close();
assertTrue (str.str() == "IUAjJCVeJiooKV9+PD4=");
}
}
void Base64Test::testEncoderURL()
{
{
std::ostringstream str;
Base64Encoder encoder(str, Poco::BASE64_URL_ENCODING);
encoder << std::string("\00\01\02\03\04\05", 6);
encoder.close();
assertTrue (str.str() == "AAECAwQF");
}
{
std::ostringstream str;
Base64Encoder encoder(str, Poco::BASE64_URL_ENCODING);
encoder << std::string("\00\01\02\03", 4);
encoder.close();
assertTrue (str.str() == "AAECAw==");
}
{
std::ostringstream str;
Base64Encoder encoder(str, Poco::BASE64_URL_ENCODING);
encoder << "ABCDEF";
encoder.close();
assertTrue (str.str() == "QUJDREVG");
}
{
std::ostringstream str;
Base64Encoder encoder(str, Poco::BASE64_URL_ENCODING);
encoder << "!@#$%^&*()_~<>";
encoder.close();
assertTrue (str.str() == "IUAjJCVeJiooKV9-PD4=");
}
}
void Base64Test::testEncoderNoPadding()
{
{
std::ostringstream str;
Base64Encoder encoder(str, Poco::BASE64_URL_ENCODING | Poco::BASE64_NO_PADDING);
encoder << std::string("\00\01\02\03\04\05", 6);
encoder.close();
assertTrue (str.str() == "AAECAwQF");
}
{
std::ostringstream str;
Base64Encoder encoder(str, Poco::BASE64_URL_ENCODING | Poco::BASE64_NO_PADDING);
encoder << std::string("\00\01\02\03", 4);
encoder.close();
assertTrue (str.str() == "AAECAw");
}
{
std::ostringstream str;
Base64Encoder encoder(str, Poco::BASE64_URL_ENCODING | Poco::BASE64_NO_PADDING);
encoder << "ABCDEF";
encoder.close();
assertTrue (str.str() == "QUJDREVG");
}
{
std::ostringstream str;
Base64Encoder encoder(str, Poco::BASE64_URL_ENCODING | Poco::BASE64_NO_PADDING);
encoder << "!@#$%^&*()_~<>";
encoder.close();
assertTrue (str.str() == "IUAjJCVeJiooKV9-PD4");
}
}
void Base64Test::testDecoder()
{
{
std::istringstream istr("AAECAwQF");
Base64Decoder decoder(istr);
assertTrue (decoder.good() && decoder.get() == 0);
assertTrue (decoder.good() && decoder.get() == 1);
assertTrue (decoder.good() && decoder.get() == 2);
assertTrue (decoder.good() && decoder.get() == 3);
assertTrue (decoder.good() && decoder.get() == 4);
assertTrue (decoder.good() && decoder.get() == 5);
assertTrue (decoder.good() && decoder.get() == -1);
}
{
std::istringstream istr("AAECAwQ=");
Base64Decoder decoder(istr);
assertTrue (decoder.good() && decoder.get() == 0);
assertTrue (decoder.good() && decoder.get() == 1);
assertTrue (decoder.good() && decoder.get() == 2);
assertTrue (decoder.good() && decoder.get() == 3);
assertTrue (decoder.good() && decoder.get() == 4);
assertTrue (decoder.good() && decoder.get() == -1);
}
{
std::istringstream istr("AAECAw==");
Base64Decoder decoder(istr);
assertTrue (decoder.good() && decoder.get() == 0);
assertTrue (decoder.good() && decoder.get() == 1);
assertTrue (decoder.good() && decoder.get() == 2);
assertTrue (decoder.good() && decoder.get() == 3);
assertTrue (decoder.good() && decoder.get() == -1);
}
{
std::istringstream istr("QUJDREVG");
Base64Decoder decoder(istr);
std::string s;
decoder >> s;
assertTrue (s == "ABCDEF");
assertTrue (decoder.eof());
assertTrue (!decoder.fail());
}
{
std::istringstream istr("QUJ\r\nDRE\r\nVG");
Base64Decoder decoder(istr);
std::string s;
decoder >> s;
assertTrue (s == "ABCDEF");
assertTrue (decoder.eof());
assertTrue (!decoder.fail());
}
{
std::istringstream istr("QUJD#REVG");
Base64Decoder decoder(istr);
std::string s;
try
{
decoder >> s;
assertTrue (decoder.bad());
}
catch (DataFormatException&)
{
}
assertTrue (!decoder.eof());
}
}
void Base64Test::testDecoderURL()
{
{
std::istringstream istr("AAECAwQF");
Base64Decoder decoder(istr, Poco::BASE64_URL_ENCODING);
assertTrue (decoder.good() && decoder.get() == 0);
assertTrue (decoder.good() && decoder.get() == 1);
assertTrue (decoder.good() && decoder.get() == 2);
assertTrue (decoder.good() && decoder.get() == 3);
assertTrue (decoder.good() && decoder.get() == 4);
assertTrue (decoder.good() && decoder.get() == 5);
assertTrue (decoder.good() && decoder.get() == -1);
}
{
std::istringstream istr("AAECAwQ=");
Base64Decoder decoder(istr, Poco::BASE64_URL_ENCODING);
assertTrue (decoder.good() && decoder.get() == 0);
assertTrue (decoder.good() && decoder.get() == 1);
assertTrue (decoder.good() && decoder.get() == 2);
assertTrue (decoder.good() && decoder.get() == 3);
assertTrue (decoder.good() && decoder.get() == 4);
assertTrue (decoder.good() && decoder.get() == -1);
}
{
std::istringstream istr("AAECAw==");
Base64Decoder decoder(istr, Poco::BASE64_URL_ENCODING);
assertTrue (decoder.good() && decoder.get() == 0);
assertTrue (decoder.good() && decoder.get() == 1);
assertTrue (decoder.good() && decoder.get() == 2);
assertTrue (decoder.good() && decoder.get() == 3);
assertTrue (decoder.good() && decoder.get() == -1);
}
{
std::istringstream istr("QUJDREVG");
Base64Decoder decoder(istr, Poco::BASE64_URL_ENCODING);
std::string s;
decoder >> s;
assertTrue (s == "ABCDEF");
assertTrue (decoder.eof());
assertTrue (!decoder.fail());
}
{
std::istringstream istr("QUJ\r\nDRE\r\nVG");
Base64Decoder decoder(istr, Poco::BASE64_URL_ENCODING);
try
{
std::string s;
decoder >> s;
assertTrue (decoder.bad());
}
catch (DataFormatException&)
{
}
}
{
std::istringstream istr("QUJD#REVG");
Base64Decoder decoder(istr, Poco::BASE64_URL_ENCODING);
std::string s;
try
{
decoder >> s;
assertTrue (decoder.bad());
}
catch (DataFormatException&)
{
}
assertTrue (!decoder.eof());
}
{
std::istringstream istr("IUAjJCVeJiooKV9-PD4=");
Base64Decoder decoder(istr, Poco::BASE64_URL_ENCODING);
std::string s;
decoder >> s;
assertTrue (s == "!@#$%^&*()_~<>");
assertTrue (decoder.eof());
assertTrue (!decoder.fail());
}
}
void Base64Test::testDecoderNoPadding()
{
{
std::istringstream istr("AAECAwQF");
Base64Decoder decoder(istr, Poco::BASE64_NO_PADDING);
assertTrue (decoder.good() && decoder.get() == 0);
assertTrue (decoder.good() && decoder.get() == 1);
assertTrue (decoder.good() && decoder.get() == 2);
assertTrue (decoder.good() && decoder.get() == 3);
assertTrue (decoder.good() && decoder.get() == 4);
assertTrue (decoder.good() && decoder.get() == 5);
assertTrue (decoder.good() && decoder.get() == -1);
}
{
std::istringstream istr("AAECAwQ");
Base64Decoder decoder(istr, Poco::BASE64_NO_PADDING);
assertTrue (decoder.good() && decoder.get() == 0);
assertTrue (decoder.good() && decoder.get() == 1);
assertTrue (decoder.good() && decoder.get() == 2);
assertTrue (decoder.good() && decoder.get() == 3);
assertTrue (decoder.good() && decoder.get() == 4);
assertTrue (decoder.good() && decoder.get() == -1);
}
{
std::istringstream istr("AAECAw");
Base64Decoder decoder(istr, Poco::BASE64_NO_PADDING);
assertTrue (decoder.good() && decoder.get() == 0);
assertTrue (decoder.good() && decoder.get() == 1);
assertTrue (decoder.good() && decoder.get() == 2);
assertTrue (decoder.good() && decoder.get() == 3);
assertTrue (decoder.good() && decoder.get() == -1);
}
}
void Base64Test::testEncodeDecode()
{
{
std::stringstream str;
Base64Encoder encoder(str);
encoder << "The quick brown fox ";
encoder << "jumped over the lazy dog.";
encoder.close();
Base64Decoder decoder(str);
std::string s;
int c = decoder.get();
while (c != -1) { s += char(c); c = decoder.get(); }
assertTrue (s == "The quick brown fox jumped over the lazy dog.");
}
{
std::string src;
for (int i = 0; i < 255; ++i) src += char(i);
std::stringstream str;
Base64Encoder encoder(str);
encoder.write(src.data(), (std::streamsize) src.size());
encoder.close();
Base64Decoder decoder(str);
std::string s;
int c = decoder.get();
while (c != -1) { s += char(c); c = decoder.get(); }
assertTrue (s == src);
}
}
void Base64Test::setUp()
{
}
void Base64Test::tearDown()
{
}
CppUnit::Test* Base64Test::suite()
{
CppUnit::TestSuite* pSuite = new CppUnit::TestSuite("Base64Test");
CppUnit_addTest(pSuite, Base64Test, testEncoder);
CppUnit_addTest(pSuite, Base64Test, testEncoderURL);
CppUnit_addTest(pSuite, Base64Test, testEncoderNoPadding);
CppUnit_addTest(pSuite, Base64Test, testDecoder);
CppUnit_addTest(pSuite, Base64Test, testDecoderURL);
CppUnit_addTest(pSuite, Base64Test, testDecoderNoPadding);
CppUnit_addTest(pSuite, Base64Test, testEncodeDecode);
return pSuite;
}

View File

@@ -0,0 +1,44 @@
//
// Base64Test.h
//
// Definition of the Base64Test class.
//
// Copyright (c) 2004-2006, Applied Informatics Software Engineering GmbH.
// and Contributors.
//
// SPDX-License-Identifier: BSL-1.0
//
#ifndef Base64Test_INCLUDED
#define Base64Test_INCLUDED
#include "Poco/Foundation.h"
#include "CppUnit/TestCase.h"
class Base64Test: public CppUnit::TestCase
{
public:
Base64Test(const std::string& name);
~Base64Test();
void testEncoder();
void testEncoderURL();
void testEncoderNoPadding();
void testDecoder();
void testDecoderURL();
void testDecoderNoPadding();
void testEncodeDecode();
void setUp();
void tearDown();
static CppUnit::Test* suite();
private:
};
#endif // Base64Test_INCLUDED

View File

@@ -0,0 +1,438 @@
//
// BasicEventTest.cpp
//
// Copyright (c) 2004-2006, Applied Informatics Software Engineering GmbH.
// and Contributors.
//
// SPDX-License-Identifier: BSL-1.0
//
#include "BasicEventTest.h"
#include "DummyDelegate.h"
#include "CppUnit/TestCaller.h"
#include "CppUnit/TestSuite.h"
#include "Poco/Expire.h"
#include "Poco/Delegate.h"
#include "Poco/FunctionDelegate.h"
#include "Poco/Thread.h"
#include "Poco/Exception.h"
using namespace Poco;
#define LARGEINC 100
BasicEventTest::BasicEventTest(const std::string& name): CppUnit::TestCase(name)
{
}
BasicEventTest::~BasicEventTest()
{
}
void BasicEventTest::testNoDelegate()
{
int tmp = 0;
EventArgs args;
assertTrue (_count == 0);
assertTrue (Void.empty());
Void.notify(this);
assertTrue (_count == 0);
Void += delegate(this, &BasicEventTest::onVoid);
assertTrue (!Void.empty());
Void -= delegate(this, &BasicEventTest::onVoid);
assertTrue (Void.empty());
Void.notify(this);
assertTrue (_count == 0);
assertTrue (Simple.empty());
Simple.notify(this, tmp);
assertTrue (_count == 0);
Simple += delegate(this, &BasicEventTest::onSimple);
assertTrue (!Simple.empty());
Simple -= delegate(this, &BasicEventTest::onSimple);
assertTrue (Simple.empty());
Simple.notify(this, tmp);
assertTrue (_count == 0);
Simple += delegate(this, &BasicEventTest::onSimpleNoSender);
Simple -= delegate(this, &BasicEventTest::onSimpleNoSender);
Simple.notify(this, tmp);
assertTrue (_count == 0);
ConstSimple += delegate(this, &BasicEventTest::onConstSimple);
ConstSimple -= delegate(this, &BasicEventTest::onConstSimple);
ConstSimple.notify(this, tmp);
assertTrue (_count == 0);
//Note: passing &args will not work due to &
EventArgs* pArgs = &args;
Complex += delegate(this, &BasicEventTest::onComplex);
Complex -= delegate(this, &BasicEventTest::onComplex);
Complex.notify(this, pArgs);
assertTrue (_count == 0);
Complex2 += delegate(this, &BasicEventTest::onComplex2);
Complex2 -= delegate(this, &BasicEventTest::onComplex2);
Complex2.notify(this, args);
assertTrue (_count == 0);
const EventArgs* pCArgs = &args;
ConstComplex += delegate(this, &BasicEventTest::onConstComplex);
ConstComplex -= delegate(this, &BasicEventTest::onConstComplex);
ConstComplex.notify(this, pCArgs);
assertTrue (_count == 0);
Const2Complex += delegate(this, &BasicEventTest::onConst2Complex);
Const2Complex -= delegate(this, &BasicEventTest::onConst2Complex);
Const2Complex.notify(this, pArgs);
assertTrue (_count == 0);
Simple += delegate(&BasicEventTest::onStaticSimple);
Simple += delegate(&BasicEventTest::onStaticSimple);
Simple += delegate(&BasicEventTest::onStaticSimple2);
Simple += delegate(&BasicEventTest::onStaticSimple3);
Simple.notify(this, tmp);
assertTrue (_count == 3);
Simple -= delegate(BasicEventTest::onStaticSimple);
Void += delegate(&BasicEventTest::onStaticVoid);
Void += delegate(&BasicEventTest::onStaticVoid);
Void.notify(this);
assertTrue (_count == 5);
Void -= delegate(BasicEventTest::onStaticVoid);
}
void BasicEventTest::testSingleDelegate()
{
int tmp = 0;
EventArgs args;
assertTrue (_count == 0);
Void += delegate(this, &BasicEventTest::onVoid);
Void.notify(this);
assertTrue (_count == 1);
Simple += delegate(this, &BasicEventTest::onSimple);
Simple.notify(this, tmp);
assertTrue (_count == 2);
ConstSimple += delegate(this, &BasicEventTest::onConstSimple);
ConstSimple.notify(this, tmp);
assertTrue (_count == 3);
EventArgs* pArgs = &args;
Complex += delegate(this, &BasicEventTest::onComplex);
Complex.notify(this, pArgs);
assertTrue (_count == 4);
Complex2 += delegate(this, &BasicEventTest::onComplex2);
Complex2.notify(this, args);
assertTrue (_count == 5);
const EventArgs* pCArgs = &args;
ConstComplex += delegate(this, &BasicEventTest::onConstComplex);
ConstComplex.notify(this, pCArgs);
assertTrue (_count == 6);
Const2Complex += delegate(this, &BasicEventTest::onConst2Complex);
Const2Complex.notify(this, pArgs);
assertTrue (_count == 7);
// check if 2nd notify also works
Const2Complex.notify(this, pArgs);
assertTrue (_count == 8);
}
void BasicEventTest::testDuplicateRegister()
{
int tmp = 0;
assertTrue (_count == 0);
Simple += delegate(this, &BasicEventTest::onSimple);
Simple += delegate(this, &BasicEventTest::onSimple);
Simple.notify(this, tmp);
assertTrue (_count == 2);
Simple -= delegate(this, &BasicEventTest::onSimple);
Simple.notify(this, tmp);
assertTrue (_count == 3);
}
void BasicEventTest::testNullMutex()
{
Poco::BasicEvent<int, NullMutex> ev;
int tmp = 0;
assertTrue (_count == 0);
ev += delegate(this, &BasicEventTest::onSimple);
ev += delegate(this, &BasicEventTest::onSimple);
ev.notify(this, tmp);
assertTrue (_count == 2);
ev -= delegate(this, &BasicEventTest::onSimple);
ev.notify(this, tmp);
assertTrue (_count == 3);
}
void BasicEventTest::testDuplicateUnregister()
{
// duplicate unregister shouldn't give an error,
int tmp = 0;
assertTrue (_count == 0);
Simple -= delegate(this, &BasicEventTest::onSimple); // should work
Simple.notify(this, tmp);
assertTrue (_count == 0);
Simple += delegate(this, &BasicEventTest::onSimple);
Simple.notify(this, tmp);
assertTrue (_count == 1);
Simple -= delegate(this, &BasicEventTest::onSimple);
Simple.notify(this, tmp);
assertTrue (_count == 1);
Simple -= delegate(this, &BasicEventTest::onSimple);
Simple.notify(this, tmp);
assertTrue (_count == 1);
}
void BasicEventTest::testDisabling()
{
int tmp = 0;
assertTrue (_count == 0);
Simple += delegate(this, &BasicEventTest::onSimple);
Simple.disable();
Simple.notify(this, tmp);
assertTrue (_count == 0);
Simple.enable();
Simple.notify(this, tmp);
assertTrue (_count == 1);
// unregister should also work with disabled event
Simple.disable();
Simple -= delegate(this, &BasicEventTest::onSimple);
Simple.enable();
Simple.notify(this, tmp);
assertTrue (_count == 1);
}
void BasicEventTest::testExpire()
{
int tmp = 0;
assertTrue (_count == 0);
Simple += delegate(this, &BasicEventTest::onSimple, 500);
Simple.notify(this, tmp);
assertTrue (_count == 1);
Poco::Thread::sleep(700);
Simple.notify(this, tmp);
assertTrue (_count == 1);
Simple += delegate(&BasicEventTest::onStaticSimple, 400);
Simple += delegate(&BasicEventTest::onStaticSimple, 400);
Simple += delegate(&BasicEventTest::onStaticSimple2, 400);
Simple += delegate(&BasicEventTest::onStaticSimple3, 400);
Simple.notify(this, tmp);
assertTrue (_count == 4);
Poco::Thread::sleep(700);
Simple.notify(this, tmp);
assertTrue (_count == 4);
}
void BasicEventTest::testExpireReRegister()
{
int tmp = 0;
assertTrue (_count == 0);
Simple += delegate(this, &BasicEventTest::onSimple, 500);
Simple.notify(this, tmp);
assertTrue (_count == 1);
Poco::Thread::sleep(200);
Simple.notify(this, tmp);
assertTrue (_count == 2);
// renew registration
Simple += delegate(this, &BasicEventTest::onSimple, 600);
Poco::Thread::sleep(400);
Simple.notify(this, tmp);
assertTrue (_count == 3);
Poco::Thread::sleep(300);
Simple.notify(this, tmp);
assertTrue (_count == 3);
}
void BasicEventTest::testReturnParams()
{
DummyDelegate o1;
Simple += delegate(&o1, &DummyDelegate::onSimple);
int tmp = 0;
Simple.notify(this, tmp);
assertTrue (tmp == 1);
}
void BasicEventTest::testOverwriteDelegate()
{
DummyDelegate o1;
Simple += delegate(&o1, &DummyDelegate::onSimple);
Simple += delegate(&o1, &DummyDelegate::onSimple2);
int tmp = 0; // onsimple requires 0 as input
Simple.notify(this, tmp);
assertTrue (tmp == 2);
}
void BasicEventTest::testAsyncNotify()
{
Poco::BasicEvent<int>* pSimple= new Poco::BasicEvent<int>();
(*pSimple) += delegate(this, &BasicEventTest::onAsync);
assertTrue (_count == 0);
int tmp = 0;
Poco::ActiveResult<int>retArg = pSimple->notifyAsync(this, tmp);
delete pSimple; // must work even when the event got deleted!
pSimple = NULL;
assertTrue (_count == 0);
retArg.wait();
assertTrue (retArg.data() == tmp);
assertTrue (_count == LARGEINC);
}
void BasicEventTest::onStaticVoid(const void* pSender)
{
BasicEventTest* p = const_cast<BasicEventTest*>(reinterpret_cast<const BasicEventTest*>(pSender));
p->_count++;
}
void BasicEventTest::onVoid(const void* pSender)
{
_count++;
}
void BasicEventTest::onSimpleNoSender(int& i)
{
_count++;
}
void BasicEventTest::onSimple(const void* pSender, int& i)
{
_count++;
}
void BasicEventTest::onStaticSimple(const void* pSender, int& i)
{
BasicEventTest* p = const_cast<BasicEventTest*>(reinterpret_cast<const BasicEventTest*>(pSender));
p->_count++;
}
void BasicEventTest::onStaticSimple2(void* pSender, int& i)
{
BasicEventTest* p = reinterpret_cast<BasicEventTest*>(pSender);
p->_count++;
}
void BasicEventTest::onStaticSimple3(int& i)
{
}
void BasicEventTest::onSimpleOther(const void* pSender, int& i)
{
_count+=100;
}
void BasicEventTest::onConstSimple(const void* pSender, const int& i)
{
_count++;
}
void BasicEventTest::onComplex(const void* pSender, Poco::EventArgs* & i)
{
_count++;
}
void BasicEventTest::onComplex2(const void* pSender, Poco::EventArgs & i)
{
_count++;
}
void BasicEventTest::onConstComplex(const void* pSender, const Poco::EventArgs*& i)
{
_count++;
}
void BasicEventTest::onConst2Complex(const void* pSender, const Poco::EventArgs * const & i)
{
_count++;
}
void BasicEventTest::onAsync(const void* pSender, int& i)
{
Poco::Thread::sleep(700);
_count += LARGEINC ;
}
int BasicEventTest::getCount() const
{
return _count;
}
void BasicEventTest::setUp()
{
_count = 0;
// must clear events, otherwise repeating test executions will fail
// because tests are only created once, only setup is called before
// each test run
Void.clear();
Simple.clear();
ConstSimple.clear();
Complex.clear();
Complex2.clear();
ConstComplex.clear();
Const2Complex.clear();
}
void BasicEventTest::tearDown()
{
}
CppUnit::Test* BasicEventTest::suite()
{
CppUnit::TestSuite* pSuite = new CppUnit::TestSuite("BasicEventTest");
CppUnit_addTest(pSuite, BasicEventTest, testNoDelegate);
CppUnit_addTest(pSuite, BasicEventTest, testSingleDelegate);
CppUnit_addTest(pSuite, BasicEventTest, testReturnParams);
CppUnit_addTest(pSuite, BasicEventTest, testDuplicateRegister);
CppUnit_addTest(pSuite, BasicEventTest, testDuplicateUnregister);
CppUnit_addTest(pSuite, BasicEventTest, testDisabling);
CppUnit_addTest(pSuite, BasicEventTest, testExpire);
CppUnit_addTest(pSuite, BasicEventTest, testExpireReRegister);
CppUnit_addTest(pSuite, BasicEventTest, testOverwriteDelegate);
CppUnit_addTest(pSuite, BasicEventTest, testAsyncNotify);
CppUnit_addTest(pSuite, BasicEventTest, testNullMutex);
return pSuite;
}

View File

@@ -0,0 +1,78 @@
//
// BasicEventTest.h
//
// Tests for BasicEvent
//
// Copyright (c) 2006, Applied Informatics Software Engineering GmbH.
// and Contributors.
//
// SPDX-License-Identifier: BSL-1.0
//
#ifndef BasicEventTest_INCLUDED
#define BasicEventTest_INCLUDED
#include "Poco/Foundation.h"
#include "CppUnit/TestCase.h"
#include "Poco/BasicEvent.h"
#include "Poco/EventArgs.h"
class BasicEventTest: public CppUnit::TestCase
{
Poco::BasicEvent<void> Void;
Poco::BasicEvent<int> Simple;
Poco::BasicEvent<const int> ConstSimple;
Poco::BasicEvent<Poco::EventArgs*> Complex;
Poco::BasicEvent<Poco::EventArgs> Complex2;
Poco::BasicEvent<const Poco::EventArgs*> ConstComplex;
Poco::BasicEvent<const Poco::EventArgs * const> Const2Complex;
public:
BasicEventTest(const std::string& name);
~BasicEventTest();
void testNoDelegate();
void testSingleDelegate();
void testDuplicateRegister();
void testDuplicateUnregister();
void testDisabling();
void testExpire();
void testExpireReRegister();
void testReturnParams();
void testOverwriteDelegate();
void testAsyncNotify();
void testNullMutex();
void setUp();
void tearDown();
static CppUnit::Test* suite();
protected:
static void onStaticVoid(const void* pSender);
void onVoid(const void* pSender);
static void onStaticSimple(const void* pSender, int& i);
static void onStaticSimple2(void* pSender, int& i);
static void onStaticSimple3(int& i);
void onSimpleNoSender(int& i);
void onSimple(const void* pSender, int& i);
void onSimpleOther(const void* pSender, int& i);
void onConstSimple(const void* pSender, const int& i);
void onComplex(const void* pSender, Poco::EventArgs* & i);
void onComplex2(const void* pSender, Poco::EventArgs & i);
void onConstComplex(const void* pSender, const Poco::EventArgs*& i);
void onConst2Complex(const void* pSender, const Poco::EventArgs * const & i);
void onAsync(const void* pSender, int& i);
int getCount() const;
private:
int _count;
};
#endif // BasicEventTest_INCLUDED

View File

@@ -0,0 +1,281 @@
//
// BinaryReaderWriterTest.cpp
//
// Copyright (c) 2004-2006, Applied Informatics Software Engineering GmbH.
// and Contributors.
//
// SPDX-License-Identifier: BSL-1.0
//
#include "BinaryReaderWriterTest.h"
#include "CppUnit/TestCaller.h"
#include "CppUnit/TestSuite.h"
#include "Poco/BinaryWriter.h"
#include "Poco/BinaryReader.h"
#include "Poco/Buffer.h"
#include <sstream>
using Poco::BinaryWriter;
using Poco::MemoryBinaryWriter;
using Poco::BinaryReader;
using Poco::MemoryBinaryReader;
using Poco::Buffer;
using Poco::Int32;
using Poco::UInt32;
using Poco::Int64;
using Poco::UInt64;
BinaryReaderWriterTest::BinaryReaderWriterTest(const std::string& name): CppUnit::TestCase(name)
{
}
BinaryReaderWriterTest::~BinaryReaderWriterTest()
{
}
void BinaryReaderWriterTest::testNative()
{
std::stringstream sstream;
BinaryWriter writer(sstream);
BinaryReader reader(sstream);
write(writer);
read(reader);
}
void BinaryReaderWriterTest::testBigEndian()
{
std::stringstream sstream;
BinaryWriter writer(sstream, BinaryWriter::BIG_ENDIAN_BYTE_ORDER);
BinaryReader reader(sstream, BinaryReader::UNSPECIFIED_BYTE_ORDER);
assertTrue (writer.byteOrder() == BinaryWriter::BIG_ENDIAN_BYTE_ORDER);
writer.writeBOM();
write(writer);
reader.readBOM();
assertTrue (reader.byteOrder() == BinaryReader::BIG_ENDIAN_BYTE_ORDER);
read(reader);
}
void BinaryReaderWriterTest::testLittleEndian()
{
std::stringstream sstream;
BinaryWriter writer(sstream, BinaryWriter::LITTLE_ENDIAN_BYTE_ORDER);
BinaryReader reader(sstream, BinaryReader::UNSPECIFIED_BYTE_ORDER);
assertTrue (writer.byteOrder() == BinaryWriter::LITTLE_ENDIAN_BYTE_ORDER);
writer.writeBOM();
write(writer);
reader.readBOM();
assertTrue (reader.byteOrder() == BinaryReader::LITTLE_ENDIAN_BYTE_ORDER);
read(reader);
}
void BinaryReaderWriterTest::write(BinaryWriter& writer)
{
writer << true;
writer << false;
writer << 'a';
writer << (short) -100;
writer << (unsigned short) 50000;
writer << -123456;
writer << (unsigned) 123456;
writer << (long) -1234567890;
writer << (unsigned long) 1234567890;
#if defined(POCO_HAVE_INT64)
writer << (Int64) -1234567890;
writer << (UInt64) 1234567890;
#endif
writer << (float) 1.5;
writer << (double) -1.5;
writer << "foo";
writer << "";
writer << std::string("bar");
writer << std::string();
writer.write7BitEncoded((UInt32) 100);
writer.write7BitEncoded((UInt32) 1000);
writer.write7BitEncoded((UInt32) 10000);
writer.write7BitEncoded((UInt32) 100000);
writer.write7BitEncoded((UInt32) 1000000);
#if defined(POCO_HAVE_INT64)
writer.write7BitEncoded((UInt64) 100);
writer.write7BitEncoded((UInt64) 1000);
writer.write7BitEncoded((UInt64) 10000);
writer.write7BitEncoded((UInt64) 100000);
writer.write7BitEncoded((UInt64) 1000000);
#endif
std::vector<int> vec;
vec.push_back(1);
vec.push_back(2);
vec.push_back(3);
writer << vec;
writer.writeRaw("RAW");
}
void BinaryReaderWriterTest::read(BinaryReader& reader)
{
bool b;
reader >> b;
assertTrue (b);
reader >> b;
assertTrue (!b);
char c;
reader >> c;
assertTrue (c == 'a');
short shortv;
reader >> shortv;
assertTrue (shortv == -100);
unsigned short ushortv;
reader >> ushortv;
assertTrue (ushortv == 50000);
int intv;
reader >> intv;
assertTrue (intv == -123456);
unsigned uintv;
reader >> uintv;
assertTrue (uintv == 123456);
long longv;
reader >> longv;
assertTrue (longv == -1234567890);
unsigned long ulongv;
reader >> ulongv;
assertTrue (ulongv == 1234567890);
#if defined(POCO_HAVE_INT64)
Int64 int64v;
reader >> int64v;
assertTrue (int64v == -1234567890);
UInt64 uint64v;
reader >> uint64v;
assertTrue (uint64v == 1234567890);
#endif
float floatv;
reader >> floatv;
assertTrue (floatv == 1.5);
double doublev;
reader >> doublev;
assertTrue (doublev == -1.5);
std::string str;
reader >> str;
assertTrue (str == "foo");
reader >> str;
assertTrue (str == "");
reader >> str;
assertTrue (str == "bar");
reader >> str;
assertTrue (str == "");
UInt32 uint32v;
reader.read7BitEncoded(uint32v);
assertTrue (uint32v == 100);
reader.read7BitEncoded(uint32v);
assertTrue (uint32v == 1000);
reader.read7BitEncoded(uint32v);
assertTrue (uint32v == 10000);
reader.read7BitEncoded(uint32v);
assertTrue (uint32v == 100000);
reader.read7BitEncoded(uint32v);
assertTrue (uint32v == 1000000);
#if defined(POCO_HAVE_INT64)
reader.read7BitEncoded(uint64v);
assertTrue (uint64v == 100);
reader.read7BitEncoded(uint64v);
assertTrue (uint64v == 1000);
reader.read7BitEncoded(uint64v);
assertTrue (uint64v == 10000);
reader.read7BitEncoded(uint64v);
assertTrue (uint64v == 100000);
reader.read7BitEncoded(uint64v);
assertTrue (uint64v == 1000000);
#endif
std::vector<int> vec;
reader >> vec;
assertTrue (vec.size() == 3);
assertTrue (vec[0] == 1);
assertTrue (vec[1] == 2);
assertTrue (vec[2] == 3);
reader.readRaw(3, str);
assertTrue (str == "RAW");
}
void BinaryReaderWriterTest::testWrappers()
{
bool b = false; char c = '0'; int i = 0;
Buffer<char> buf(2 * sizeof(bool) + sizeof(char) + 2 * sizeof(int));
MemoryBinaryWriter writer(buf);
writer << true;
writer << false;
writer << 'a';
writer << 1;
writer << -1;
MemoryBinaryReader reader(writer.data());
reader >> b; assertTrue (b);
reader >> b; assertTrue (!b);
reader >> c; assertTrue ('a' == c);
assertTrue (reader.available() == sizeof(i) * 2);
reader >> i; assertTrue (1 == i);
assertTrue (reader.available() == sizeof(i));
reader >> i; assertTrue (-1 == i);
assertTrue (reader.available() == 0);
reader.setExceptions(std::istream::eofbit);
try
{
reader >> i;
fail ("must throw on EOF");
} catch(std::exception&) { }
}
void BinaryReaderWriterTest::setUp()
{
}
void BinaryReaderWriterTest::tearDown()
{
}
CppUnit::Test* BinaryReaderWriterTest::suite()
{
CppUnit::TestSuite* pSuite = new CppUnit::TestSuite("BinaryReaderWriterTest");
CppUnit_addTest(pSuite, BinaryReaderWriterTest, testNative);
CppUnit_addTest(pSuite, BinaryReaderWriterTest, testBigEndian);
CppUnit_addTest(pSuite, BinaryReaderWriterTest, testLittleEndian);
CppUnit_addTest(pSuite, BinaryReaderWriterTest, testWrappers);
return pSuite;
}

View File

@@ -0,0 +1,45 @@
//
// BinaryReaderWriterTest.h
//
// Definition of the BinaryReaderWriterTest class.
//
// Copyright (c) 2004-2006, Applied Informatics Software Engineering GmbH.
// and Contributors.
//
// SPDX-License-Identifier: BSL-1.0
//
#ifndef BinaryReaderWriterTest_INCLUDED
#define BinaryReaderWriterTest_INCLUDED
#include "Poco/Foundation.h"
#include "CppUnit/TestCase.h"
#include "Poco/BinaryReader.h"
#include "Poco/BinaryWriter.h"
class BinaryReaderWriterTest: public CppUnit::TestCase
{
public:
BinaryReaderWriterTest(const std::string& name);
~BinaryReaderWriterTest();
void testNative();
void testBigEndian();
void testLittleEndian();
void testWrappers();
void write(Poco::BinaryWriter& writer);
void read(Poco::BinaryReader& reader);
void setUp();
void tearDown();
static CppUnit::Test* suite();
private:
};
#endif // BinaryReaderWriterTest_INCLUDED

View File

@@ -0,0 +1,611 @@
//
// ByteOrderTest.cpp
//
// Copyright (c) 2004-2006, Applied Informatics Software Engineering GmbH.
// and Contributors.
//
// SPDX-License-Identifier: BSL-1.0
//
#include "ByteOrderTest.h"
#include "CppUnit/TestCaller.h"
#include "CppUnit/TestSuite.h"
#include "Poco/ByteOrder.h"
using Poco::ByteOrder;
using Poco::Int16;
using Poco::UInt16;
using Poco::Int32;
using Poco::UInt32;
#if defined(POCO_HAVE_INT64)
using Poco::Int64;
using Poco::UInt64;
#endif
ByteOrderTest::ByteOrderTest(const std::string& name): CppUnit::TestCase(name)
{
}
ByteOrderTest::~ByteOrderTest()
{
}
void ByteOrderTest::testByteOrderFlip()
{
{
Int16 norm = (Int16) 0xAABB;
Int16 flip = ByteOrder::flipBytes(norm);
assertTrue (UInt16(flip) == 0xBBAA);
flip = ByteOrder::flipBytes(flip);
assertTrue (flip == norm);
}
{
UInt16 norm = (UInt16) 0xAABB;
UInt16 flip = ByteOrder::flipBytes(norm);
assertTrue (flip == 0xBBAA);
flip = ByteOrder::flipBytes(flip);
assertTrue (flip == norm);
}
{
Int32 norm = 0xAABBCCDD;
Int32 flip = ByteOrder::flipBytes(norm);
assertTrue (UInt32(flip) == 0xDDCCBBAA);
flip = ByteOrder::flipBytes(flip);
assertTrue (flip == norm);
}
{
UInt32 norm = 0xAABBCCDD;
UInt32 flip = ByteOrder::flipBytes(norm);
assertTrue (flip == 0xDDCCBBAA);
flip = ByteOrder::flipBytes(flip);
assertTrue (flip == norm);
}
#if defined(POCO_HAVE_INT64)
{
Int64 norm = (Int64(0x8899AABB) << 32) + 0xCCDDEEFF;
Int64 flip = ByteOrder::flipBytes(norm);
assertTrue (flip == (Int64(0xFFEEDDCC) << 32) + 0xBBAA9988);
flip = ByteOrder::flipBytes(flip);
assertTrue (flip == norm);
}
{
UInt64 norm = (UInt64(0x8899AABB) << 32) + 0xCCDDEEFF;
UInt64 flip = ByteOrder::flipBytes(norm);
assertTrue (flip == (UInt64(0xFFEEDDCC) << 32) + 0xBBAA9988);
flip = ByteOrder::flipBytes(flip);
assertTrue (flip == norm);
}
#endif
}
void ByteOrderTest::testByteOrderBigEndian()
{
#if defined(POCO_ARCH_BIG_ENDIAN)
//
// big-endian systems
//
{
Int16 norm = 4;
Int16 flip = ByteOrder::toBigEndian(norm);
assertTrue (norm == flip);
}
{
UInt16 norm = 4;
UInt16 flip = ByteOrder::toBigEndian(norm);
assertTrue (norm == flip);
}
{
Int32 norm = 4;
Int32 flip = ByteOrder::toBigEndian(norm);
assertTrue (norm == flip);
}
{
UInt32 norm = 4;
UInt32 flip = ByteOrder::toBigEndian(norm);
assertTrue (norm == flip);
}
#if defined(POCO_HAVE_INT64)
{
Int64 norm = 4;
Int64 flip = ByteOrder::toBigEndian(norm);
assertTrue (norm == flip);
}
{
UInt64 norm = 4;
UInt64 flip = ByteOrder::toBigEndian(norm);
assertTrue (norm == flip);
}
#endif
{
Int16 norm = 4;
Int16 flip = ByteOrder::fromBigEndian(norm);
assertTrue (norm == flip);
}
{
UInt16 norm = 4;
UInt16 flip = ByteOrder::fromBigEndian(norm);
assertTrue (norm == flip);
}
{
Int32 norm = 4;
Int32 flip = ByteOrder::fromBigEndian(norm);
assertTrue (norm == flip);
}
{
UInt32 norm = 4;
UInt32 flip = ByteOrder::fromBigEndian(norm);
assertTrue (norm == flip);
}
#if defined(POCO_HAVE_INT64)
{
Int64 norm = 4;
Int64 flip = ByteOrder::fromBigEndian(norm);
assertTrue (norm == flip);
}
{
UInt64 norm = 4;
UInt64 flip = ByteOrder::fromBigEndian(norm);
assertTrue (norm == flip);
}
#endif
#else
//
// little-endian systems
//
{
Int16 norm = 4;
Int16 flip = ByteOrder::toBigEndian(norm);
assertTrue (norm != flip);
flip = ByteOrder::flipBytes(flip);
assertTrue (norm == flip);
}
{
UInt16 norm = 4;
UInt16 flip = ByteOrder::toBigEndian(norm);
assertTrue (norm != flip);
flip = ByteOrder::flipBytes(flip);
assertTrue (norm == flip);
}
{
Int32 norm = 4;
Int32 flip = ByteOrder::toBigEndian(norm);
assertTrue (norm != flip);
flip = ByteOrder::flipBytes(flip);
assertTrue (norm == flip);
}
{
UInt32 norm = 4;
UInt32 flip = ByteOrder::toBigEndian(norm);
assertTrue (norm != flip);
flip = ByteOrder::flipBytes(flip);
assertTrue (norm == flip);
}
#if defined(POCO_HAVE_INT64)
{
Int64 norm = 4;
Int64 flip = ByteOrder::toBigEndian(norm);
assertTrue (norm != flip);
flip = ByteOrder::flipBytes(flip);
assertTrue (norm == flip);
}
{
UInt64 norm = 4;
UInt64 flip = ByteOrder::toBigEndian(norm);
assertTrue (norm != flip);
flip = ByteOrder::flipBytes(flip);
assertTrue (norm == flip);
}
#endif
{
Int16 norm = 4;
Int16 flip = ByteOrder::fromBigEndian(norm);
assertTrue (norm != flip);
flip = ByteOrder::flipBytes(flip);
assertTrue (norm == flip);
}
{
UInt16 norm = 4;
UInt16 flip = ByteOrder::fromBigEndian(norm);
assertTrue (norm != flip);
flip = ByteOrder::flipBytes(flip);
assertTrue (norm == flip);
}
{
Int32 norm = 4;
Int32 flip = ByteOrder::fromBigEndian(norm);
assertTrue (norm != flip);
flip = ByteOrder::flipBytes(flip);
assertTrue (norm == flip);
}
{
UInt32 norm = 4;
UInt32 flip = ByteOrder::fromBigEndian(norm);
assertTrue (norm != flip);
flip = ByteOrder::flipBytes(flip);
assertTrue (norm == flip);
}
#if defined(POCO_HAVE_INT64)
{
Int64 norm = 4;
Int64 flip = ByteOrder::fromBigEndian(norm);
assertTrue (norm != flip);
flip = ByteOrder::flipBytes(flip);
assertTrue (norm == flip);
}
{
UInt64 norm = 4;
UInt64 flip = ByteOrder::fromBigEndian(norm);
assertTrue (norm != flip);
flip = ByteOrder::flipBytes(flip);
assertTrue (norm == flip);
}
#endif
#endif
}
void ByteOrderTest::testByteOrderLittleEndian()
{
#if defined(POCO_ARCH_LITTLE_ENDIAN)
//
// big-endian systems
//
{
Int16 norm = 4;
Int16 flip = ByteOrder::toLittleEndian(norm);
assertTrue (norm == flip);
}
{
UInt16 norm = 4;
UInt16 flip = ByteOrder::toLittleEndian(norm);
assertTrue (norm == flip);
}
{
Int32 norm = 4;
Int32 flip = ByteOrder::toLittleEndian(norm);
assertTrue (norm == flip);
}
{
UInt32 norm = 4;
UInt32 flip = ByteOrder::toLittleEndian(norm);
assertTrue (norm == flip);
}
#if defined(POCO_HAVE_INT64)
{
Int64 norm = 4;
Int64 flip = ByteOrder::toLittleEndian(norm);
assertTrue (norm == flip);
}
{
UInt64 norm = 4;
UInt64 flip = ByteOrder::toLittleEndian(norm);
assertTrue (norm == flip);
}
#endif
{
Int16 norm = 4;
Int16 flip = ByteOrder::toLittleEndian(norm);
assertTrue (norm == flip);
}
{
UInt16 norm = 4;
UInt16 flip = ByteOrder::toLittleEndian(norm);
assertTrue (norm == flip);
}
{
Int32 norm = 4;
Int32 flip = ByteOrder::toLittleEndian(norm);
assertTrue (norm == flip);
}
{
UInt32 norm = 4;
UInt32 flip = ByteOrder::toLittleEndian(norm);
assertTrue (norm == flip);
}
#if defined(POCO_HAVE_INT64)
{
Int64 norm = 4;
Int64 flip = ByteOrder::toLittleEndian(norm);
assertTrue (norm == flip);
}
{
UInt64 norm = 4;
UInt64 flip = ByteOrder::toLittleEndian(norm);
assertTrue (norm == flip);
}
#endif
#else
//
// little-endian systems
//
{
Int16 norm = 4;
Int16 flip = ByteOrder::toLittleEndian(norm);
assertTrue (norm != flip);
flip = ByteOrder::flipBytes(flip);
assertTrue (norm == flip);
}
{
UInt16 norm = 4;
UInt16 flip = ByteOrder::toLittleEndian(norm);
assertTrue (norm != flip);
flip = ByteOrder::flipBytes(flip);
assertTrue (norm == flip);
}
{
Int32 norm = 4;
Int32 flip = ByteOrder::toLittleEndian(norm);
assertTrue (norm != flip);
flip = ByteOrder::flipBytes(flip);
assertTrue (norm == flip);
}
{
UInt32 norm = 4;
UInt32 flip = ByteOrder::toLittleEndian(norm);
assertTrue (norm != flip);
flip = ByteOrder::flipBytes(flip);
assertTrue (norm == flip);
}
#if defined(POCO_HAVE_INT64)
{
Int64 norm = 4;
Int64 flip = ByteOrder::toLittleEndian(norm);
assertTrue (norm != flip);
flip = ByteOrder::flipBytes(flip);
assertTrue (norm == flip);
}
{
UInt64 norm = 4;
UInt64 flip = ByteOrder::toLittleEndian(norm);
assertTrue (norm != flip);
flip = ByteOrder::flipBytes(flip);
assertTrue (norm == flip);
}
#endif
{
Int16 norm = 4;
Int16 flip = ByteOrder::fromLittleEndian(norm);
assertTrue (norm != flip);
flip = ByteOrder::flipBytes(flip);
assertTrue (norm == flip);
}
{
UInt16 norm = 4;
UInt16 flip = ByteOrder::fromLittleEndian(norm);
assertTrue (norm != flip);
flip = ByteOrder::flipBytes(flip);
assertTrue (norm == flip);
}
{
Int32 norm = 4;
Int32 flip = ByteOrder::fromLittleEndian(norm);
assertTrue (norm != flip);
flip = ByteOrder::flipBytes(flip);
assertTrue (norm == flip);
}
{
UInt32 norm = 4;
UInt32 flip = ByteOrder::fromLittleEndian(norm);
assertTrue (norm != flip);
flip = ByteOrder::flipBytes(flip);
assertTrue (norm == flip);
}
#if defined(POCO_HAVE_INT64)
{
Int64 norm = 4;
Int64 flip = ByteOrder::fromLittleEndian(norm);
assertTrue (norm != flip);
flip = ByteOrder::flipBytes(flip);
assertTrue (norm == flip);
}
{
UInt64 norm = 4;
UInt64 flip = ByteOrder::fromLittleEndian(norm);
assertTrue (norm != flip);
flip = ByteOrder::flipBytes(flip);
assertTrue (norm == flip);
}
#endif
#endif
}
void ByteOrderTest::testByteOrderNetwork()
{
#if defined(POCO_ARCH_BIG_ENDIAN)
//
// big-endian systems
//
{
Int16 norm = 4;
Int16 flip = ByteOrder::toNetwork(norm);
assertTrue (norm == flip);
}
{
UInt16 norm = 4;
UInt16 flip = ByteOrder::toNetwork(norm);
assertTrue (norm == flip);
}
{
Int32 norm = 4;
Int32 flip = ByteOrder::toNetwork(norm);
assertTrue (norm == flip);
}
{
UInt32 norm = 4;
UInt32 flip = ByteOrder::toNetwork(norm);
assertTrue (norm == flip);
}
#if defined(POCO_HAVE_INT64)
{
Int64 norm = 4;
Int64 flip = ByteOrder::toNetwork(norm);
assertTrue (norm == flip);
}
{
UInt64 norm = 4;
UInt64 flip = ByteOrder::toNetwork(norm);
assertTrue (norm == flip);
}
#endif
{
Int16 norm = 4;
Int16 flip = ByteOrder::fromNetwork(norm);
assertTrue (norm == flip);
}
{
UInt16 norm = 4;
UInt16 flip = ByteOrder::fromNetwork(norm);
assertTrue (norm == flip);
}
{
Int32 norm = 4;
Int32 flip = ByteOrder::fromNetwork(norm);
assertTrue (norm == flip);
}
{
UInt32 norm = 4;
UInt32 flip = ByteOrder::fromNetwork(norm);
assertTrue (norm == flip);
}
#if defined(POCO_HAVE_INT64)
{
Int64 norm = 4;
Int64 flip = ByteOrder::fromNetwork(norm);
assertTrue (norm == flip);
}
{
UInt64 norm = 4;
UInt64 flip = ByteOrder::fromNetwork(norm);
assertTrue (norm == flip);
}
#endif
#else
//
// little-endian systems
//
{
Int16 norm = 4;
Int16 flip = ByteOrder::toNetwork(norm);
assertTrue (norm != flip);
flip = ByteOrder::flipBytes(flip);
assertTrue (norm == flip);
}
{
UInt16 norm = 4;
UInt16 flip = ByteOrder::toNetwork(norm);
assertTrue (norm != flip);
flip = ByteOrder::flipBytes(flip);
assertTrue (norm == flip);
}
{
Int32 norm = 4;
Int32 flip = ByteOrder::toNetwork(norm);
assertTrue (norm != flip);
flip = ByteOrder::flipBytes(flip);
assertTrue (norm == flip);
}
{
UInt32 norm = 4;
UInt32 flip = ByteOrder::toNetwork(norm);
assertTrue (norm != flip);
flip = ByteOrder::flipBytes(flip);
assertTrue (norm == flip);
}
#if defined(POCO_HAVE_INT64)
{
Int64 norm = 4;
Int64 flip = ByteOrder::toNetwork(norm);
assertTrue (norm != flip);
flip = ByteOrder::flipBytes(flip);
assertTrue (norm == flip);
}
{
UInt64 norm = 4;
UInt64 flip = ByteOrder::toNetwork(norm);
assertTrue (norm != flip);
flip = ByteOrder::flipBytes(flip);
assertTrue (norm == flip);
}
#endif
{
Int16 norm = 4;
Int16 flip = ByteOrder::fromNetwork(norm);
assertTrue (norm != flip);
flip = ByteOrder::flipBytes(flip);
assertTrue (norm == flip);
}
{
UInt16 norm = 4;
UInt16 flip = ByteOrder::fromNetwork(norm);
assertTrue (norm != flip);
flip = ByteOrder::flipBytes(flip);
assertTrue (norm == flip);
}
{
Int32 norm = 4;
Int32 flip = ByteOrder::fromNetwork(norm);
assertTrue (norm != flip);
flip = ByteOrder::flipBytes(flip);
assertTrue (norm == flip);
}
{
UInt32 norm = 4;
UInt32 flip = ByteOrder::fromNetwork(norm);
assertTrue (norm != flip);
flip = ByteOrder::flipBytes(flip);
assertTrue (norm == flip);
}
#if defined(POCO_HAVE_INT64)
{
Int64 norm = 4;
Int64 flip = ByteOrder::fromNetwork(norm);
assertTrue (norm != flip);
flip = ByteOrder::flipBytes(flip);
assertTrue (norm == flip);
}
{
UInt64 norm = 4;
UInt64 flip = ByteOrder::fromNetwork(norm);
assertTrue (norm != flip);
flip = ByteOrder::flipBytes(flip);
assertTrue (norm == flip);
}
#endif
#endif
}
void ByteOrderTest::setUp()
{
}
void ByteOrderTest::tearDown()
{
}
CppUnit::Test* ByteOrderTest::suite()
{
CppUnit::TestSuite* pSuite = new CppUnit::TestSuite("ByteOrderTest");
CppUnit_addTest(pSuite, ByteOrderTest, testByteOrderFlip);
CppUnit_addTest(pSuite, ByteOrderTest, testByteOrderBigEndian);
CppUnit_addTest(pSuite, ByteOrderTest, testByteOrderLittleEndian);
CppUnit_addTest(pSuite, ByteOrderTest, testByteOrderNetwork);
return pSuite;
}

View File

@@ -0,0 +1,41 @@
//
// ByteOrderTest.h
//
// Definition of the ByteOrderTest class.
//
// Copyright (c) 2004-2006, Applied Informatics Software Engineering GmbH.
// and Contributors.
//
// SPDX-License-Identifier: BSL-1.0
//
#ifndef ByteOrderTest_INCLUDED
#define ByteOrderTest_INCLUDED
#include "Poco/Foundation.h"
#include "CppUnit/TestCase.h"
class ByteOrderTest: public CppUnit::TestCase
{
public:
ByteOrderTest(const std::string& name);
~ByteOrderTest();
void testByteOrderFlip();
void testByteOrderBigEndian();
void testByteOrderLittleEndian();
void testByteOrderNetwork();
void setUp();
void tearDown();
static CppUnit::Test* suite();
private:
};
#endif // ByteOrderTest_INCLUDED

View File

@@ -0,0 +1,29 @@
//
// CacheTestSuite.cpp
//
// Copyright (c) 2006, Applied Informatics Software Engineering GmbH.
// and Contributors.
//
// SPDX-License-Identifier: BSL-1.0
//
#include "CacheTestSuite.h"
#include "LRUCacheTest.h"
#include "ExpireCacheTest.h"
#include "ExpireLRUCacheTest.h"
#include "UniqueExpireCacheTest.h"
#include "UniqueExpireLRUCacheTest.h"
CppUnit::Test* CacheTestSuite::suite()
{
CppUnit::TestSuite* pSuite = new CppUnit::TestSuite("CacheTestSuite");
pSuite->addTest(LRUCacheTest::suite());
pSuite->addTest(ExpireCacheTest::suite());
pSuite->addTest(UniqueExpireCacheTest::suite());
pSuite->addTest(ExpireLRUCacheTest::suite());
pSuite->addTest(UniqueExpireLRUCacheTest::suite());
return pSuite;
}

View File

@@ -0,0 +1,27 @@
//
// CacheTestSuite.h
//
// Definition of the CacheTestSuite class.
//
// Copyright (c) 2006, Applied Informatics Software Engineering GmbH.
// and Contributors.
//
// SPDX-License-Identifier: BSL-1.0
//
#ifndef CacheTestSuite_INCLUDED
#define CacheTestSuite_INCLUDED
#include "CppUnit/TestSuite.h"
class CacheTestSuite
{
public:
static CppUnit::Test* suite();
};
#endif // CacheTestSuite_INCLUDED

View File

@@ -0,0 +1,138 @@
//
// ChannelTest.cpp
//
// Copyright (c) 2004-2006, Applied Informatics Software Engineering GmbH.
// and Contributors.
//
// SPDX-License-Identifier: BSL-1.0
//
#include "ChannelTest.h"
#include "CppUnit/TestCaller.h"
#include "CppUnit/TestSuite.h"
#include "Poco/SplitterChannel.h"
#include "Poco/AsyncChannel.h"
#include "Poco/AutoPtr.h"
#include "Poco/Message.h"
#include "Poco/Formatter.h"
#include "Poco/FormattingChannel.h"
#include "Poco/ConsoleChannel.h"
#include "Poco/StreamChannel.h"
#include "TestChannel.h"
#include <sstream>
using Poco::SplitterChannel;
using Poco::AsyncChannel;
using Poco::FormattingChannel;
using Poco::ConsoleChannel;
using Poco::StreamChannel;
using Poco::Formatter;
using Poco::Message;
using Poco::AutoPtr;
class SimpleFormatter: public Formatter
{
public:
void format(const Message& msg, std::string& text)
{
text = msg.getSource();
text.append(": ");
text.append(msg.getText());
}
};
ChannelTest::ChannelTest(const std::string& name): CppUnit::TestCase(name)
{
}
ChannelTest::~ChannelTest()
{
}
void ChannelTest::testSplitter()
{
AutoPtr<TestChannel> pChannel = new TestChannel;
AutoPtr<SplitterChannel> pSplitter = new SplitterChannel;
pSplitter->addChannel(pChannel);
pSplitter->addChannel(pChannel);
Message msg;
pSplitter->log(msg);
assertTrue (pChannel->list().size() == 2);
}
void ChannelTest::testAsync()
{
AutoPtr<TestChannel> pChannel = new TestChannel;
AutoPtr<AsyncChannel> pAsync = new AsyncChannel(pChannel);
pAsync->open();
Message msg;
pAsync->log(msg);
pAsync->log(msg);
pAsync->close();
assertTrue (pChannel->list().size() == 2);
}
void ChannelTest::testFormatting()
{
AutoPtr<TestChannel> pChannel = new TestChannel;
AutoPtr<Formatter> pFormatter = new SimpleFormatter;
AutoPtr<FormattingChannel> pFormatterChannel = new FormattingChannel(pFormatter, pChannel);
Message msg("Source", "Text", Message::PRIO_INFORMATION);
pFormatterChannel->log(msg);
assertTrue (pChannel->list().size() == 1);
assertTrue (pChannel->list().begin()->getText() == "Source: Text");
}
void ChannelTest::testConsole()
{
AutoPtr<ConsoleChannel> pChannel = new ConsoleChannel;
AutoPtr<Formatter> pFormatter = new SimpleFormatter;
AutoPtr<FormattingChannel> pFormatterChannel = new FormattingChannel(pFormatter, pChannel);
Message msg("Source", "Text", Message::PRIO_INFORMATION);
pFormatterChannel->log(msg);
}
void ChannelTest::testStream()
{
std::ostringstream str;
AutoPtr<StreamChannel> pChannel = new StreamChannel(str);
AutoPtr<Formatter> pFormatter = new SimpleFormatter;
AutoPtr<FormattingChannel> pFormatterChannel = new FormattingChannel(pFormatter, pChannel);
Message msg("Source", "Text", Message::PRIO_INFORMATION);
pFormatterChannel->log(msg);
assertTrue (str.str().find("Source: Text") == 0);
}
void ChannelTest::setUp()
{
}
void ChannelTest::tearDown()
{
}
CppUnit::Test* ChannelTest::suite()
{
CppUnit::TestSuite* pSuite = new CppUnit::TestSuite("ChannelTest");
CppUnit_addTest(pSuite, ChannelTest, testSplitter);
CppUnit_addTest(pSuite, ChannelTest, testAsync);
CppUnit_addTest(pSuite, ChannelTest, testFormatting);
CppUnit_addTest(pSuite, ChannelTest, testConsole);
CppUnit_addTest(pSuite, ChannelTest, testStream);
return pSuite;
}

View File

@@ -0,0 +1,42 @@
//
// ChannelTest.h
//
// Definition of the ChannelTest class.
//
// Copyright (c) 2004-2006, Applied Informatics Software Engineering GmbH.
// and Contributors.
//
// SPDX-License-Identifier: BSL-1.0
//
#ifndef ChannelTest_INCLUDED
#define ChannelTest_INCLUDED
#include "Poco/Foundation.h"
#include "CppUnit/TestCase.h"
class ChannelTest: public CppUnit::TestCase
{
public:
ChannelTest(const std::string& name);
~ChannelTest();
void testSplitter();
void testAsync();
void testFormatting();
void testConsole();
void testStream();
void setUp();
void tearDown();
static CppUnit::Test* suite();
private:
};
#endif // ChannelTest_INCLUDED

View File

@@ -0,0 +1,212 @@
//
// ClassLoaderTest.cpp
//
// Copyright (c) 2004-2006, Applied Informatics Software Engineering GmbH.
// and Contributors.
//
// SPDX-License-Identifier: BSL-1.0
//
#include "ClassLoaderTest.h"
#include "CppUnit/TestCaller.h"
#include "CppUnit/TestSuite.h"
#include "Poco/ClassLoader.h"
#include "Poco/Manifest.h"
#include "Poco/Exception.h"
#include "TestPlugin.h"
using Poco::ClassLoader;
using Poco::Manifest;
using Poco::SharedLibrary;
using Poco::AbstractMetaObject;
using Poco::NotFoundException;
using Poco::InvalidAccessException;
ClassLoaderTest::ClassLoaderTest(const std::string& name): CppUnit::TestCase(name)
{
}
ClassLoaderTest::~ClassLoaderTest()
{
}
void ClassLoaderTest::testClassLoader1()
{
std::string path = "TestLibrary";
path.append(SharedLibrary::suffix());
ClassLoader<TestPlugin> cl;
assertTrue (cl.begin() == cl.end());
assertNullPtr (cl.findClass("PluginA"));
assertNullPtr (cl.findManifest(path));
assertTrue (!cl.isLibraryLoaded(path));
try
{
const ClassLoader<TestPlugin>::Meta& POCO_UNUSED meta = cl.classFor("PluginA");
fail("not found - must throw exception");
}
catch (NotFoundException&)
{
}
catch (...)
{
failmsg("wrong exception");
}
try
{
const ClassLoader<TestPlugin>::Manif& POCO_UNUSED manif = cl.manifestFor(path);
fail("not found - must throw exception");
}
catch (NotFoundException&)
{
}
catch (...)
{
failmsg("wrong exception");
}
}
void ClassLoaderTest::testClassLoader2()
{
std::string path = "TestLibrary";
path.append(SharedLibrary::suffix());
ClassLoader<TestPlugin> cl;
cl.loadLibrary(path);
assertTrue (cl.begin() != cl.end());
assertNotNullPtr (cl.findClass("PluginA"));
assertNotNullPtr (cl.findClass("PluginB"));
assertNotNullPtr (cl.findClass("PluginC"));
assertNotNullPtr (cl.findManifest(path));
assertTrue (cl.isLibraryLoaded(path));
assertTrue (cl.manifestFor(path).size() == 3);
ClassLoader<TestPlugin>::Iterator it = cl.begin();
assertTrue (it != cl.end());
assertTrue (it->first == path);
assertTrue (it->second->size() == 3);
++it;
assertTrue (it == cl.end());
TestPlugin* pPluginA = cl.classFor("PluginA").create();
assertTrue (pPluginA->name() == "PluginA");
assertTrue (!cl.classFor("PluginA").isAutoDelete(pPluginA));
delete pPluginA;
TestPlugin* pPluginB = cl.classFor("PluginB").create();
assertTrue (pPluginB->name() == "PluginB");
delete pPluginB;
pPluginB = cl.create("PluginB");
assertTrue (pPluginB->name() == "PluginB");
delete pPluginB;
assertTrue (cl.canCreate("PluginA"));
assertTrue (cl.canCreate("PluginB"));
assertTrue (!cl.canCreate("PluginC"));
TestPlugin& pluginC = cl.instance("PluginC");
assertTrue (pluginC.name() == "PluginC");
try
{
TestPlugin& POCO_UNUSED plgB = cl.instance("PluginB");
fail("not a singleton - must throw");
}
catch (InvalidAccessException&)
{
}
try
{
TestPlugin* POCO_UNUSED pPluginC = cl.create("PluginC");
fail("cannot create a singleton - must throw");
}
catch (InvalidAccessException&)
{
}
try
{
const AbstractMetaObject<TestPlugin>& meta = cl.classFor("PluginC");
meta.autoDelete(&(meta.instance()));
fail("cannot take ownership of a singleton - must throw");
}
catch (InvalidAccessException&)
{
}
const AbstractMetaObject<TestPlugin>& meta1 = cl.classFor("PluginC");
assertTrue (meta1.isAutoDelete(&(meta1.instance())));
// the following must not produce memory leaks
const AbstractMetaObject<TestPlugin>& meta2 = cl.classFor("PluginA");
meta2.autoDelete(meta2.create());
meta2.autoDelete(meta2.create());
TestPlugin* pPlugin = meta2.create();
meta2.autoDelete(pPlugin);
assertTrue (meta2.isAutoDelete(pPlugin));
meta2.destroy(pPlugin);
assertTrue (!meta2.isAutoDelete(pPlugin));
cl.unloadLibrary(path);
}
void ClassLoaderTest::testClassLoader3()
{
std::string path = "TestLibrary";
path.append(SharedLibrary::suffix());
ClassLoader<TestPlugin> cl;
cl.loadLibrary(path);
cl.loadLibrary(path);
cl.unloadLibrary(path);
assertTrue (cl.manifestFor(path).size() == 3);
ClassLoader<TestPlugin>::Iterator it = cl.begin();
assertTrue (it != cl.end());
assertTrue (it->first == path);
assertTrue (it->second->size() == 3);
++it;
assertTrue (it == cl.end());
cl.unloadLibrary(path);
assertNullPtr (cl.findManifest(path));
}
void ClassLoaderTest::setUp()
{
}
void ClassLoaderTest::tearDown()
{
}
CppUnit::Test* ClassLoaderTest::suite()
{
CppUnit::TestSuite* pSuite = new CppUnit::TestSuite("ClassLoaderTest");
CppUnit_addTest(pSuite, ClassLoaderTest, testClassLoader1);
CppUnit_addTest(pSuite, ClassLoaderTest, testClassLoader2);
CppUnit_addTest(pSuite, ClassLoaderTest, testClassLoader3);
return pSuite;
}

View File

@@ -0,0 +1,40 @@
//
// ClassLoaderTest.h
//
// Definition of the ClassLoaderTest class.
//
// Copyright (c) 2004-2006, Applied Informatics Software Engineering GmbH.
// and Contributors.
//
// SPDX-License-Identifier: BSL-1.0
//
#ifndef ClassLoaderTest_INCLUDED
#define ClassLoaderTest_INCLUDED
#include "Poco/Foundation.h"
#include "CppUnit/TestCase.h"
class ClassLoaderTest: public CppUnit::TestCase
{
public:
ClassLoaderTest(const std::string& name);
~ClassLoaderTest();
void testClassLoader1();
void testClassLoader2();
void testClassLoader3();
void setUp();
void tearDown();
static CppUnit::Test* suite();
private:
};
#endif // ClassLoaderTest_INCLUDED

View File

@@ -0,0 +1,85 @@
//
// ClockTest.cpp
//
// Copyright (c) 2013, Applied Informatics Software Engineering GmbH.
// and Contributors.
//
// SPDX-License-Identifier: BSL-1.0
//
#include "ClockTest.h"
#include "CppUnit/TestCaller.h"
#include "CppUnit/TestSuite.h"
#include "Poco/Clock.h"
#include "Poco/Thread.h"
#include <iostream>
using Poco::Clock;
using Poco::Thread;
ClockTest::ClockTest(const std::string& name): CppUnit::TestCase(name)
{
}
ClockTest::~ClockTest()
{
}
void ClockTest::testClock()
{
Clock t1;
Thread::sleep(200);
Clock t2;
Clock t3 = t2;
assertTrue (t1 != t2);
assertTrue (!(t1 == t2));
assertTrue (t2 > t1);
assertTrue (t2 >= t1);
assertTrue (!(t1 > t2));
assertTrue (!(t1 >= t2));
assertTrue (t2 == t3);
assertTrue (!(t2 != t3));
assertTrue (t2 >= t3);
assertTrue (t2 <= t3);
Clock::ClockDiff d = (t2 - t1);
assertTrue (d >= 180000 && d <= 300000);
Clock::ClockDiff acc = Clock::accuracy();
assertTrue (acc > 0 && acc < Clock::resolution());
std::cout << "Clock accuracy: " << acc << std::endl;
t1.swap(t2);
assertTrue (t1 > t2);
t2.swap(t1);
Clock now;
Thread::sleep(201);
assertTrue (now.elapsed() >= 200000);
assertTrue (now.isElapsed(200000));
assertTrue (!now.isElapsed(2000000));
}
void ClockTest::setUp()
{
}
void ClockTest::tearDown()
{
}
CppUnit::Test* ClockTest::suite()
{
CppUnit::TestSuite* pSuite = new CppUnit::TestSuite("ClockTest");
CppUnit_addTest(pSuite, ClockTest, testClock);
return pSuite;
}

View File

@@ -0,0 +1,38 @@
//
// ClockTest.h
//
// Definition of the ClockTest class.
//
// Copyright (c) 2004-2006, Applied Informatics Software Engineering GmbH.
// and Contributors.
//
// SPDX-License-Identifier: BSL-1.0
//
#ifndef ClockTest_INCLUDED
#define ClockTest_INCLUDED
#include "Poco/Foundation.h"
#include "CppUnit/TestCase.h"
class ClockTest: public CppUnit::TestCase
{
public:
ClockTest(const std::string& name);
~ClockTest();
void testClock();
void setUp();
void tearDown();
static CppUnit::Test* suite();
private:
};
#endif // ClockTest_INCLUDED

View File

@@ -0,0 +1,192 @@
//
// ConditionTest.cpp
//
// Copyright (c) 2007, Applied Informatics Software Engineering GmbH.
// and Contributors.
//
// SPDX-License-Identifier: BSL-1.0
//
#include "ConditionTest.h"
#include "CppUnit/TestCaller.h"
#include "CppUnit/TestSuite.h"
#include "Poco/Thread.h"
#include "Poco/Runnable.h"
#include "Poco/Condition.h"
#include "Poco/Mutex.h"
#include "Poco/Exception.h"
using Poco::Thread;
using Poco::Runnable;
using Poco::Condition;
using Poco::Mutex;
using Poco::TimeoutException;
namespace
{
class WaitRunnable: public Runnable
{
public:
WaitRunnable(Condition& cond, Mutex& mutex):
_ran(false),
_cond(cond),
_mutex(mutex)
{
}
void run()
{
_mutex.lock();
_cond.wait(_mutex);
_mutex.unlock();
_ran = true;
}
bool ran() const
{
return _ran;
}
private:
bool _ran;
Condition& _cond;
Mutex& _mutex;
};
class TryWaitRunnable: public Runnable
{
public:
TryWaitRunnable(Condition& cond, Mutex& mutex):
_ran(false),
_cond(cond),
_mutex(mutex)
{
}
void run()
{
_mutex.lock();
if (_cond.tryWait(_mutex, 10000))
{
_ran = true;
}
_mutex.unlock();
}
bool ran() const
{
return _ran;
}
private:
bool _ran;
Condition& _cond;
Mutex& _mutex;
};
}
ConditionTest::ConditionTest(const std::string& name): CppUnit::TestCase(name)
{
}
ConditionTest::~ConditionTest()
{
}
void ConditionTest::testSignal()
{
Condition cond;
Mutex mtx;
WaitRunnable r1(cond, mtx);
WaitRunnable r2(cond, mtx);
Thread t1;
Thread t2;
t1.start(r1);
Thread::sleep(200);
t2.start(r2);
assertTrue (!r1.ran());
assertTrue (!r2.ran());
cond.signal();
t1.join();
assertTrue (r1.ran());
assertTrue (!t2.tryJoin(200));
cond.signal();
t2.join();
assertTrue (r2.ran());
}
void ConditionTest::testBroadcast()
{
Condition cond;
Mutex mtx;
WaitRunnable r1(cond, mtx);
WaitRunnable r2(cond, mtx);
TryWaitRunnable r3(cond, mtx);
Thread t1;
Thread t2;
Thread t3;
t1.start(r1);
Thread::sleep(200);
t2.start(r2);
Thread::sleep(200);
t3.start(r3);
assertTrue (!r1.ran());
assertTrue (!r2.ran());
assertTrue (!r3.ran());
cond.signal();
t1.join();
assertTrue (r1.ran());
assertTrue (!t2.tryJoin(500));
assertTrue (!t3.tryJoin(500));
cond.broadcast();
t2.join();
t3.join();
assertTrue (r2.ran());
assertTrue (r3.ran());
}
void ConditionTest::setUp()
{
}
void ConditionTest::tearDown()
{
}
CppUnit::Test* ConditionTest::suite()
{
CppUnit::TestSuite* pSuite = new CppUnit::TestSuite("ConditionTest");
CppUnit_addTest(pSuite, ConditionTest, testSignal);
CppUnit_addTest(pSuite, ConditionTest, testBroadcast);
return pSuite;
}

View File

@@ -0,0 +1,39 @@
//
// ConditionTest.h
//
// Definition of the ConditionTest class.
//
// Copyright (c) 2007, Applied Informatics Software Engineering GmbH.
// and Contributors.
//
// SPDX-License-Identifier: BSL-1.0
//
#ifndef ConditionTest_INCLUDED
#define ConditionTest_INCLUDED
#include "Poco/Foundation.h"
#include "CppUnit/TestCase.h"
class ConditionTest: public CppUnit::TestCase
{
public:
ConditionTest(const std::string& name);
~ConditionTest();
void testSignal();
void testBroadcast();
void setUp();
void tearDown();
static CppUnit::Test* suite();
private:
};
#endif // ConditionTest_INCLUDED

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,57 @@
//
// CoreTest.h
//
// Definition of the CoreTest class.
//
// Copyright (c) 2004-2006, Applied Informatics Software Engineering GmbH.
// and Contributors.
//
// SPDX-License-Identifier: BSL-1.0
//
#ifndef CoreTest_INCLUDED
#define CoreTest_INCLUDED
#include "Poco/Foundation.h"
#include "CppUnit/TestCase.h"
class CoreTest: public CppUnit::TestCase
{
public:
CoreTest(const std::string& name);
~CoreTest();
void testPlatform();
void testFixedLength();
void testBugcheck();
void testFPE();
void testEnvironment();
void testBuffer();
void testFIFOBufferChar();
void testFIFOBufferInt();
void testFIFOBufferEOFAndError();
void testAtomicCounter();
void testNullable();
void testAscii();
void setUp();
void tearDown();
static CppUnit::Test* suite();
protected:
void onReadable(bool& b);
void onWritable(bool& b);
private:
int _readableToNot;
int _notToReadable;
int _writableToNot;
int _notToWritable;
};
#endif // CoreTest_INCLUDED

View File

@@ -0,0 +1,76 @@
//
// CoreTestSuite.cpp
//
// Copyright (c) 2004-2006, Applied Informatics Software Engineering GmbH.
// and Contributors.
//
// SPDX-License-Identifier: BSL-1.0
//
#include "CoreTestSuite.h"
#include "CoreTest.h"
#include "ArrayTest.h"
#include "AutoPtrTest.h"
#include "SharedPtrTest.h"
#include "AutoReleasePoolTest.h"
#include "ByteOrderTest.h"
#include "StringTest.h"
#include "StringTokenizerTest.h"
#ifndef POCO_VXWORKS
#include "FPETest.h"
#endif
#include "RegularExpressionTest.h"
#include "NDCTest.h"
#include "NumberFormatterTest.h"
#include "NumberParserTest.h"
#include "DynamicFactoryTest.h"
#include "MemoryPoolTest.h"
#include "AnyTest.h"
#include "VarTest.h"
#include "FormatTest.h"
#include "TuplesTest.h"
#ifndef POCO_VXWORKS
#include "NamedTuplesTest.h"
#endif
#include "TypeListTest.h"
#include "ObjectPoolTest.h"
#include "ListMapTest.h"
#include "OrderedContainersTest.h"
CppUnit::Test* CoreTestSuite::suite()
{
CppUnit::TestSuite* pSuite = new CppUnit::TestSuite("CoreTestSuite");
pSuite->addTest(CoreTest::suite());
pSuite->addTest(ArrayTest::suite());
pSuite->addTest(AutoPtrTest::suite());
pSuite->addTest(SharedPtrTest::suite());
pSuite->addTest(AutoReleasePoolTest::suite());
pSuite->addTest(ByteOrderTest::suite());
pSuite->addTest(StringTest::suite());
pSuite->addTest(StringTokenizerTest::suite());
#ifndef POCO_VXWORKS
pSuite->addTest(FPETest::suite());
#endif
pSuite->addTest(RegularExpressionTest::suite());
pSuite->addTest(NDCTest::suite());
pSuite->addTest(NumberFormatterTest::suite());
pSuite->addTest(NumberParserTest::suite());
pSuite->addTest(DynamicFactoryTest::suite());
pSuite->addTest(MemoryPoolTest::suite());
pSuite->addTest(AnyTest::suite());
pSuite->addTest(VarTest::suite());
pSuite->addTest(FormatTest::suite());
pSuite->addTest(TuplesTest::suite());
#ifndef POCO_VXWORKS
pSuite->addTest(NamedTuplesTest::suite());
#endif
pSuite->addTest(TypeListTest::suite());
pSuite->addTest(ObjectPoolTest::suite());
pSuite->addTest(ListMapTest::suite());
pSuite->addTest(OrderedContainersTest::suite());
return pSuite;
}

View File

@@ -0,0 +1,27 @@
//
// CoreTestSuite.h
//
// Definition of the CoreTestSuite class.
//
// Copyright (c) 2004-2006, Applied Informatics Software Engineering GmbH.
// and Contributors.
//
// SPDX-License-Identifier: BSL-1.0
//
#ifndef CoreTestSuite_INCLUDED
#define CoreTestSuite_INCLUDED
#include "CppUnit/TestSuite.h"
class CoreTestSuite
{
public:
static CppUnit::Test* suite();
};
#endif // CoreTestSuite_INCLUDED

View File

@@ -0,0 +1,122 @@
//
// CountingStreamTest.cpp
//
// Copyright (c) 2004-2006, Applied Informatics Software Engineering GmbH.
// and Contributors.
//
// SPDX-License-Identifier: BSL-1.0
//
#include "CountingStreamTest.h"
#include "CppUnit/TestCaller.h"
#include "CppUnit/TestSuite.h"
#include "Poco/CountingStream.h"
#include <sstream>
using Poco::CountingInputStream;
using Poco::CountingOutputStream;
CountingStreamTest::CountingStreamTest(const std::string& name): CppUnit::TestCase(name)
{
}
CountingStreamTest::~CountingStreamTest()
{
}
void CountingStreamTest::testInput()
{
char c;
std::istringstream istr1("foo");
CountingInputStream ci1(istr1);
while (ci1.good()) ci1.get(c);
assertTrue (ci1.lines() == 1);
assertTrue (ci1.chars() == 3);
assertTrue (ci1.pos() == 3);
std::istringstream istr2("foo\nbar");
CountingInputStream ci2(istr2);
while (ci2.good()) ci2.get(c);
assertTrue (ci2.lines() == 2);
assertTrue (ci2.chars() == 7);
assertTrue (ci2.pos() == 3);
std::istringstream istr3("foo\nbar\n");
CountingInputStream ci3(istr3);
while (ci3.good()) ci3.get(c);
assertTrue (ci3.lines() == 2);
assertTrue (ci3.chars() == 8);
assertTrue (ci3.pos() == 0);
std::istringstream istr4("foo");
CountingInputStream ci4(istr4);
while (ci4.good()) ci4.get(c);
ci4.addChars(10);
ci4.addLines(2);
ci4.addPos(3);
assertTrue (ci4.lines() == 1 + 2);
assertTrue (ci4.chars() == 3 + 10);
assertTrue (ci4.pos() == 3 + 3);
}
void CountingStreamTest::testOutput()
{
std::ostringstream ostr1;
CountingOutputStream co1(ostr1);
co1 << "foo";
assertTrue (ostr1.str() == "foo");
assertTrue (co1.lines() == 1);
assertTrue (co1.chars() == 3);
assertTrue (co1.pos() == 3);
std::ostringstream ostr2;
CountingOutputStream co2(ostr2);
co2 << "foo\nbar";
assertTrue (ostr2.str() == "foo\nbar");
assertTrue (co2.lines() == 2);
assertTrue (co2.chars() == 7);
assertTrue (co2.pos() == 3);
CountingOutputStream co3;
co3 << "foo\nbar\n";
assertTrue (co3.lines() == 2);
assertTrue (co3.chars() == 8);
assertTrue (co3.pos() == 0);
std::ostringstream ostr4;
CountingOutputStream co4(ostr4);
co4 << "foo";
co4.addChars(10);
co4.addLines(2);
co4.addPos(3);
assertTrue (co4.lines() == 1 + 2);
assertTrue (co4.chars() == 3 + 10);
assertTrue (co4.pos() == 3 + 3);
}
void CountingStreamTest::setUp()
{
}
void CountingStreamTest::tearDown()
{
}
CppUnit::Test* CountingStreamTest::suite()
{
CppUnit::TestSuite* pSuite = new CppUnit::TestSuite("CountingStreamTest");
CppUnit_addTest(pSuite, CountingStreamTest, testInput);
CppUnit_addTest(pSuite, CountingStreamTest, testOutput);
return pSuite;
}

View File

@@ -0,0 +1,39 @@
//
// CountingStreamTest.h
//
// Definition of the CountingStreamTest class.
//
// Copyright (c) 2004-2006, Applied Informatics Software Engineering GmbH.
// and Contributors.
//
// SPDX-License-Identifier: BSL-1.0
//
#ifndef CountingStreamTest_INCLUDED
#define CountingStreamTest_INCLUDED
#include "Poco/Foundation.h"
#include "CppUnit/TestCase.h"
class CountingStreamTest: public CppUnit::TestCase
{
public:
CountingStreamTest(const std::string& name);
~CountingStreamTest();
void testInput();
void testOutput();
void setUp();
void tearDown();
static CppUnit::Test* suite();
private:
};
#endif // CountingStreamTest_INCLUDED

View File

@@ -0,0 +1,38 @@
//
// CryptTestSuite.cpp
//
// Copyright (c) 2004-2006, Applied Informatics Software Engineering GmbH.
// and Contributors.
//
// SPDX-License-Identifier: BSL-1.0
//
#include "CryptTestSuite.h"
#include "MD4EngineTest.h"
#include "MD5EngineTest.h"
#include "SHA1EngineTest.h"
#include "SHA2EngineTest.h"
#include "HMACEngineTest.h"
#include "PBKDF2EngineTest.h"
#include "DigestStreamTest.h"
#include "RandomTest.h"
#include "RandomStreamTest.h"
CppUnit::Test* CryptTestSuite::suite()
{
CppUnit::TestSuite* pSuite = new CppUnit::TestSuite("CryptTestSuite");
pSuite->addTest(MD4EngineTest::suite());
pSuite->addTest(MD5EngineTest::suite());
pSuite->addTest(SHA1EngineTest::suite());
pSuite->addTest(SHA2EngineTest::suite());
pSuite->addTest(HMACEngineTest::suite());
pSuite->addTest(PBKDF2EngineTest::suite());
pSuite->addTest(DigestStreamTest::suite());
pSuite->addTest(RandomTest::suite());
pSuite->addTest(RandomStreamTest::suite());
return pSuite;
}

View File

@@ -0,0 +1,27 @@
//
// CryptTestSuite.h
//
// Definition of the CryptTestSuite class.
//
// Copyright (c) 2004-2006, Applied Informatics Software Engineering GmbH.
// and Contributors.
//
// SPDX-License-Identifier: BSL-1.0
//
#ifndef CryptTestSuite_INCLUDED
#define CryptTestSuite_INCLUDED
#include "CppUnit/TestSuite.h"
class CryptTestSuite
{
public:
static CppUnit::Test* suite();
};
#endif // CryptTestSuite_INCLUDED

View File

@@ -0,0 +1,113 @@
//
// DataURIStreamTest.cpp
//
// Copyright (c) 2019, Applied Informatics Software Engineering GmbH.
// and Contributors.
//
// SPDX-License-Identifier: BSL-1.0
//
#include "DataURIStreamTest.h"
#include "CppUnit/TestCaller.h"
#include "CppUnit/TestSuite.h"
#include "Poco/DataURIStream.h"
#include "Poco/Exception.h"
#include "Poco/URI.h"
#include "Poco/StreamCopier.h"
#include <sstream>
using Poco::DataFormatException;
using Poco::DataURIStream;
using Poco::StreamCopier;
using Poco::URI;
DataURIStreamTest::DataURIStreamTest(const std::string& name): CppUnit::TestCase(name)
{
}
DataURIStreamTest::~DataURIStreamTest()
{
}
void DataURIStreamTest::testWithBase64()
{
{
DataURIStream ds(URI("data:;base64,SGVsbG8sIFdvcmxkIQ%3D%3D"));
std::ostringstream ostr;
StreamCopier::copyStream(ds, ostr);
assertTrue (ostr.str() == "Hello, World!");
}
{
DataURIStream ds(URI("data:text/vnd-example+xyz;foo=bar;base64,R0lGODdh"));
std::ostringstream ostr;
StreamCopier::copyStream(ds, ostr);
assertTrue (ostr.str() == "GIF87a");
}
{
DataURIStream ds(URI("data:application/octet-stream;base64,A+b/7A=="));
std::ostringstream ostr;
StreamCopier::copyStream(ds, ostr);
assertTrue (ostr.str() == "\x03\xE6\xFF\xEC");
}
}
void DataURIStreamTest::testWithoutBase64()
{
{
DataURIStream ds(URI("data:,Hello%2C%20World!"));
std::ostringstream ostr;
StreamCopier::copyStream(ds, ostr);
assertTrue (ostr.str() == "Hello, World!");
}
{
DataURIStream ds(URI("data:text/plain;charset=UTF-8;page=21,the%20data:1234,5678"));
std::ostringstream ostr;
StreamCopier::copyStream(ds, ostr);
assertTrue (ostr.str() == "the data:1234,5678");
}
}
void DataURIStreamTest::testZeroLengthData()
{
{
DataURIStream ds(URI("data:text/plain;base64,"));
std::ostringstream ostr;
StreamCopier::copyStream(ds, ostr);
assertTrue (ostr.str().empty());
}
{
DataURIStream ds(URI("data:,"));
std::ostringstream ostr;
StreamCopier::copyStream(ds, ostr);
assertTrue (ostr.str().empty());
}
}
void DataURIStreamTest::setUp()
{
}
void DataURIStreamTest::tearDown()
{
}
CppUnit::Test* DataURIStreamTest::suite()
{
CppUnit::TestSuite* pSuite = new CppUnit::TestSuite("DataURIStreamTest");
CppUnit_addTest(pSuite, DataURIStreamTest, testWithBase64);
CppUnit_addTest(pSuite, DataURIStreamTest, testWithoutBase64);
CppUnit_addTest(pSuite, DataURIStreamTest, testZeroLengthData);
return pSuite;
}

View File

@@ -0,0 +1,37 @@
//
// DataURIStreamTest.h
//
// Definition of the DataURItreamTest class.
//
// Copyright (c) 2019, Applied Informatics Software Engineering GmbH.
// and Contributors.
//
// SPDX-License-Identifier: BSL-1.0
//
#ifndef DataURIStreamTest_INCLUDED
#define DataURIStreamTest_INCLUDED
#include "CppUnit/TestCase.h"
class DataURIStreamTest: public CppUnit::TestCase
{
public:
DataURIStreamTest(const std::string& name);
~DataURIStreamTest();
void testWithBase64();
void testWithoutBase64();
void testZeroLengthData();
void setUp();
void tearDown();
static CppUnit::Test* suite();
};
#endif // DataURIStreamTest_INCLUDED

View File

@@ -0,0 +1,228 @@
//
// DateTimeFormatterTest.cpp
//
// Copyright (c) 2004-2006, Applied Informatics Software Engineering GmbH.
// and Contributors.
//
// SPDX-License-Identifier: BSL-1.0
//
#include "DateTimeFormatterTest.h"
#include "CppUnit/TestCaller.h"
#include "CppUnit/TestSuite.h"
#include "Poco/DateTimeFormatter.h"
#include "Poco/DateTimeFormat.h"
#include "Poco/DateTime.h"
#include "Poco/Timespan.h"
using Poco::DateTime;
using Poco::Timespan;
using Poco::DateTimeFormat;
using Poco::DateTimeFormatter;
DateTimeFormatterTest::DateTimeFormatterTest(const std::string& name)
: CppUnit::TestCase(name)
{
// Linker regresion SF #3288584
std::string message;
Poco::LocalDateTime now;
Poco::DateTimeFormatter::append(message, now, "%H:%M:%S.%i");
}
DateTimeFormatterTest::~DateTimeFormatterTest()
{
}
void DateTimeFormatterTest::testISO8601()
{
DateTime dt(2005, 1, 8, 12, 30, 00);
std::string str = DateTimeFormatter::format(dt, DateTimeFormat::ISO8601_FORMAT);
assertTrue (str == "2005-01-08T12:30:00Z");
str = DateTimeFormatter::format(dt, DateTimeFormat::ISO8601_FORMAT, 3600);
assertTrue (str == "2005-01-08T12:30:00+01:00");
str = DateTimeFormatter::format(dt, DateTimeFormat::ISO8601_FORMAT, -3600);
assertTrue (str == "2005-01-08T12:30:00-01:00");
}
void DateTimeFormatterTest::testISO8601Frac()
{
DateTime dt(2005, 1, 8, 12, 30, 00, 12, 34);
std::string str = DateTimeFormatter::format(dt, DateTimeFormat::ISO8601_FRAC_FORMAT);
assertTrue (str == "2005-01-08T12:30:00.012034Z");
str = DateTimeFormatter::format(dt, DateTimeFormat::ISO8601_FRAC_FORMAT, 3600);
assertTrue (str == "2005-01-08T12:30:00.012034+01:00");
str = DateTimeFormatter::format(dt, DateTimeFormat::ISO8601_FRAC_FORMAT, -3600);
assertTrue (str == "2005-01-08T12:30:00.012034-01:00");
}
void DateTimeFormatterTest::testRFC822()
{
DateTime dt(2005, 1, 8, 12, 30, 00);
std::string str = DateTimeFormatter::format(dt, DateTimeFormat::RFC822_FORMAT);
assertTrue (str == "Sat, 8 Jan 05 12:30:00 GMT");
str = DateTimeFormatter::format(dt, DateTimeFormat::RFC822_FORMAT, 3600);
assertTrue (str == "Sat, 8 Jan 05 12:30:00 +0100");
str = DateTimeFormatter::format(dt, DateTimeFormat::RFC822_FORMAT, -3600);
assertTrue (str == "Sat, 8 Jan 05 12:30:00 -0100");
}
void DateTimeFormatterTest::testRFC1123()
{
DateTime dt(2005, 1, 8, 12, 30, 00);
std::string str = DateTimeFormatter::format(dt, DateTimeFormat::RFC1123_FORMAT);
assertTrue (str == "Sat, 8 Jan 2005 12:30:00 GMT");
str = DateTimeFormatter::format(dt, DateTimeFormat::RFC1123_FORMAT, 3600);
assertTrue (str == "Sat, 8 Jan 2005 12:30:00 +0100");
str = DateTimeFormatter::format(dt, DateTimeFormat::RFC1123_FORMAT, -3600);
assertTrue (str == "Sat, 8 Jan 2005 12:30:00 -0100");
}
void DateTimeFormatterTest::testHTTP()
{
DateTime dt(2005, 1, 8, 12, 30, 00);
std::string str = DateTimeFormatter::format(dt, DateTimeFormat::HTTP_FORMAT);
assertTrue (str == "Sat, 08 Jan 2005 12:30:00 GMT");
str = DateTimeFormatter::format(dt, DateTimeFormat::HTTP_FORMAT, 3600);
assertTrue (str == "Sat, 08 Jan 2005 12:30:00 +0100");
str = DateTimeFormatter::format(dt, DateTimeFormat::HTTP_FORMAT, -3600);
assertTrue (str == "Sat, 08 Jan 2005 12:30:00 -0100");
}
void DateTimeFormatterTest::testRFC850()
{
DateTime dt(2005, 1, 8, 12, 30, 00);
std::string str = DateTimeFormatter::format(dt, DateTimeFormat::RFC850_FORMAT);
assertTrue (str == "Saturday, 8-Jan-05 12:30:00 GMT");
str = DateTimeFormatter::format(dt, DateTimeFormat::RFC850_FORMAT, 3600);
assertTrue (str == "Saturday, 8-Jan-05 12:30:00 +0100");
str = DateTimeFormatter::format(dt, DateTimeFormat::RFC850_FORMAT, -3600);
assertTrue (str == "Saturday, 8-Jan-05 12:30:00 -0100");
}
void DateTimeFormatterTest::testRFC1036()
{
DateTime dt(2005, 1, 8, 12, 30, 00);
std::string str = DateTimeFormatter::format(dt, DateTimeFormat::RFC1036_FORMAT);
assertTrue (str == "Saturday, 8 Jan 05 12:30:00 GMT");
str = DateTimeFormatter::format(dt, DateTimeFormat::RFC1036_FORMAT, 3600);
assertTrue (str == "Saturday, 8 Jan 05 12:30:00 +0100");
str = DateTimeFormatter::format(dt, DateTimeFormat::RFC1036_FORMAT, -3600);
assertTrue (str == "Saturday, 8 Jan 05 12:30:00 -0100");
}
void DateTimeFormatterTest::testASCTIME()
{
DateTime dt(2005, 1, 8, 12, 30, 00);
std::string str = DateTimeFormatter::format(dt, DateTimeFormat::ASCTIME_FORMAT);
assertTrue (str == "Sat Jan 8 12:30:00 2005");
}
void DateTimeFormatterTest::testSORTABLE()
{
DateTime dt(2005, 1, 8, 12, 30, 00);
std::string str = DateTimeFormatter::format(dt, DateTimeFormat::SORTABLE_FORMAT);
assertTrue (str == "2005-01-08 12:30:00");
}
void DateTimeFormatterTest::testCustom()
{
DateTime dt(2005, 1, 8, 12, 30, 00, 250);
std::string str = DateTimeFormatter::format(dt, "%w/%W/%b/%B/%d/%e/%f/%m/%n/%o/%y/%Y/%H/%h/%a/%A/%M/%S/%i/%c/%z/%Z/%%");
assertTrue (str == "Sat/Saturday/Jan/January/08/8/ 8/01/1/ 1/05/2005/12/12/pm/PM/30/00/250/2/Z/GMT/%");
}
void DateTimeFormatterTest::testTimespan()
{
Timespan ts(1, 1, 1, 1, 1000);
std::string str = DateTimeFormatter::format(ts);
assertTrue (str == "1d 01:01:01.001");
Timespan ts1(1, 24, 1, 1, 1000);
str = DateTimeFormatter::format(ts1);
assertTrue (str == "2d 00:01:01.001");
Timespan ts2(1, 25, 1, 1, 1000);
str = DateTimeFormatter::format(ts2);
assertTrue (str == "2d 01:01:01.001");
Timespan ts3(5, 4, 3, 2, 1000);
str = DateTimeFormatter::format(ts3, "%i.%S:%M:%H d%d %%");
assertTrue (str == "001.02:03:04 d5 %");
Timespan ts4(0, 24, 60, 60, 1001000);
str = DateTimeFormatter::format(ts4);
assertTrue (str == "1d 01:01:01.001");
Timespan ts5(2, 11, 30, 20, 0);
str = DateTimeFormatter::format(ts5, "%h %m %s");
assertTrue (str == "59 3570 214220");
}
void DateTimeFormatterTest::setUp()
{
}
void DateTimeFormatterTest::tearDown()
{
}
CppUnit::Test* DateTimeFormatterTest::suite()
{
CppUnit::TestSuite* pSuite = new CppUnit::TestSuite("DateTimeFormatterTest");
CppUnit_addTest(pSuite, DateTimeFormatterTest, testISO8601);
CppUnit_addTest(pSuite, DateTimeFormatterTest, testISO8601Frac);
CppUnit_addTest(pSuite, DateTimeFormatterTest, testRFC822);
CppUnit_addTest(pSuite, DateTimeFormatterTest, testRFC1123);
CppUnit_addTest(pSuite, DateTimeFormatterTest, testHTTP);
CppUnit_addTest(pSuite, DateTimeFormatterTest, testRFC850);
CppUnit_addTest(pSuite, DateTimeFormatterTest, testRFC1036);
CppUnit_addTest(pSuite, DateTimeFormatterTest, testASCTIME);
CppUnit_addTest(pSuite, DateTimeFormatterTest, testSORTABLE);
CppUnit_addTest(pSuite, DateTimeFormatterTest, testCustom);
CppUnit_addTest(pSuite, DateTimeFormatterTest, testTimespan);
return pSuite;
}

View File

@@ -0,0 +1,48 @@
//
// DateTimeFormatterTest.h
//
// Definition of the DateTimeFormatterTest class.
//
// Copyright (c) 2004-2006, Applied Informatics Software Engineering GmbH.
// and Contributors.
//
// SPDX-License-Identifier: BSL-1.0
//
#ifndef DateTimeFormatterTest_INCLUDED
#define DateTimeFormatterTest_INCLUDED
#include "Poco/Foundation.h"
#include "CppUnit/TestCase.h"
class DateTimeFormatterTest: public CppUnit::TestCase
{
public:
DateTimeFormatterTest(const std::string& name);
~DateTimeFormatterTest();
void testISO8601();
void testISO8601Frac();
void testRFC822();
void testRFC1123();
void testHTTP();
void testRFC850();
void testRFC1036();
void testASCTIME();
void testSORTABLE();
void testCustom();
void testTimespan();
void setUp();
void tearDown();
static CppUnit::Test* suite();
private:
};
#endif // DateTimeFormatterTest_INCLUDED

View File

@@ -0,0 +1,790 @@
//
// DateTimeParserTest.cpp
//
// Copyright (c) 2004-2006, Applied Informatics Software Engineering GmbH.
// and Contributors.
//
// SPDX-License-Identifier: BSL-1.0
//
#include "DateTimeParserTest.h"
#include "CppUnit/TestCaller.h"
#include "CppUnit/TestSuite.h"
#include "Poco/DateTimeParser.h"
#include "Poco/DateTimeFormat.h"
#include "Poco/DateTime.h"
#include "Poco/Timestamp.h"
#include "Poco/Exception.h"
using Poco::DateTime;
using Poco::DateTimeFormat;
using Poco::DateTimeParser;
using Poco::Timestamp;
using Poco::SyntaxException;
DateTimeParserTest::DateTimeParserTest(const std::string& name): CppUnit::TestCase(name)
{
}
DateTimeParserTest::~DateTimeParserTest()
{
}
void DateTimeParserTest::testISO8601()
{
int tzd;
DateTime dt = DateTimeParser::parse(DateTimeFormat::ISO8601_FORMAT, "2005-01-08T12:30:00Z", tzd);
assertTrue (dt.year() == 2005);
assertTrue (dt.month() == 1);
assertTrue (dt.day() == 8);
assertTrue (dt.hour() == 12);
assertTrue (dt.minute() == 30);
assertTrue (dt.second() == 0);
assertTrue (tzd == 0);
dt = DateTimeParser::parse(DateTimeFormat::ISO8601_FORMAT, "2005-01-08T12:30:00+01:00", tzd);
assertTrue (dt.year() == 2005);
assertTrue (dt.month() == 1);
assertTrue (dt.day() == 8);
assertTrue (dt.hour() == 12);
assertTrue (dt.minute() == 30);
assertTrue (dt.second() == 0);
assertTrue (tzd == 3600);
dt = DateTimeParser::parse(DateTimeFormat::ISO8601_FORMAT, "2005-01-08T12:30:00-01:00", tzd);
assertTrue (dt.year() == 2005);
assertTrue (dt.month() == 1);
assertTrue (dt.day() == 8);
assertTrue (dt.hour() == 12);
assertTrue (dt.minute() == 30);
assertTrue (dt.second() == 0);
assertTrue (tzd == -3600);
dt = DateTimeParser::parse(DateTimeFormat::ISO8601_FORMAT, "2005-01-08T12:30:00", tzd);
assertTrue (dt.year() == 2005);
assertTrue (dt.month() == 1);
assertTrue (dt.day() == 8);
assertTrue (dt.hour() == 12);
assertTrue (dt.minute() == 30);
assertTrue (dt.second() == 0);
assertTrue (tzd == 0);
dt = DateTimeParser::parse(DateTimeFormat::ISO8601_FORMAT, "2005-01-08", tzd);
assertTrue (dt.year() == 2005);
assertTrue (dt.month() == 1);
assertTrue (dt.day() == 8);
assertTrue (dt.hour() == 0);
assertTrue (dt.minute() == 0);
assertTrue (dt.second() == 0);
assertTrue (tzd == 0);
}
void DateTimeParserTest::testISO8601Frac()
{
int tzd;
DateTime dt = DateTimeParser::parse(DateTimeFormat::ISO8601_FRAC_FORMAT, "2005-01-08T12:30:00Z", tzd);
assertTrue (dt.year() == 2005);
assertTrue (dt.month() == 1);
assertTrue (dt.day() == 8);
assertTrue (dt.hour() == 12);
assertTrue (dt.minute() == 30);
assertTrue (dt.second() == 0);
assertTrue (dt.millisecond() == 0);
assertTrue (dt.microsecond() == 0);
assertTrue (tzd == 0);
dt = DateTimeParser::parse(DateTimeFormat::ISO8601_FRAC_FORMAT, "2005-01-08T12:30:00+01:00", tzd);
assertTrue (dt.year() == 2005);
assertTrue (dt.month() == 1);
assertTrue (dt.day() == 8);
assertTrue (dt.hour() == 12);
assertTrue (dt.minute() == 30);
assertTrue (dt.second() == 0);
assertTrue (dt.millisecond() == 0);
assertTrue (dt.microsecond() == 0);
assertTrue (tzd == 3600);
dt = DateTimeParser::parse(DateTimeFormat::ISO8601_FRAC_FORMAT, "2005-01-08T12:30:00-01:00", tzd);
assertTrue (dt.year() == 2005);
assertTrue (dt.month() == 1);
assertTrue (dt.day() == 8);
assertTrue (dt.hour() == 12);
assertTrue (dt.minute() == 30);
assertTrue (dt.second() == 0);
assertTrue (dt.millisecond() == 0);
assertTrue (dt.microsecond() == 0);
assertTrue (tzd == -3600);
dt = DateTimeParser::parse(DateTimeFormat::ISO8601_FRAC_FORMAT, "2005-01-08T12:30:00", tzd);
assertTrue (dt.year() == 2005);
assertTrue (dt.month() == 1);
assertTrue (dt.day() == 8);
assertTrue (dt.hour() == 12);
assertTrue (dt.minute() == 30);
assertTrue (dt.second() == 0);
assertTrue (dt.millisecond() == 0);
assertTrue (dt.microsecond() == 0);
assertTrue (tzd == 0);
dt = DateTimeParser::parse(DateTimeFormat::ISO8601_FRAC_FORMAT, "2005-01-08", tzd);
assertTrue (dt.year() == 2005);
assertTrue (dt.month() == 1);
assertTrue (dt.day() == 8);
assertTrue (dt.hour() == 0);
assertTrue (dt.minute() == 0);
assertTrue (dt.second() == 0);
assertTrue (dt.millisecond() == 0);
assertTrue (dt.microsecond() == 0);
assertTrue (tzd == 0);
dt = DateTimeParser::parse(DateTimeFormat::ISO8601_FRAC_FORMAT, "2005-01-08T12:30:00.1Z", tzd);
assertTrue (dt.year() == 2005);
assertTrue (dt.month() == 1);
assertTrue (dt.day() == 8);
assertTrue (dt.hour() == 12);
assertTrue (dt.minute() == 30);
assertTrue (dt.second() == 0);
assertTrue (dt.millisecond() == 100);
assertTrue (dt.microsecond() == 0);
assertTrue (tzd == 0);
dt = DateTimeParser::parse(DateTimeFormat::ISO8601_FRAC_FORMAT, "2005-01-08T12:30:00.123+01:00", tzd);
assertTrue (dt.year() == 2005);
assertTrue (dt.month() == 1);
assertTrue (dt.day() == 8);
assertTrue (dt.hour() == 12);
assertTrue (dt.minute() == 30);
assertTrue (dt.second() == 0);
assertTrue (dt.millisecond() == 123);
assertTrue (dt.microsecond() == 0);
assertTrue (tzd == 3600);
dt = DateTimeParser::parse(DateTimeFormat::ISO8601_FRAC_FORMAT, "2005-01-08T12:30:00.12345-01:00", tzd);
assertTrue (dt.year() == 2005);
assertTrue (dt.month() == 1);
assertTrue (dt.day() == 8);
assertTrue (dt.hour() == 12);
assertTrue (dt.minute() == 30);
assertTrue (dt.second() == 0);
assertTrue (dt.millisecond() == 123);
assertTrue (dt.microsecond() == 450);
assertTrue (tzd == -3600);
dt = DateTimeParser::parse(DateTimeFormat::ISO8601_FRAC_FORMAT, "2010-09-23T16:17:01.2817002+02:00", tzd);
assertTrue (dt.year() == 2010);
assertTrue (dt.month() == 9);
assertTrue (dt.day() == 23);
assertTrue (dt.hour() == 16);
assertTrue (dt.minute() == 17);
assertTrue (dt.second() == 1);
assertTrue (dt.millisecond() == 281);
assertTrue (dt.microsecond() == 700);
assertTrue (tzd == 7200);
dt = DateTimeParser::parse(DateTimeFormat::ISO8601_FRAC_FORMAT, "2005-01-08T12:30:00", tzd);
assertTrue (dt.year() == 2005);
assertTrue (dt.month() == 1);
assertTrue (dt.day() == 8);
assertTrue (dt.hour() == 12);
assertTrue (dt.minute() == 30);
assertTrue (dt.second() == 0);
assertTrue (dt.millisecond() == 0);
assertTrue (dt.microsecond() == 0);
assertTrue (tzd == 0);
dt = DateTimeParser::parse(DateTimeFormat::ISO8601_FRAC_FORMAT, "2005-01-08T12:30:00.123456", tzd);
assertTrue (dt.year() == 2005);
assertTrue (dt.month() == 1);
assertTrue (dt.day() == 8);
assertTrue (dt.hour() == 12);
assertTrue (dt.minute() == 30);
assertTrue (dt.second() == 0);
assertTrue (dt.millisecond() == 123);
assertTrue (dt.microsecond() == 456);
assertTrue (tzd == 0);
dt = DateTimeParser::parse(DateTimeFormat::ISO8601_FRAC_FORMAT, "2005-01-08", tzd);
assertTrue (dt.year() == 2005);
assertTrue (dt.month() == 1);
assertTrue (dt.day() == 8);
assertTrue (dt.hour() == 0);
assertTrue (dt.minute() == 0);
assertTrue (dt.second() == 0);
assertTrue (dt.millisecond() == 0);
assertTrue (dt.microsecond() == 0);
assertTrue (tzd == 0);
}
void DateTimeParserTest::testRFC822()
{
int tzd;
DateTime dt = DateTimeParser::parse(DateTimeFormat::RFC822_FORMAT, "Sat, 8 Jan 05 12:30:00 GMT", tzd);
assertTrue (dt.year() == 2005);
assertTrue (dt.month() == 1);
assertTrue (dt.day() == 8);
assertTrue (dt.hour() == 12);
assertTrue (dt.minute() == 30);
assertTrue (dt.second() == 0);
assertTrue (tzd == 0);
dt = DateTimeParser::parse(DateTimeFormat::RFC822_FORMAT, "Sat, 8 Jan 05 12:30:00 +0100", tzd);
assertTrue (dt.year() == 2005);
assertTrue (dt.month() == 1);
assertTrue (dt.day() == 8);
assertTrue (dt.hour() == 12);
assertTrue (dt.minute() == 30);
assertTrue (dt.second() == 0);
assertTrue (tzd == 3600);
dt = DateTimeParser::parse(DateTimeFormat::RFC822_FORMAT, "Sat, 8 Jan 05 12:30:00 -0100", tzd);
assertTrue (dt.year() == 2005);
assertTrue (dt.month() == 1);
assertTrue (dt.day() == 8);
assertTrue (dt.hour() == 12);
assertTrue (dt.minute() == 30);
assertTrue (dt.second() == 0);
assertTrue (tzd == -3600);
dt = DateTimeParser::parse(DateTimeFormat::RFC822_FORMAT, "Tue, 18 Jan 05 12:30:00 CET", tzd);
assertTrue (dt.year() == 2005);
assertTrue (dt.month() == 1);
assertTrue (dt.day() == 18);
assertTrue (dt.hour() == 12);
assertTrue (dt.minute() == 30);
assertTrue (dt.second() == 0);
assertTrue (tzd == 3600);
dt = DateTimeParser::parse(DateTimeFormat::RFC822_FORMAT, "Wed, 12 Sep 73 02:01:12 CEST", tzd);
assertTrue (dt.year() == 1973);
assertTrue (dt.month() == 9);
assertTrue (dt.day() == 12);
assertTrue (dt.hour() == 2);
assertTrue (dt.minute() == 1);
assertTrue (dt.second() == 12);
assertTrue (tzd == 7200);
dt = DateTimeParser::parse(DateTimeFormat::RFC822_FORMAT, "12 Sep 73 02:01:12 CEST", tzd);
assertTrue (dt.year() == 1973);
assertTrue (dt.month() == 9);
assertTrue (dt.day() == 12);
assertTrue (dt.hour() == 2);
assertTrue (dt.minute() == 1);
assertTrue (dt.second() == 12);
assertTrue (tzd == 7200);
}
void DateTimeParserTest::testRFC1123()
{
int tzd;
DateTime dt = DateTimeParser::parse(DateTimeFormat::RFC1123_FORMAT, "Sat, 8 Jan 2005 12:30:00 GMT", tzd);
assertTrue (dt.year() == 2005);
assertTrue (dt.month() == 1);
assertTrue (dt.day() == 8);
assertTrue (dt.hour() == 12);
assertTrue (dt.minute() == 30);
assertTrue (dt.second() == 0);
assertTrue (tzd == 0);
dt = DateTimeParser::parse(DateTimeFormat::RFC1123_FORMAT, "Sat, 8 Jan 2005 12:30:00 +0100", tzd);
assertTrue (dt.year() == 2005);
assertTrue (dt.month() == 1);
assertTrue (dt.day() == 8);
assertTrue (dt.hour() == 12);
assertTrue (dt.minute() == 30);
assertTrue (dt.second() == 0);
assertTrue (tzd == 3600);
dt = DateTimeParser::parse(DateTimeFormat::RFC1123_FORMAT, "Sat, 8 Jan 2005 12:30:00 -0100", tzd);
assertTrue (dt.year() == 2005);
assertTrue (dt.month() == 1);
assertTrue (dt.day() == 8);
assertTrue (dt.hour() == 12);
assertTrue (dt.minute() == 30);
assertTrue (dt.second() == 0);
assertTrue (tzd == -3600);
dt = DateTimeParser::parse(DateTimeFormat::RFC1123_FORMAT, "Sun, 20 Jul 1969 16:17:30 EDT", tzd);
assertTrue (dt.year() == 1969);
assertTrue (dt.month() == 7);
assertTrue (dt.day() == 20);
assertTrue (dt.hour() == 16);
assertTrue (dt.minute() == 17);
assertTrue (dt.second() == 30);
assertTrue (tzd == -14400);
dt = DateTimeParser::parse(DateTimeFormat::RFC1123_FORMAT, "Sun, 20 Jul 1969 16:17:30 GMT+01:00", tzd);
assertTrue (dt.year() == 1969);
assertTrue (dt.month() == 7);
assertTrue (dt.day() == 20);
assertTrue (dt.hour() == 16);
assertTrue (dt.minute() == 17);
assertTrue (dt.second() == 30);
assertTrue (tzd == 3600);
}
void DateTimeParserTest::testHTTP()
{
int tzd;
DateTime dt = DateTimeParser::parse(DateTimeFormat::HTTP_FORMAT, "Sat, 08 Jan 2005 12:30:00 GMT", tzd);
assertTrue (dt.year() == 2005);
assertTrue (dt.month() == 1);
assertTrue (dt.day() == 8);
assertTrue (dt.hour() == 12);
assertTrue (dt.minute() == 30);
assertTrue (dt.second() == 0);
assertTrue (tzd == 0);
dt = DateTimeParser::parse(DateTimeFormat::HTTP_FORMAT, "Sat, 08 Jan 2005 12:30:00 +0100", tzd);
assertTrue (dt.year() == 2005);
assertTrue (dt.month() == 1);
assertTrue (dt.day() == 8);
assertTrue (dt.hour() == 12);
assertTrue (dt.minute() == 30);
assertTrue (dt.second() == 0);
assertTrue (tzd == 3600);
dt = DateTimeParser::parse(DateTimeFormat::HTTP_FORMAT, "Sat, 08 Jan 2005 12:30:00 -0100", tzd);
assertTrue (dt.year() == 2005);
assertTrue (dt.month() == 1);
assertTrue (dt.day() == 8);
assertTrue (dt.hour() == 12);
assertTrue (dt.minute() == 30);
assertTrue (dt.second() == 0);
assertTrue (tzd == -3600);
}
void DateTimeParserTest::testRFC850()
{
int tzd;
DateTime dt = DateTimeParser::parse(DateTimeFormat::RFC850_FORMAT, "Saturday, 8-Jan-05 12:30:00 GMT", tzd);
assertTrue (dt.year() == 2005);
assertTrue (dt.month() == 1);
assertTrue (dt.day() == 8);
assertTrue (dt.hour() == 12);
assertTrue (dt.minute() == 30);
assertTrue (dt.second() == 0);
assertTrue (tzd == 0);
dt = DateTimeParser::parse(DateTimeFormat::RFC850_FORMAT, "Saturday, 8-Jan-05 12:30:00 +0100", tzd);
assertTrue (dt.year() == 2005);
assertTrue (dt.month() == 1);
assertTrue (dt.day() == 8);
assertTrue (dt.hour() == 12);
assertTrue (dt.minute() == 30);
assertTrue (dt.second() == 0);
assertTrue (tzd == 3600);
dt = DateTimeParser::parse(DateTimeFormat::RFC850_FORMAT, "Saturday, 8-Jan-05 12:30:00 -0100", tzd);
assertTrue (dt.year() == 2005);
assertTrue (dt.month() == 1);
assertTrue (dt.day() == 8);
assertTrue (dt.hour() == 12);
assertTrue (dt.minute() == 30);
assertTrue (dt.second() == 0);
assertTrue (tzd == -3600);
dt = DateTimeParser::parse(DateTimeFormat::RFC850_FORMAT, "Wed, 12-Sep-73 02:01:12 CEST", tzd);
assertTrue (dt.year() == 1973);
assertTrue (dt.month() == 9);
assertTrue (dt.day() == 12);
assertTrue (dt.hour() == 2);
assertTrue (dt.minute() == 1);
assertTrue (dt.second() == 12);
assertTrue (tzd == 7200);
}
void DateTimeParserTest::testRFC1036()
{
int tzd;
DateTime dt = DateTimeParser::parse(DateTimeFormat::RFC1036_FORMAT, "Saturday, 8 Jan 05 12:30:00 GMT", tzd);
assertTrue (dt.year() == 2005);
assertTrue (dt.month() == 1);
assertTrue (dt.day() == 8);
assertTrue (dt.hour() == 12);
assertTrue (dt.minute() == 30);
assertTrue (dt.second() == 0);
assertTrue (tzd == 0);
dt = DateTimeParser::parse(DateTimeFormat::RFC1036_FORMAT, "Saturday, 8 Jan 05 12:30:00 +0100", tzd);
assertTrue (dt.year() == 2005);
assertTrue (dt.month() == 1);
assertTrue (dt.day() == 8);
assertTrue (dt.hour() == 12);
assertTrue (dt.minute() == 30);
assertTrue (dt.second() == 0);
assertTrue (tzd == 3600);
dt = DateTimeParser::parse(DateTimeFormat::RFC1036_FORMAT, "Saturday, 8 Jan 05 12:30:00 -0100", tzd);
assertTrue (dt.year() == 2005);
assertTrue (dt.month() == 1);
assertTrue (dt.day() == 8);
assertTrue (dt.hour() == 12);
assertTrue (dt.minute() == 30);
assertTrue (dt.second() == 0);
assertTrue (tzd == -3600);
}
void DateTimeParserTest::testASCTIME()
{
int tzd;
DateTime dt = DateTimeParser::parse(DateTimeFormat::ASCTIME_FORMAT, "Sat Jan 8 12:30:00 2005", tzd);
assertTrue (dt.year() == 2005);
assertTrue (dt.month() == 1);
assertTrue (dt.day() == 8);
assertTrue (dt.hour() == 12);
assertTrue (dt.minute() == 30);
assertTrue (dt.second() == 0);
assertTrue (tzd == 0);
}
void DateTimeParserTest::testSORTABLE()
{
int tzd;
DateTime dt = DateTimeParser::parse(DateTimeFormat::SORTABLE_FORMAT, "2005-01-08 12:30:00", tzd);
assertTrue (dt.year() == 2005);
assertTrue (dt.month() == 1);
assertTrue (dt.day() == 8);
assertTrue (dt.hour() == 12);
assertTrue (dt.minute() == 30);
assertTrue (dt.second() == 0);
assertTrue (tzd == 0);
dt = DateTimeParser::parse(DateTimeFormat::SORTABLE_FORMAT, "2005-01-08", tzd);
assertTrue (dt.year() == 2005);
assertTrue (dt.month() == 1);
assertTrue (dt.day() == 8);
assertTrue (dt.hour() == 0);
assertTrue (dt.minute() == 0);
assertTrue (dt.second() == 0);
assertTrue (tzd == 0);
}
void DateTimeParserTest::testCustom()
{
int tzd;
DateTime dt = DateTimeParser::parse("%d-%b-%Y", "18-Jan-2005", tzd);
assertTrue (dt.year() == 2005);
assertTrue (dt.month() == 1);
assertTrue (dt.day() == 18);
assertTrue (dt.hour() == 0);
assertTrue (dt.minute() == 0);
assertTrue (dt.second() == 0);
assertTrue (tzd == 0);
dt = DateTimeParser::parse("%m/%d/%y", "01/18/05", tzd);
assertTrue (dt.year() == 2005);
assertTrue (dt.month() == 1);
assertTrue (dt.day() == 18);
assertTrue (dt.hour() == 0);
assertTrue (dt.minute() == 0);
assertTrue (dt.second() == 0);
assertTrue (tzd == 0);
dt = DateTimeParser::parse("%h:%M %a", "12:30 am", tzd);
assertTrue (dt.hour() == 0);
assertTrue (dt.minute() == 30);
assertTrue (dt.second() == 0);
dt = DateTimeParser::parse("%h:%M %a", "12:30 PM", tzd);
assertTrue (dt.hour() == 12);
assertTrue (dt.minute() == 30);
assertTrue (dt.second() == 0);
assertTrue (!DateTimeParser::tryParse("%h:%M %a", "", dt, tzd));
assertTrue (!DateTimeParser::tryParse("", "12:30 PM", dt, tzd));
assertTrue (!DateTimeParser::tryParse("", "", dt, tzd));
try
{
DateTimeParser::parse("%h:%M %a", "", tzd);
fail ("must fail");
}
catch (SyntaxException&)
{
}
try
{
DateTimeParser::parse("", "12:30 PM", tzd);
fail ("must fail");
}
catch (SyntaxException&)
{
}
try
{
DateTimeParser::parse("", "", tzd);
fail ("must fail");
}
catch (SyntaxException&)
{
}
}
void DateTimeParserTest::testGuess()
{
int tzd;
DateTime dt = DateTimeParser::parse("2005-01-08T12:30:00Z", tzd);
assertTrue (dt.year() == 2005);
assertTrue (dt.month() == 1);
assertTrue (dt.day() == 8);
assertTrue (dt.hour() == 12);
assertTrue (dt.minute() == 30);
assertTrue (dt.second() == 0);
assertTrue (tzd == 0);
dt = DateTimeParser::parse("20050108T123000Z", tzd);
assertTrue (dt.year() == 2005);
assertTrue (dt.month() == 1);
assertTrue (dt.day() == 8);
assertTrue (dt.hour() == 12);
assertTrue (dt.minute() == 30);
assertTrue (dt.second() == 0);
assertTrue (tzd == 0);
dt = DateTimeParser::parse("2005-01-08T12:30:00+01:00", tzd);
assertTrue (dt.year() == 2005);
assertTrue (dt.month() == 1);
assertTrue (dt.day() == 8);
assertTrue (dt.hour() == 12);
assertTrue (dt.minute() == 30);
assertTrue (dt.second() == 0);
assertTrue (tzd == 3600);
dt = DateTimeParser::parse("2005-01-08T12:30:00.123456Z", tzd);
assertTrue (dt.year() == 2005);
assertTrue (dt.month() == 1);
assertTrue (dt.day() == 8);
assertTrue (dt.hour() == 12);
assertTrue (dt.minute() == 30);
assertTrue (dt.second() == 0);
assertTrue (tzd == 0);
assertTrue (dt.millisecond() == 123);
assertTrue (dt.microsecond() == 456);
dt = DateTimeParser::parse("2005-01-08T12:30:00,123456Z", tzd);
assertTrue (dt.year() == 2005);
assertTrue (dt.month() == 1);
assertTrue (dt.day() == 8);
assertTrue (dt.hour() == 12);
assertTrue (dt.minute() == 30);
assertTrue (dt.second() == 0);
assertTrue (tzd == 0);
assertTrue (dt.millisecond() == 123);
assertTrue (dt.microsecond() == 456);
dt = DateTimeParser::parse("20050108T123000,123456Z", tzd);
assertTrue (dt.year() == 2005);
assertTrue (dt.month() == 1);
assertTrue (dt.day() == 8);
assertTrue (dt.hour() == 12);
assertTrue (dt.minute() == 30);
assertTrue (dt.second() == 0);
assertTrue (tzd == 0);
assertTrue (dt.millisecond() == 123);
assertTrue (dt.microsecond() == 456);
dt = DateTimeParser::parse("20050108T123000.123+0200", tzd);
assertTrue (dt.year() == 2005);
assertTrue (dt.month() == 1);
assertTrue (dt.day() == 8);
assertTrue (dt.hour() == 12);
assertTrue (dt.minute() == 30);
assertTrue (dt.second() == 0);
assertTrue (tzd == 7200);
assertTrue (dt.millisecond() == 123);
assertTrue (dt.microsecond() == 0);
dt = DateTimeParser::parse("2005-01-08T12:30:00.123456-02:00", tzd);
assertTrue (dt.year() == 2005);
assertTrue (dt.month() == 1);
assertTrue (dt.day() == 8);
assertTrue (dt.hour() == 12);
assertTrue (dt.minute() == 30);
assertTrue (dt.second() == 0);
assertTrue (tzd == -7200);
assertTrue (dt.millisecond() == 123);
assertTrue (dt.microsecond() == 456);
dt = DateTimeParser::parse("Sat, 8 Jan 05 12:30:00 +0100", tzd);
assertTrue (dt.year() == 2005);
assertTrue (dt.month() == 1);
assertTrue (dt.day() == 8);
assertTrue (dt.hour() == 12);
assertTrue (dt.minute() == 30);
assertTrue (dt.second() == 0);
assertTrue (tzd == 3600);
dt = DateTimeParser::parse("Sat, 8 Jan 2005 12:30:00 +0100", tzd);
assertTrue (dt.year() == 2005);
assertTrue (dt.month() == 1);
assertTrue (dt.day() == 8);
assertTrue (dt.hour() == 12);
assertTrue (dt.minute() == 30);
assertTrue (dt.second() == 0);
assertTrue (tzd == 3600);
dt = DateTimeParser::parse("Sat Jan 8 12:30:00 2005", tzd);
assertTrue (dt.year() == 2005);
assertTrue (dt.month() == 1);
assertTrue (dt.day() == 8);
assertTrue (dt.hour() == 12);
assertTrue (dt.minute() == 30);
assertTrue (dt.second() == 0);
assertTrue (tzd == 0);
dt = DateTimeParser::parse("2005-01-08 12:30:00", tzd);
assertTrue (dt.year() == 2005);
assertTrue (dt.month() == 1);
assertTrue (dt.day() == 8);
assertTrue (dt.hour() == 12);
assertTrue (dt.minute() == 30);
assertTrue (dt.second() == 0);
assertTrue (tzd == 0);
dt = DateTimeParser::parse("2005-01-08", tzd);
assertTrue (dt.year() == 2005);
assertTrue (dt.month() == 1);
assertTrue (dt.day() == 8);
assertTrue (dt.hour() == 0);
assertTrue (dt.minute() == 0);
assertTrue (dt.second() == 0);
assertTrue (tzd == 0);
}
void DateTimeParserTest::testParseMonth()
{
std::string str = "January";
std::string::const_iterator it = str.begin();
int month = DateTimeParser::parseMonth(it, str.end());
assertTrue (month == 1);
str = "February";
it = str.begin();
month = DateTimeParser::parseMonth(it, str.end());
assertTrue (month == 2);
str = "December";
it = str.begin();
month = DateTimeParser::parseMonth(it, str.end());
assertTrue (month == 12);
str = "Jan";
it = str.begin();
month = DateTimeParser::parseMonth(it, str.end());
assertTrue (month == 1);
str = "Feb";
it = str.begin();
month = DateTimeParser::parseMonth(it, str.end());
assertTrue (month == 2);
str = "jan";
it = str.begin();
month = DateTimeParser::parseMonth(it, str.end());
assertTrue (month == 1);
str = "feb";
it = str.begin();
month = DateTimeParser::parseMonth(it, str.end());
assertTrue (month == 2);
try
{
str = "ja";
it = str.begin();
month = DateTimeParser::parseMonth(it, str.end());
fail("Not a valid month name - must throw");
}
catch (SyntaxException&)
{
}
}
void DateTimeParserTest::testParseDayOfWeek()
{
std::string str = "Sunday";
std::string::const_iterator it = str.begin();
int dow = DateTimeParser::parseDayOfWeek(it, str.end());
assertTrue (dow == 0);
str = "Monday";
it = str.begin();
dow = DateTimeParser::parseDayOfWeek(it, str.end());
assertTrue (dow == 1);
str = "Saturday";
it = str.begin();
dow = DateTimeParser::parseDayOfWeek(it, str.end());
assertTrue (dow == 6);
str = "Sun";
it = str.begin();
dow = DateTimeParser::parseDayOfWeek(it, str.end());
assertTrue (dow == 0);
str = "Mon";
it = str.begin();
dow = DateTimeParser::parseDayOfWeek(it, str.end());
assertTrue (dow == 1);
str = "sun";
it = str.begin();
dow = DateTimeParser::parseDayOfWeek(it, str.end());
assertTrue (dow == 0);
str = "mon";
it = str.begin();
dow = DateTimeParser::parseDayOfWeek(it, str.end());
assertTrue (dow == 1);
try
{
str = "su";
it = str.begin();
dow = DateTimeParser::parseDayOfWeek(it, str.end());
fail("Not a valid weekday name - must throw");
}
catch (SyntaxException&)
{
}
}
void DateTimeParserTest::setUp()
{
}
void DateTimeParserTest::tearDown()
{
}
CppUnit::Test* DateTimeParserTest::suite()
{
CppUnit::TestSuite* pSuite = new CppUnit::TestSuite("DateTimeParserTest");
CppUnit_addTest(pSuite, DateTimeParserTest, testISO8601);
CppUnit_addTest(pSuite, DateTimeParserTest, testISO8601Frac);
CppUnit_addTest(pSuite, DateTimeParserTest, testRFC822);
CppUnit_addTest(pSuite, DateTimeParserTest, testRFC1123);
CppUnit_addTest(pSuite, DateTimeParserTest, testHTTP);
CppUnit_addTest(pSuite, DateTimeParserTest, testRFC850);
CppUnit_addTest(pSuite, DateTimeParserTest, testRFC1036);
CppUnit_addTest(pSuite, DateTimeParserTest, testASCTIME);
CppUnit_addTest(pSuite, DateTimeParserTest, testSORTABLE);
CppUnit_addTest(pSuite, DateTimeParserTest, testCustom);
CppUnit_addTest(pSuite, DateTimeParserTest, testGuess);
CppUnit_addTest(pSuite, DateTimeParserTest, testParseMonth);
CppUnit_addTest(pSuite, DateTimeParserTest, testParseDayOfWeek);
return pSuite;
}

View File

@@ -0,0 +1,50 @@
//
// DateTimeParserTest.h
//
// Definition of the DateTimeParserTest class.
//
// Copyright (c) 2004-2006, Applied Informatics Software Engineering GmbH.
// and Contributors.
//
// SPDX-License-Identifier: BSL-1.0
//
#ifndef DateTimeParserTest_INCLUDED
#define DateTimeParserTest_INCLUDED
#include "Poco/Foundation.h"
#include "CppUnit/TestCase.h"
class DateTimeParserTest: public CppUnit::TestCase
{
public:
DateTimeParserTest(const std::string& name);
~DateTimeParserTest();
void testISO8601();
void testISO8601Frac();
void testRFC822();
void testRFC1123();
void testHTTP();
void testRFC850();
void testRFC1036();
void testASCTIME();
void testSORTABLE();
void testCustom();
void testGuess();
void testParseMonth();
void testParseDayOfWeek();
void setUp();
void tearDown();
static CppUnit::Test* suite();
private:
};
#endif // DateTimeParserTest_INCLUDED

View File

@@ -0,0 +1,909 @@
//
// DateTimeTest.cpp
//
// Copyright (c) 2004-2006, Applied Informatics Software Engineering GmbH.
// and Contributors.
//
// SPDX-License-Identifier: BSL-1.0
//
#include "DateTimeTest.h"
#include "CppUnit/TestCaller.h"
#include "CppUnit/TestSuite.h"
#include "Poco/DateTime.h"
#include "Poco/Timestamp.h"
#include "Poco/Timespan.h"
#include "Poco/Exception.h"
using Poco::Timestamp;
using Poco::DateTime;
using Poco::Timespan;
using Poco::AssertionViolationException;
DateTimeTest::DateTimeTest(const std::string& name): CppUnit::TestCase(name)
{
}
DateTimeTest::~DateTimeTest()
{
}
void DateTimeTest::testTimestamp()
{
Timestamp ts(0); // Unix epoch 1970-01-01 00:00:00 Thursday
DateTime dt(ts);
assertTrue (dt.year() == 1970);
assertTrue (dt.month() == 1);
assertTrue (dt.day() == 1);
assertTrue (dt.hour() == 0);
assertTrue (dt.minute() == 0);
assertTrue (dt.second() == 0);
assertTrue (dt.millisecond() == 0);
assertTrue (dt.dayOfWeek() == 4);
assertTrue (dt.julianDay() == 2440587.5);
assertTrue (dt.timestamp() == 0);
ts = Timestamp::fromEpochTime(1000000000);
dt = ts; // 2001-09-09 01:46:40 Sunday
assertTrue (dt.year() == 2001);
assertTrue (dt.month() == 9);
assertTrue (dt.day() == 9);
assertTrue (dt.hour() == 1);
assertTrue (dt.minute() == 46);
assertTrue (dt.second() == 40);
assertTrue (dt.millisecond() == 0);
assertTrue (dt.dayOfWeek() == 0);
assertTrue (dt.timestamp().epochTime() == 1000000000);
assertEqualDelta (dt.julianDay(), 2452161.574074, 0.000001);
}
void DateTimeTest::testJulian()
{
DateTime dt(2440587.5); // unix epoch as Julian day
assertTrue (dt.year() == 1970);
assertTrue (dt.month() == 1);
assertTrue (dt.day() == 1);
assertTrue (dt.hour() == 0);
assertTrue (dt.minute() == 0);
assertTrue (dt.second() == 0);
assertTrue (dt.millisecond() == 0);
assertTrue (dt.dayOfWeek() == 4);
assertTrue (dt.julianDay() == 2440587.5);
assertTrue (dt.timestamp() == 0);
dt = 2299160.5; // 1582-10-15 00:00:00 (first day of Gregorian reform, UTC base)
assertTrue (dt.year() == 1582);
assertTrue (dt.month() == 10);
assertTrue (dt.day() == 15);
assertTrue (dt.hour() == 0);
assertTrue (dt.minute() == 0);
assertTrue (dt.second() == 0);
assertTrue (dt.millisecond() == 0);
assertTrue (dt.dayOfWeek() == 5);
assertTrue (dt.julianDay() == 2299160.5);
dt = 0.0; // -4713-11-24 12:00:00 (Gregorian date of Julian day reference)
assertTrue (dt.year() == -4713);
assertTrue (dt.month() == 11);
assertTrue (dt.day() == 24);
assertTrue (dt.hour() == 12);
assertTrue (dt.minute() == 0);
assertTrue (dt.second() == 0);
assertTrue (dt.millisecond() == 0);
assertTrue (dt.dayOfWeek() == 1);
assertTrue (dt.julianDay() == 0);
// Test that we can represent down to the microsecond.
dt = DateTime(2010, 1, 31, 17, 30, 15, 800, 3);
assertTrue (dt.year() == 2010);
assertTrue (dt.month() == 1);
assertTrue (dt.day() == 31);
assertTrue (dt.hour() == 17);
assertTrue (dt.minute() == 30);
assertTrue (dt.second() == 15);
assertTrue (dt.millisecond() == 800);
assertTrue (dt.microsecond() == 3);
}
void DateTimeTest::testGregorian()
{
DateTime dt(1970, 1, 1);
assertTrue (dt.year() == 1970);
assertTrue (dt.month() == 1);
assertTrue (dt.day() == 1);
assertTrue (dt.hour() == 0);
assertTrue (dt.minute() == 0);
assertTrue (dt.second() == 0);
assertTrue (dt.millisecond() == 0);
assertTrue (dt.dayOfWeek() == 4);
assertTrue (dt.julianDay() == 2440587.5);
assertTrue (dt.timestamp() == 0);
dt.assign(2001, 9, 9, 1, 46, 40);
assertTrue (dt.year() == 2001);
assertTrue (dt.month() == 9);
assertTrue (dt.day() == 9);
assertTrue (dt.hour() == 1);
assertTrue (dt.minute() == 46);
assertTrue (dt.second() == 40);
assertTrue (dt.millisecond() == 0);
assertTrue (dt.dayOfWeek() == 0);
assertTrue (dt.timestamp().epochTime() == 1000000000);
assertEqualDelta (dt.julianDay(), 2452161.574074, 0.000001);
}
void DateTimeTest::testConversions()
{
DateTime dt1(2005, 1, 28, 14, 24, 44, 234);
Timestamp ts1 = dt1.timestamp();
DateTime dt2(ts1);
Timestamp ts2 = dt2.timestamp();
DateTime dt3;
dt3 = dt1;
Timestamp ts3 = dt3.timestamp();
DateTime dt4(dt2);
Timestamp ts4 = dt4.timestamp();
assertTrue (ts1 == ts2);
assertTrue (ts2 == ts3);
assertTrue (ts3 == ts4);
assertTrue (dt2.year() == 2005);
assertTrue (dt2.month() == 1);
assertTrue (dt2.day() == 28);
assertTrue (dt2.hour() == 14);
assertTrue (dt2.minute() == 24);
assertTrue (dt2.second() == 44);
assertTrue (dt2.millisecond() == 234);
assertTrue (dt2.dayOfWeek() == 5);
}
void DateTimeTest::testStatics()
{
assertTrue (DateTime::isLeapYear(1984));
assertTrue (DateTime::isLeapYear(1988));
assertTrue (DateTime::isLeapYear(1992));
assertTrue (DateTime::isLeapYear(1996));
assertTrue (DateTime::isLeapYear(2000));
assertTrue (DateTime::isLeapYear(2400));
assertTrue (!DateTime::isLeapYear(1995));
assertTrue (!DateTime::isLeapYear(1998));
assertTrue (!DateTime::isLeapYear(2001));
assertTrue (!DateTime::isLeapYear(1800));
assertTrue (!DateTime::isLeapYear(1900));
assertTrue (DateTime::daysOfMonth(2000, 1) == 31);
assertTrue (DateTime::daysOfMonth(2000, 2) == 29);
assertTrue (DateTime::daysOfMonth(1999, 2) == 28);
}
void DateTimeTest::testCalcs()
{
DateTime dt1(2005, 1, 1);
assertTrue (dt1.dayOfYear() == 1);
assertTrue (dt1.week(DateTime::MONDAY) == 0);
dt1.assign(2005, 1, 3);
assertTrue (dt1.dayOfYear() == 3);
assertTrue (dt1.week(DateTime::MONDAY) == 1);
dt1.assign(2005, 1, 9);
assertTrue (dt1.dayOfYear() == 9);
assertTrue (dt1.week(DateTime::MONDAY) == 1);
dt1.assign(2005, 1, 10);
assertTrue (dt1.dayOfYear() == 10);
assertTrue (dt1.week(DateTime::MONDAY) == 2);
dt1.assign(2005, 2, 1);
assertTrue (dt1.dayOfYear() == 32);
assertTrue (dt1.week(DateTime::MONDAY) == 5);
dt1.assign(2005, 12, 31);
assertTrue (dt1.week(DateTime::MONDAY) == 52);
dt1.assign(2007, 1, 1);
assertTrue (dt1.week(DateTime::MONDAY) == 1);
dt1.assign(2007, 12, 31);
assertTrue (dt1.week(DateTime::MONDAY) == 53);
// Jan 1 is Mon
dt1.assign(2001, 1, 1);
assertTrue (dt1.week() == 1);
dt1.assign(2001, 1, 7);
assertTrue (dt1.week() == 1);
dt1.assign(2001, 1, 8);
assertTrue (dt1.week() == 2);
dt1.assign(2001, 1, 21);
assertTrue (dt1.week() == 3);
dt1.assign(2001, 1, 22);
assertTrue (dt1.week() == 4);
// Jan 1 is Tue
dt1.assign(2002, 1, 1);
assertTrue (dt1.week() == 1);
dt1.assign(2002, 1, 6);
assertTrue (dt1.week() == 1);
dt1.assign(2002, 1, 7);
assertTrue (dt1.week() == 2);
dt1.assign(2002, 1, 20);
assertTrue (dt1.week() == 3);
dt1.assign(2002, 1, 21);
assertTrue (dt1.week() == 4);
// Jan 1 is Wed
dt1.assign(2003, 1, 1);
assertTrue (dt1.week() == 1);
dt1.assign(2003, 1, 5);
assertTrue (dt1.week() == 1);
dt1.assign(2003, 1, 6);
assertTrue (dt1.week() == 2);
dt1.assign(2003, 1, 19);
assertTrue (dt1.week() == 3);
dt1.assign(2003, 1, 20);
assertTrue (dt1.week() == 4);
// Jan 1 is Thu
dt1.assign(2004, 1, 1);
assertTrue (dt1.week() == 1);
dt1.assign(2004, 1, 4);
assertTrue (dt1.week() == 1);
dt1.assign(2004, 1, 5);
assertTrue (dt1.week() == 2);
dt1.assign(2004, 1, 18);
assertTrue (dt1.week() == 3);
dt1.assign(2004, 1, 19);
assertTrue (dt1.week() == 4);
// Jan 1 is Fri
dt1.assign(1999, 1, 1);
assertTrue (dt1.week() == 0);
dt1.assign(1999, 1, 3);
assertTrue (dt1.week() == 0);
dt1.assign(1999, 1, 4);
assertTrue (dt1.week() == 1);
dt1.assign(1999, 1, 17);
assertTrue (dt1.week() == 2);
dt1.assign(1999, 1, 18);
assertTrue (dt1.week() == 3);
// Jan 1 is Sat
dt1.assign(2000, 1, 1);
assertTrue (dt1.week() == 0);
dt1.assign(2000, 1, 2);
assertTrue (dt1.week() == 0);
dt1.assign(2000, 1, 3);
assertTrue (dt1.week() == 1);
dt1.assign(2000, 1, 16);
assertTrue (dt1.week() == 2);
dt1.assign(2000, 1, 17);
assertTrue (dt1.week() == 3);
// Jan 1 is Sun
dt1.assign(1995, 1, 1);
assertTrue (dt1.week() == 0);
dt1.assign(1995, 1, 2);
assertTrue (dt1.week() == 1);
dt1.assign(1995, 1, 3);
assertTrue (dt1.week() == 1);
dt1.assign(1995, 1, 15);
assertTrue (dt1.week() == 2);
dt1.assign(1995, 1, 16);
assertTrue (dt1.week() == 3);
}
void DateTimeTest::testAMPM()
{
DateTime dt1(2005, 1, 1, 0, 15, 30);
assertTrue (dt1.isAM());
assertTrue (!dt1.isPM());
assertTrue (dt1.hourAMPM() == 12);
dt1.assign(2005, 1, 1, 12, 15, 30);
assertTrue (!dt1.isAM());
assertTrue (dt1.isPM());
assertTrue (dt1.hourAMPM() == 12);
dt1.assign(2005, 1, 1, 13, 15, 30);
assertTrue (!dt1.isAM());
assertTrue (dt1.isPM());
assertTrue (dt1.hourAMPM() == 1);
}
void DateTimeTest::testRelational()
{
DateTime dt1(2005, 1, 1, 0, 15, 30);
DateTime dt2(2005, 1, 2, 0, 15, 30);
DateTime dt3(dt1);
assertTrue (dt1 < dt2);
assertTrue (dt1 <= dt2);
assertTrue (dt2 > dt1);
assertTrue (dt2 >= dt1);
assertTrue (dt1 != dt2);
assertTrue (!(dt1 == dt2));
assertTrue (dt1 == dt3);
assertTrue (!(dt1 != dt3));
assertTrue (dt1 >= dt3);
assertTrue (dt1 <= dt3);
assertTrue (!(dt1 > dt3));
assertTrue (!(dt1 < dt3));
static const struct
{
int year;
int month;
int day;
} values[] =
{
{ 1, 1, 1 },
{ 10, 4, 5 },
{ 100, 6, 7 },
{ 1000, 8, 9 },
{ 2000, 1, 31 },
{ 2002, 7, 4 },
{ 2002, 12, 31 },
{ 2003, 1, 1 },
{ 2003, 1, 2 },
{ 2003, 8, 5 },
{ 2003, 8, 6 },
{ 2003, 8, 7 },
{ 2004, 9, 3 },
{ 2004, 9, 4 },
};
const int num_values = sizeof values / sizeof *values;
for (int i = 0; i < num_values; ++i)
{
DateTime v;
const DateTime& V = v;
v.assign(values[i].year, values[i].month, values[i].day);
for (int j = 0; j < num_values; ++j)
{
DateTime u;
const DateTime& U = u;
u.assign(values[j].year, values[j].month, values[j].day);
loop_2_assert (i, j, (j < i) == (U < V));
loop_2_assert (i, j, (j <= i) == (U <= V));
loop_2_assert (i, j, (j >= i) == (U >= V));
loop_2_assert (i, j, (j > i) == (U > V));
}
}
}
void DateTimeTest::testArithmetics()
{
DateTime dt1(2005, 1, 1, 0, 15, 30);
DateTime dt2(2005, 1, 2, 0, 15, 30);
Timespan s = dt2 - dt1;
assertTrue (s.days() == 1);
DateTime dt3 = dt1 + s;
assertTrue (dt3 == dt2);
dt3 -= s;
assertTrue (dt3 == dt1);
dt1 += s;
assertTrue (dt1 == dt2);
static const struct
{
int lineNum; // source line number
int year1; // operand/result date1 year
int month1; // operand/result date1 month
unsigned int day1; // operand/result date1 day
int numDays; // operand/result 'int' number of days
int year2; // operand/result date2 year
int month2; // operand/result date2 month
unsigned int day2; // operand/result date2 day
} data[] =
{
// - - - -first- - - - - - - second - - -
//line no. year month day numDays year month day
//------- ----- ----- ----- ------- ----- ----- -----
{ __LINE__, 1, 1, 1, 1, 1, 1, 2 },
{ __LINE__, 10, 2, 28, 1, 10, 3, 1 },
{ __LINE__, 100, 3, 31, 2, 100, 4, 2 },
{ __LINE__, 1000, 4, 30, 4, 1000, 5, 4 },
{ __LINE__, 1000, 6, 1, -31, 1000, 5, 1 },
{ __LINE__, 1001, 1, 1, -365, 1000, 1, 1 },
{ __LINE__, 1100, 5, 31, 30, 1100, 6, 30 },
{ __LINE__, 1200, 6, 30, 32, 1200, 8, 1 },
{ __LINE__, 1996, 2, 28, 367, 1997, 3, 1 },
{ __LINE__, 1997, 2, 28, 366, 1998, 3, 1 },
{ __LINE__, 1998, 2, 28, 365, 1999, 2, 28 },
{ __LINE__, 1999, 2, 28, 364, 2000, 2, 27 },
{ __LINE__, 1999, 2, 28, 1096, 2002, 2, 28 },
{ __LINE__, 2002, 2, 28, -1096, 1999, 2, 28 },
};
const int num_data = sizeof data / sizeof *data;
for (int di = 0; di < num_data; ++di)
{
const int line = data[di].lineNum;
const int num_days = data[di].numDays;
DateTime x = DateTime(data[di].year1, data[di].month1, data[di].day1);
const DateTime& X = x;
x += Timespan(num_days, 0, 0, 0, 0);
loop_1_assert (line, data[di].year2 == X.year());
loop_1_assert (line, data[di].month2 == X.month());
loop_1_assert (line, data[di].day2 == X.day());
}
DateTime edgeTime(2014, 9, 16, 0, 0, 0, 0, 10);
edgeTime -= Poco::Timespan(11);
assertTrue (edgeTime.year() == 2014);
assertTrue (edgeTime.month() == 9);
assertTrue (edgeTime.day() == 15);
assertTrue (edgeTime.hour() == 23);
assertTrue (edgeTime.minute() == 59);
assertTrue (edgeTime.second() == 59);
assertTrue (edgeTime.millisecond() == 999);
assertTrue (edgeTime.microsecond() == 999);
edgeTime.assign(2014, 9, 15, 23, 59, 59, 999, 968);
edgeTime += Poco::Timespan(11);
assertTrue (edgeTime.year() == 2014);
assertTrue (edgeTime.month() == 9);
assertTrue (edgeTime.day() == 15);
assertTrue (edgeTime.hour() == 23);
assertTrue (edgeTime.minute() == 59);
assertTrue (edgeTime.second() == 59);
assertTrue (edgeTime.millisecond() == 999);
assertTrue (edgeTime.microsecond() == 979);
}
void DateTimeTest::testIncrementDecrement()
{
static const struct
{
int lineNum; // source line number
int year1; // (first) date year
int month1; // (first) date month
unsigned int day1; // (first) date day
int year2; // (second) date year
int month2; // (second) date month
unsigned int day2; // (second) date day
} data[] =
{
// - - - -first- - - - - - - second - - -
//line no. year month day year month day
//------- ----- ----- ----- ----- ----- -----
{ __LINE__, 1, 1, 1, 1, 1, 2 },
{ __LINE__, 10, 2, 28, 10, 3, 1 },
{ __LINE__, 100, 3, 31, 100, 4, 1 },
{ __LINE__, 1000, 4, 30, 1000, 5, 1 },
{ __LINE__, 1100, 5, 31, 1100, 6, 1 },
{ __LINE__, 1200, 6, 30, 1200, 7, 1 },
{ __LINE__, 1300, 7, 31, 1300, 8, 1 },
{ __LINE__, 1400, 8, 31, 1400, 9, 1 },
{ __LINE__, 1500, 9, 30, 1500, 10, 1 },
{ __LINE__, 1600, 10, 31, 1600, 11, 1 },
{ __LINE__, 1700, 11, 30, 1700, 12, 1 },
{ __LINE__, 1800, 12, 31, 1801, 1, 1 },
{ __LINE__, 1996, 2, 28, 1996, 2, 29 },
{ __LINE__, 1997, 2, 28, 1997, 3, 1 },
{ __LINE__, 1998, 2, 28, 1998, 3, 1 },
{ __LINE__, 1999, 2, 28, 1999, 3, 1 },
{ __LINE__, 2000, 2, 28, 2000, 2, 29 },
{ __LINE__, 2001, 2, 28, 2001, 3, 1 },
{ __LINE__, 2004, 2, 28, 2004, 2, 29 },
{ __LINE__, 2100, 2, 28, 2100, 3, 1 },
{ __LINE__, 2400, 2, 28, 2400, 2, 29 },
};
const int num_data = sizeof data / sizeof *data;
int di;
for (di = 0; di < num_data; ++di)
{
const int line = data[di].lineNum;
DateTime x = DateTime(data[di].year1, data[di].month1,
data[di].day1);
// Would do pre-increment of x here.
const DateTime& X = x;
x = x + Timespan(1,0,0,0,0);
DateTime y = x; const DateTime& Y = y;
loop_1_assert (line, data[di].year2 == X.year());
loop_1_assert (line, data[di].month2 == X.month());
loop_1_assert (line, data[di].day2 == X.day());
loop_1_assert (line, data[di].year2 == Y.year());
loop_1_assert (line, data[di].month2 == Y.month());
loop_1_assert (line, data[di].day2 == Y.day());
}
for (di = 0; di < num_data; ++di)
{
const int line = data[di].lineNum;
DateTime x = DateTime(data[di].year1, data[di].month1, data[di].day1);
DateTime x1 = DateTime(data[di].year1, data[di].month1, data[di].day1);
DateTime x2 = DateTime(data[di].year2, data[di].month2, data[di].day2);
DateTime y = x; const DateTime& Y = y;
// Would do post increment of x here.
const DateTime& X = x;
x = x + Timespan(1,0,0,0,0);
loop_1_assert (line, data[di].year2 == X.year());
loop_1_assert (line, data[di].month2 == X.month());
loop_1_assert (line, data[di].day2 == X.day());
loop_1_assert (line, data[di].year1 == Y.year());
loop_1_assert (line, data[di].month1 == Y.month());
loop_1_assert (line, data[di].day1 == Y.day());
}
for (di = 0; di < num_data; ++di)
{
const int line = data[di].lineNum;
DateTime x = DateTime(data[di].year2, data[di].month2, data[di].day2);
const DateTime& X = x;
x = x - Timespan(1,0,0,0,0);
DateTime y = x; DateTime Y = y;
loop_1_assert (line, data[di].year1 == X.year());
loop_1_assert (line, data[di].month1 == X.month());
loop_1_assert (line, data[di].day1 == X.day());
loop_1_assert (line, data[di].year1 == Y.year());
loop_1_assert (line, data[di].month1 == Y.month());
loop_1_assert (line, data[di].day1 == Y.day());
}
for (di = 0; di < num_data; ++di)
{
const int line = data[di].lineNum;
DateTime x1 = DateTime(data[di].year1, data[di].month1, data[di].day1);
DateTime x = DateTime(data[di].year2, data[di].month2, data[di].day2);
DateTime y = x; DateTime Y = y;
const DateTime& X = x;
// would post-decrement x here.
x = x - Timespan(1,0,0,0,0);
loop_1_assert (line, data[di].year1 == X.year());
loop_1_assert (line, data[di].month1 == X.month());
loop_1_assert (line, data[di].day1 == X.day());
loop_1_assert (line, data[di].year2 == Y.year());
loop_1_assert (line, data[di].month2 == Y.month());
loop_1_assert (line, data[di].day2 == Y.day());
}
}
void DateTimeTest::testSwap()
{
DateTime dt1(2005, 1, 1, 0, 15, 30);
DateTime dt2(2005, 1, 2, 0, 15, 30);
DateTime dt3(2005, 1, 1, 0, 15, 30);
DateTime dt4(2005, 1, 2, 0, 15, 30);
dt1.swap(dt2);
assertTrue (dt2 == dt3);
assertTrue (dt1 == dt4);
}
void DateTimeTest::testUsage()
{
DateTime dt1(1776, 7, 4);
assertTrue (dt1.year() == 1776);
assertTrue (dt1.month() == 7);
assertTrue (dt1.day() == 4);
DateTime dt2(dt1);
dt2 += Timespan(6, 0, 0, 0, 0);
assertTrue (dt2.year() == 1776);
assertTrue (dt2.month() == 7);
assertTrue (dt2.day() == 10);
Timespan span = dt2 - dt1;
assertTrue (span.days() == 6);
// TODO - When adding months and years we need to be
// able to specify the end-end convention.
// We cannot do this in POCO at the moment.
}
void DateTimeTest::testSetYearDay()
{
static const struct
{
int d_lineNum; // source line number
int d_year; // year under test
unsigned int d_day; // day-of-year under test
int d_expMonth; // expected month
unsigned int d_expDay; // expected day
} data[] =
{
//line no. year dayOfYr exp. month exp. day
//------- ----- ------- ---------- --------
{ __LINE__, 1, 1, 1, 1 },
{ __LINE__, 1, 2, 1, 2 },
{ __LINE__, 1, 365, 12, 31 },
{ __LINE__, 1996, 1, 1, 1 },
{ __LINE__, 1996, 2, 1, 2 },
{ __LINE__, 1996, 365, 12, 30 },
{ __LINE__, 1996, 366, 12, 31 }
};
const int num_data = sizeof data / sizeof *data;
for (int di = 0; di < num_data; ++di)
{
const int POCO_UNUSED line = data[di].d_lineNum;
const int year = data[di].d_year;
const unsigned int POCO_UNUSED day = data[di].d_day;
const int exp_month = data[di].d_expMonth;
const unsigned int exp_day = data[di].d_expDay;
const DateTime r(year, exp_month, exp_day);
DateTime x;
const DateTime& POCO_UNUSED X = x;
#if 0
// TODO - need to be able to assign a day number in the year
// but POCO is not able to do this.
x.assign(year, day);
// TODO - need to be able to assert with the loop counter
// but cppUnit is not able to do this.
assertTrue (r == x);
assertTrue (day == X.dayOfYear());
#endif
}
static const struct
{
int d_lineNum; // source line number
int d_year; // year under test
int d_day; // day-of-year under test
int d_exp; // expected status
} data2[] =
{
//line no. year dayOfYr expected value
//------- ----- ------- --------------
{ __LINE__, 1, 1, 1 },
{ __LINE__, 1, -1, 0 },
{ __LINE__, 1, 0, 0 },
{ __LINE__, 1, 365, 1 },
{ __LINE__, 1, 366, 0 },
{ __LINE__, 1, 367, 0 },
{ __LINE__, 0, 0, 0 },
{ __LINE__, -1, -1, 0 },
{ __LINE__, 1996, 1, 1 },
{ __LINE__, 1996, 2, 1 },
{ __LINE__, 1996, 32, 1 },
{ __LINE__, 1996, 365, 1 },
{ __LINE__, 1996, 366, 1 },
{ __LINE__, 1996, 367, 0 },
};
const int num_data2 = sizeof data2 / sizeof *data2;
for (int di = 0; di < num_data2; ++di)
{
const int POCO_UNUSED line = data2[di].d_lineNum;
const int POCO_UNUSED year = data2[di].d_year;
const int POCO_UNUSED day = data2[di].d_day;
const int exp = data2[di].d_exp;
DateTime x;
const DateTime& POCO_UNUSED X = x;
if (1 == exp)
{
DateTime r;
const POCO_UNUSED DateTime& r2 = r;
#if 0
r.set(year, day);
#endif
}
}
}
void DateTimeTest::testIsValid()
{
static const struct
{
int d_lineNum; // source line number
int d_year; // year under test
int d_month; // month under test
int d_day; // day under test
bool d_exp; // expected value
} data[] =
{
//line no. year month day expected value
//------- ----- ----- ----- --------------
{ __LINE__, 0, 0, 0, false },
{ __LINE__, 1, 1, 0, false },
{ __LINE__, 1, 0, 1, false },
{ __LINE__, 0, 1, 1, true },
{ __LINE__, 1, 1, -1, false },
{ __LINE__, 1, -1, 1, false },
{ __LINE__, 2004, 1, 32, false },
{ __LINE__, 2004, 2, 30, false },
{ __LINE__, 2004, 3, 32, false },
{ __LINE__, 2004, 4, 31, false },
{ __LINE__, 2004, 5, 32, false },
{ __LINE__, 2004, 6, 31, false },
{ __LINE__, 2004, 7, 32, false },
{ __LINE__, 2004, 8, 32, false },
{ __LINE__, 2004, 9, 31, false },
{ __LINE__, 2004, 10, 32, false },
{ __LINE__, 2004, 11, 31, false },
{ __LINE__, 2004, 12, 32, false },
{ __LINE__, 0, 12, 31, true },
{ __LINE__, 0, 2, 29, true },
{ __LINE__, 1, 1, 1, true },
{ __LINE__, 2010, 1, 2, true },
{ __LINE__, 2011, 2, 5, true },
{ __LINE__, 2012, 3, 10, true },
{ __LINE__, 2013, 4, 17, true },
{ __LINE__, 2014, 5, 23, true },
{ __LINE__, 1600, 2, 29, true },
{ __LINE__, 1700, 2, 29, false },
{ __LINE__, 1800, 2, 29, false },
{ __LINE__, 1900, 2, 29, false },
{ __LINE__, 2000, 2, 29, true },
{ __LINE__, 2100, 2, 29, false },
};
const int num_data = sizeof data / sizeof *data;
for (int di = 0; di < num_data; ++di)
{
const int line = data[di].d_lineNum;
const int year = data[di].d_year;
const int month = data[di].d_month;
const int day = data[di].d_day;
const bool exp = data[di].d_exp;
bool isValid = DateTime::isValid(year, month, day);
loop_1_assert (line, exp == isValid);
}
}
void DateTimeTest::testDayOfWeek()
{
typedef DateTime::DaysOfWeek DOW;
static const struct
{
int d_lineNum; // source line number
int d_year; // year under test
int d_month; // month under test
int d_day; // day under test
DOW d_expDay; // number of days to be added
} data[] =
{
//Line no. year month day expDay
//------- ----- ----- ----- -------
{ __LINE__, 1600, 1, 1, DateTime::SATURDAY },
{ __LINE__, 1600, 1, 2, DateTime::SUNDAY },
{ __LINE__, 1600, 1, 3, DateTime::MONDAY },
{ __LINE__, 1600, 1, 4, DateTime::TUESDAY },
{ __LINE__, 1600, 1, 5, DateTime::WEDNESDAY },
{ __LINE__, 1600, 1, 6, DateTime::THURSDAY },
{ __LINE__, 1600, 1, 7, DateTime::FRIDAY },
{ __LINE__, 1600, 1, 8, DateTime::SATURDAY },
{ __LINE__, 1752, 8, 27, DateTime::SUNDAY },
{ __LINE__, 1752, 8, 28, DateTime::MONDAY },
{ __LINE__, 1752, 8, 29, DateTime::TUESDAY },
{ __LINE__, 1752, 8, 30, DateTime::WEDNESDAY },
{ __LINE__, 1752, 8, 31, DateTime::THURSDAY },
{ __LINE__, 1752, 9, 1, DateTime::FRIDAY },
{ __LINE__, 1752, 9, 2, DateTime::SATURDAY },
{ __LINE__, 1752, 9, 14, DateTime::THURSDAY },
{ __LINE__, 1752, 9, 15, DateTime::FRIDAY },
{ __LINE__, 1752, 9, 16, DateTime::SATURDAY },
{ __LINE__, 1752, 9, 17, DateTime::SUNDAY },
{ __LINE__, 1752, 9, 18, DateTime::MONDAY },
{ __LINE__, 1752, 9, 19, DateTime::TUESDAY },
{ __LINE__, 1999, 12, 28, DateTime::TUESDAY },
{ __LINE__, 1999, 12, 29, DateTime::WEDNESDAY },
{ __LINE__, 1999, 12, 30, DateTime::THURSDAY },
{ __LINE__, 1999, 12, 31, DateTime::FRIDAY },
{ __LINE__, 2000, 1, 1, DateTime::SATURDAY },
{ __LINE__, 2000, 1, 2, DateTime::SUNDAY },
{ __LINE__, 2000, 1, 3, DateTime::MONDAY },
{ __LINE__, 2000, 1, 4, DateTime::TUESDAY },
};
const int num_data = sizeof data / sizeof *data;
for (int di = 0; di < num_data ; ++di)
{
const int line = data[di].d_lineNum;
DateTime x = DateTime(data[di].d_year, data[di].d_month, data[di].d_day);
const DateTime& X = x;
loop_1_assert (line, data[di].d_expDay == X.dayOfWeek());
}
}
void DateTimeTest::testUTC()
{
DateTime dt(2007, 3, 5, 12, 30, 00);
assertTrue (dt.hour() == 12);
dt.makeUTC(3600);
assertTrue (dt.hour() == 11);
dt.makeLocal(3600);
assertTrue (dt.hour() == 12);
}
void DateTimeTest::testLeapSeconds()
{
DateTime dt1(2015, 6, 30, 23, 59, 60);
DateTime dt2(2015, 7, 1, 0, 0, 0);
assertTrue (dt1 == dt2);
}
void DateTimeTest::testTM()
{
time_t now;
time(&now);
tm* pTM = gmtime(&now);
DateTime dt(*pTM);
assertTrue (dt.second() == pTM->tm_sec);
assertTrue (dt.minute() == pTM->tm_min);
assertTrue (dt.hour() == pTM->tm_hour);
assertTrue (dt.day() == pTM->tm_mday);
assertTrue (dt.month() == pTM->tm_mon + 1);
assertTrue (dt.year() == pTM->tm_year + 1900);
assertTrue (dt.dayOfWeek() == pTM->tm_wday);
assertTrue (dt.dayOfYear() == pTM->tm_yday + 1);
}
void DateTimeTest::setUp()
{
}
void DateTimeTest::tearDown()
{
}
CppUnit::Test* DateTimeTest::suite()
{
CppUnit::TestSuite* pSuite = new CppUnit::TestSuite("DateTimeTest");
CppUnit_addTest(pSuite, DateTimeTest, testTimestamp);
CppUnit_addTest(pSuite, DateTimeTest, testJulian);
CppUnit_addTest(pSuite, DateTimeTest, testGregorian);
CppUnit_addTest(pSuite, DateTimeTest, testConversions);
CppUnit_addTest(pSuite, DateTimeTest, testStatics);
CppUnit_addTest(pSuite, DateTimeTest, testCalcs);
CppUnit_addTest(pSuite, DateTimeTest, testAMPM);
CppUnit_addTest(pSuite, DateTimeTest, testRelational);
CppUnit_addTest(pSuite, DateTimeTest, testArithmetics);
CppUnit_addTest(pSuite, DateTimeTest, testSwap);
CppUnit_addTest(pSuite, DateTimeTest, testUsage);
CppUnit_addTest(pSuite, DateTimeTest, testSetYearDay);
CppUnit_addTest(pSuite, DateTimeTest, testIsValid);
CppUnit_addTest(pSuite, DateTimeTest, testDayOfWeek);
CppUnit_addTest(pSuite, DateTimeTest, testIncrementDecrement);
CppUnit_addTest(pSuite, DateTimeTest, testUTC);
CppUnit_addTest(pSuite, DateTimeTest, testLeapSeconds);
CppUnit_addTest(pSuite, DateTimeTest, testTM);
return pSuite;
}

View File

@@ -0,0 +1,55 @@
//
// DateTimeTest.h
//
// Definition of the DateTimeTest class.
//
// Copyright (c) 2004-2006, Applied Informatics Software Engineering GmbH.
// and Contributors.
//
// SPDX-License-Identifier: BSL-1.0
//
#ifndef DateTimeTest_INCLUDED
#define DateTimeTest_INCLUDED
#include "Poco/Foundation.h"
#include "CppUnit/TestCase.h"
class DateTimeTest: public CppUnit::TestCase
{
public:
DateTimeTest(const std::string& name);
~DateTimeTest();
void testTimestamp();
void testJulian();
void testGregorian();
void testConversions();
void testStatics();
void testCalcs();
void testAMPM();
void testRelational();
void testArithmetics();
void testSwap();
void testUsage();
void testSetYearDay();
void testIsValid();
void testDayOfWeek();
void testIncrementDecrement();
void testUTC();
void testLeapSeconds();
void testTM();
void setUp();
void tearDown();
static CppUnit::Test* suite();
private:
};
#endif // DateTimeTest_INCLUDED

View File

@@ -0,0 +1,36 @@
//
// DateTimeTestSuite.cpp
//
// Copyright (c) 2004-2006, Applied Informatics Software Engineering GmbH.
// and Contributors.
//
// SPDX-License-Identifier: BSL-1.0
//
#include "DateTimeTestSuite.h"
#include "TimestampTest.h"
#include "ClockTest.h"
#include "TimespanTest.h"
#include "TimezoneTest.h"
#include "DateTimeTest.h"
#include "LocalDateTimeTest.h"
#include "DateTimeFormatterTest.h"
#include "DateTimeParserTest.h"
CppUnit::Test* DateTimeTestSuite::suite()
{
CppUnit::TestSuite* pSuite = new CppUnit::TestSuite("DateTimeTestSuite");
pSuite->addTest(TimestampTest::suite());
pSuite->addTest(ClockTest::suite());
pSuite->addTest(TimespanTest::suite());
pSuite->addTest(TimezoneTest::suite());
pSuite->addTest(DateTimeTest::suite());
pSuite->addTest(LocalDateTimeTest::suite());
pSuite->addTest(DateTimeFormatterTest::suite());
pSuite->addTest(DateTimeParserTest::suite());
return pSuite;
}

View File

@@ -0,0 +1,27 @@
//
// DateTimeTestSuite.h
//
// Definition of the DateTimeTestSuite class.
//
// Copyright (c) 2004-2006, Applied Informatics Software Engineering GmbH.
// and Contributors.
//
// SPDX-License-Identifier: BSL-1.0
//
#ifndef DateTimeTestSuite_INCLUDED
#define DateTimeTestSuite_INCLUDED
#include "CppUnit/TestSuite.h"
class DateTimeTestSuite
{
public:
static CppUnit::Test* suite();
};
#endif // DateTimeTestSuite_INCLUDED

View File

@@ -0,0 +1,104 @@
//
// DigestStreamTest.cpp
//
//
// Copyright (c) 2004-2006, Applied Informatics Software Engineering GmbH.
// and Contributors.
//
// SPDX-License-Identifier: BSL-1.0
//
#include "DigestStreamTest.h"
#include "CppUnit/TestCaller.h"
#include "CppUnit/TestSuite.h"
#include "Poco/DigestStream.h"
#include "Poco/MD5Engine.h"
#include <sstream>
using Poco::DigestInputStream;
using Poco::DigestOutputStream;
using Poco::DigestEngine;
using Poco::MD5Engine;
DigestStreamTest::DigestStreamTest(const std::string& name): CppUnit::TestCase(name)
{
}
DigestStreamTest::~DigestStreamTest()
{
}
void DigestStreamTest::testInputStream()
{
std::istringstream istr("abcdefghijklmnopqrstuvwxyz");
MD5Engine md5;
DigestInputStream ds(md5, istr);
std::string s;
ds >> s;
assertTrue (DigestEngine::digestToHex(md5.digest()) == "c3fcd3d76192e4007dfb496cca67e13b");
assertTrue (s == "abcdefghijklmnopqrstuvwxyz");
}
void DigestStreamTest::testOutputStream1()
{
MD5Engine md5;
DigestOutputStream ds(md5);
ds << "abcdefghijklmnopqrstuvwxyz";
ds.close();
assertTrue (DigestEngine::digestToHex(md5.digest()) == "c3fcd3d76192e4007dfb496cca67e13b");
ds << "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
ds << "abcdefghijklmnopqrstuvwxyz0123456789";
ds.close();
assertTrue (DigestEngine::digestToHex(md5.digest()) == "d174ab98d277d9f5a5611c2c9f419d9f");
}
void DigestStreamTest::testOutputStream2()
{
MD5Engine md5;
std::ostringstream ostr;
DigestOutputStream ds(md5, ostr);
ds << "abcdefghijklmnopqrstuvwxyz";
ds.close();
assertTrue (DigestEngine::digestToHex(md5.digest()) == "c3fcd3d76192e4007dfb496cca67e13b");
assertTrue (ostr.str() == "abcdefghijklmnopqrstuvwxyz");
}
void DigestStreamTest::testToFromHex()
{
std::string digest("c3fcd3d76192e4007dfb496cca67e13b");
Poco::DigestEngine::Digest dig = DigestEngine::digestFromHex(digest);
std::string digest2 = DigestEngine::digestToHex(dig);
assertTrue (digest == digest2);
}
void DigestStreamTest::setUp()
{
}
void DigestStreamTest::tearDown()
{
}
CppUnit::Test* DigestStreamTest::suite()
{
CppUnit::TestSuite* pSuite = new CppUnit::TestSuite("DigestStreamTest");
CppUnit_addTest(pSuite, DigestStreamTest, testInputStream);
CppUnit_addTest(pSuite, DigestStreamTest, testOutputStream1);
CppUnit_addTest(pSuite, DigestStreamTest, testOutputStream2);
CppUnit_addTest(pSuite, DigestStreamTest, testToFromHex);
return pSuite;
}

View File

@@ -0,0 +1,41 @@
//
// DigestStreamTest.h
//
// Definition of the DigestStreamTest class.
//
// Copyright (c) 2004-2006, Applied Informatics Software Engineering GmbH.
// and Contributors.
//
// SPDX-License-Identifier: BSL-1.0
//
#ifndef DigestStreamTest_INCLUDED
#define DigestStreamTest_INCLUDED
#include "Poco/Foundation.h"
#include "CppUnit/TestCase.h"
class DigestStreamTest: public CppUnit::TestCase
{
public:
DigestStreamTest(const std::string& name);
~DigestStreamTest();
void testInputStream();
void testOutputStream1();
void testOutputStream2();
void testToFromHex();
void setUp();
void tearDown();
static CppUnit::Test* suite();
private:
};
#endif // DigestStreamTest_INCLUDED

View File

@@ -0,0 +1,205 @@
//
// DirectoryIteratorsTest.cpp
//
// Copyright (c) 2012, Applied Informatics Software Engineering GmbH.
// and Contributors.
//
// SPDX-License-Identifier: BSL-1.0
//
#include "DirectoryIteratorsTest.h"
#include "CppUnit/TestCaller.h"
#include "CppUnit/TestSuite.h"
#include "Poco/DirectoryIterator.h"
#include "Poco/SortedDirectoryIterator.h"
#include "Poco/RecursiveDirectoryIterator.h"
#include "Poco/FileStream.h"
#include <iostream>
using namespace Poco;
DirectoryIteratorsTest::DirectoryIteratorsTest(const std::string& name):
CppUnit::TestCase(name)
{
}
DirectoryIteratorsTest::~DirectoryIteratorsTest()
{
}
void DirectoryIteratorsTest::testDirectoryIterator()
{
Path p = path();
DirectoryIterator dirIterator(p);
DirectoryIterator end;
std::vector<std::string> result;
std::string file;
while (dirIterator != end)
{
file = dirIterator->path();
++dirIterator;
result.push_back(file);
}
assertEquals(7, (long) result.size());
}
void DirectoryIteratorsTest::testSortedDirectoryIterator()
{
Path p = path();
SortedDirectoryIterator dirIterator(p);
SortedDirectoryIterator end;
std::vector<std::string> result;
std::string file;
while (dirIterator != end)
{
file = Path(dirIterator->path()).getFileName();
++dirIterator;
result.push_back(file);
}
assertEquals(7, (long) result.size());
assertEquals("first", result[0]);
assertEquals("1", result[1]);
assertEquals("2", result[2]);
assertEquals("A", result[3]);
assertEquals("B", result[4]);
assertEquals("c", result[5]);
assertEquals("d", result[6]);
}
void DirectoryIteratorsTest::testSimpleRecursiveDirectoryIterator()
{
Path p = path();
SimpleRecursiveDirectoryIterator dirIterator(p);
SimpleRecursiveDirectoryIterator end;
std::vector<std::string> result;
std::string file;
while (dirIterator != end)
{
file = dirIterator->path();
++dirIterator;
result.push_back(file);
}
assertEquals(20, (long) result.size());
}
void DirectoryIteratorsTest::testSiblingsFirstRecursiveDirectoryIterator()
{
Path p = path();
SiblingsFirstRecursiveDirectoryIterator dirIterator(p);
SiblingsFirstRecursiveDirectoryIterator end;
std::vector<std::string> result;
std::string file;
while (dirIterator != end)
{
file = dirIterator->path();
++dirIterator;
result.push_back(file);
}
assertEquals(20, (long) result.size());
}
void DirectoryIteratorsTest::setUp()
{
File d(path());
if (d.exists()) d.remove(true);
/*
Build Directory Tree like this:
DirectoryIteratorsTest
|-- 1
|-- 2
|-- A
|-- B
|-- c
|-- d
`-- first
|-- 1
|-- 2
|-- A
|-- B
|-- c
|-- d
`-- second
|-- 1
|-- 2
|-- A
|-- B
|-- c
`-- d
2 directories, 18 files
*/
Path p = path();
createSubdir(p);
p.pushDirectory("first");
createSubdir(p);
p.pushDirectory("second");
createSubdir(p);
}
void DirectoryIteratorsTest::createSubdir(Path& p)
{
File d(p);
d.createDirectories();
FileStream f1(p.toString() + "d");
FileStream f2(p.toString() + "1");
FileStream f3(p.toString() + "A");
FileStream f4(p.toString() + "2");
FileStream f5(p.toString() + "B");
FileStream f6(p.toString() + "c");
}
void DirectoryIteratorsTest::tearDown()
{
try
{
File d(path());
d.remove(true);
}
catch (...)
{
}
}
Poco::Path DirectoryIteratorsTest::path() const
{
Path p(Path::current());
p.pushDirectory("DirectoryIteratorsTest");
return p;
}
CppUnit::Test* DirectoryIteratorsTest::suite()
{
CppUnit::TestSuite* pSuite = new CppUnit::TestSuite("DirectoryIteratorsTest");
CppUnit_addTest(pSuite, DirectoryIteratorsTest, testDirectoryIterator);
CppUnit_addTest(pSuite, DirectoryIteratorsTest, testSortedDirectoryIterator);
CppUnit_addTest(pSuite, DirectoryIteratorsTest, testSimpleRecursiveDirectoryIterator);
CppUnit_addTest(pSuite, DirectoryIteratorsTest, testSiblingsFirstRecursiveDirectoryIterator);
return pSuite;
}

View File

@@ -0,0 +1,46 @@
//
// DirectoryIteratorsTest.h
//
// Definition of the DirectoryIteratorsTest class.
//
// Copyright (c) 2012, Applied Informatics Software Engineering GmbH.
// and Contributors.
//
// SPDX-License-Identifier: BSL-1.0
//
#ifndef DirectoryIteratorsTest_INCLUDED
#define DirectoryIteratorsTest_INCLUDED
#include "Poco/Foundation.h"
#include "Poco/Path.h"
#include "CppUnit/TestCase.h"
class DirectoryIteratorsTest: public CppUnit::TestCase
{
public:
DirectoryIteratorsTest(const std::string& name);
~DirectoryIteratorsTest();
void testDirectoryIterator();
void testSortedDirectoryIterator();
void testSimpleRecursiveDirectoryIterator();
void testSiblingsFirstRecursiveDirectoryIterator();
void setUp();
void tearDown();
static CppUnit::Test* suite();
protected:
Poco::Path path() const;
void createSubdir(Poco::Path& p);
private:
};
#endif // DirectoryIteratorsTest_INCLUDED

View File

@@ -0,0 +1,300 @@
//
// DirectoryWatcherTest.cpp
//
// Copyright (c) 2012, Applied Informatics Software Engineering GmbH.
// and Contributors.
//
// SPDX-License-Identifier: BSL-1.0
//
#include "DirectoryWatcherTest.h"
#ifndef POCO_NO_INOTIFY
#include "CppUnit/TestCaller.h"
#include "CppUnit/TestSuite.h"
#include "Poco/DirectoryWatcher.h"
#include "Poco/Delegate.h"
#include "Poco/FileStream.h"
using Poco::DirectoryWatcher;
DirectoryWatcherTest::DirectoryWatcherTest(const std::string& name):
CppUnit::TestCase(name),
_error(false)
{
}
DirectoryWatcherTest::~DirectoryWatcherTest()
{
}
void DirectoryWatcherTest::testAdded()
{
DirectoryWatcher dw(path().toString(), DirectoryWatcher::DW_FILTER_ENABLE_ALL, 2);
dw.itemAdded += Poco::delegate(this, &DirectoryWatcherTest::onItemAdded);
dw.itemRemoved += Poco::delegate(this, &DirectoryWatcherTest::onItemRemoved);
dw.itemModified += Poco::delegate(this, &DirectoryWatcherTest::onItemModified);
dw.itemMovedFrom += Poco::delegate(this, &DirectoryWatcherTest::onItemMovedFrom);
dw.itemMovedTo += Poco::delegate(this, &DirectoryWatcherTest::onItemMovedTo);
Poco::Thread::sleep(1000);
Poco::Path p(path());
p.setFileName("test.txt");
Poco::FileOutputStream fos(p.toString());
fos << "Hello, world!";
fos.close();
Poco::Thread::sleep(2000*dw.scanInterval());
assertTrue (_events.size() >= 1);
assertTrue (_events[0].callback == "onItemAdded");
assertTrue (Poco::Path(_events[0].path).getFileName() == "test.txt");
assertTrue (_events[0].type == DirectoryWatcher::DW_ITEM_ADDED);
assertTrue (!_error);
}
void DirectoryWatcherTest::testRemoved()
{
Poco::Path p(path());
p.setFileName("test.txt");
Poco::FileOutputStream fos(p.toString());
fos << "Hello, world!";
fos.close();
DirectoryWatcher dw(path().toString(), DirectoryWatcher::DW_FILTER_ENABLE_ALL, 2);
dw.itemAdded += Poco::delegate(this, &DirectoryWatcherTest::onItemAdded);
dw.itemRemoved += Poco::delegate(this, &DirectoryWatcherTest::onItemRemoved);
dw.itemModified += Poco::delegate(this, &DirectoryWatcherTest::onItemModified);
dw.itemMovedFrom += Poco::delegate(this, &DirectoryWatcherTest::onItemMovedFrom);
dw.itemMovedTo += Poco::delegate(this, &DirectoryWatcherTest::onItemMovedTo);
Poco::Thread::sleep(1000);
Poco::File f(p.toString());
f.remove();
Poco::Thread::sleep(2000*dw.scanInterval());
assertTrue (_events.size() >= 1);
assertTrue (_events[0].callback == "onItemRemoved");
assertTrue (Poco::Path(_events[0].path).getFileName() == "test.txt");
assertTrue (_events[0].type == DirectoryWatcher::DW_ITEM_REMOVED);
assertTrue (!_error);
}
void DirectoryWatcherTest::testModified()
{
Poco::Path p(path());
p.setFileName("test.txt");
Poco::FileOutputStream fos(p.toString());
fos << "Hello, world!";
fos.close();
DirectoryWatcher dw(path().toString(), DirectoryWatcher::DW_FILTER_ENABLE_ALL, 2);
dw.itemAdded += Poco::delegate(this, &DirectoryWatcherTest::onItemAdded);
dw.itemRemoved += Poco::delegate(this, &DirectoryWatcherTest::onItemRemoved);
dw.itemModified += Poco::delegate(this, &DirectoryWatcherTest::onItemModified);
dw.itemMovedFrom += Poco::delegate(this, &DirectoryWatcherTest::onItemMovedFrom);
dw.itemMovedTo += Poco::delegate(this, &DirectoryWatcherTest::onItemMovedTo);
Poco::Thread::sleep(1000);
Poco::FileOutputStream fos2(p.toString(), std::ios::app);
fos2 << "Again!";
fos2.close();
Poco::Thread::sleep(2000*dw.scanInterval());
assertTrue (_events.size() >= 1);
assertTrue (_events[0].callback == "onItemModified");
assertTrue (Poco::Path(_events[0].path).getFileName() == "test.txt");
assertTrue (_events[0].type == DirectoryWatcher::DW_ITEM_MODIFIED);
assertTrue (!_error);
}
void DirectoryWatcherTest::testMoved()
{
Poco::Path p(path());
p.setFileName("test.txt");
Poco::FileOutputStream fos(p.toString());
fos << "Hello, world!";
fos.close();
DirectoryWatcher dw(path().toString(), DirectoryWatcher::DW_FILTER_ENABLE_ALL, 2);
dw.itemAdded += Poco::delegate(this, &DirectoryWatcherTest::onItemAdded);
dw.itemRemoved += Poco::delegate(this, &DirectoryWatcherTest::onItemRemoved);
dw.itemModified += Poco::delegate(this, &DirectoryWatcherTest::onItemModified);
dw.itemMovedFrom += Poco::delegate(this, &DirectoryWatcherTest::onItemMovedFrom);
dw.itemMovedTo += Poco::delegate(this, &DirectoryWatcherTest::onItemMovedTo);
Poco::Thread::sleep(1000);
Poco::Path p2(path());
p2.setFileName("test2.txt");
Poco::File f(p.toString());
f.renameTo(p2.toString());
Poco::Thread::sleep(2000*dw.scanInterval());
if (dw.supportsMoveEvents())
{
assertTrue (_events.size() >= 2);
assertTrue (
(_events[0].callback == "onItemMovedFrom" && _events[1].callback == "onItemMovedTo") ||
(_events[1].callback == "onItemMovedFrom" && _events[0].callback == "onItemMovedTo")
);
assertTrue (
(Poco::Path(_events[0].path).getFileName() == "test.txt" && Poco::Path(_events[1].path).getFileName() == "test2.txt") ||
(Poco::Path(_events[1].path).getFileName() == "test.txt" && Poco::Path(_events[0].path).getFileName() == "test2.txt")
);
assertTrue (
(_events[0].type == DirectoryWatcher::DW_ITEM_MOVED_FROM && _events[1].type == DirectoryWatcher::DW_ITEM_MOVED_TO) ||
(_events[1].type == DirectoryWatcher::DW_ITEM_MOVED_FROM && _events[0].type == DirectoryWatcher::DW_ITEM_MOVED_TO)
);
}
else
{
assertTrue (_events.size() >= 2);
assertTrue (
(_events[0].callback == "onItemAdded" && _events[1].callback == "onItemRemoved") ||
(_events[1].callback == "onItemAdded" && _events[0].callback == "onItemRemoved")
);
assertTrue (
(Poco::Path(_events[0].path).getFileName() == "test.txt" && Poco::Path(_events[1].path).getFileName() == "test2.txt") ||
(Poco::Path(_events[1].path).getFileName() == "test.txt" && Poco::Path(_events[0].path).getFileName() == "test2.txt")
);
assertTrue (
(_events[0].type == DirectoryWatcher::DW_ITEM_ADDED && _events[1].type == DirectoryWatcher::DW_ITEM_REMOVED) ||
(_events[1].type == DirectoryWatcher::DW_ITEM_ADDED && _events[0].type == DirectoryWatcher::DW_ITEM_REMOVED)
);
}
assertTrue (!_error);
}
void DirectoryWatcherTest::setUp()
{
_error = false;
_events.clear();
try
{
Poco::File d(path().toString());
d.remove(true);
}
catch (...)
{
}
Poco::File d(path().toString());
d.createDirectories();
}
void DirectoryWatcherTest::tearDown()
{
try
{
Poco::File d(path().toString());
d.remove(true);
}
catch (...)
{
}
}
void DirectoryWatcherTest::onItemAdded(const Poco::DirectoryWatcher::DirectoryEvent& ev)
{
DirEvent de;
de.callback = "onItemAdded";
de.path = ev.item.path();
de.type = ev.event;
_events.push_back(de);
}
void DirectoryWatcherTest::onItemRemoved(const Poco::DirectoryWatcher::DirectoryEvent& ev)
{
DirEvent de;
de.callback = "onItemRemoved";
de.path = ev.item.path();
de.type = ev.event;
_events.push_back(de);
}
void DirectoryWatcherTest::onItemModified(const Poco::DirectoryWatcher::DirectoryEvent& ev)
{
DirEvent de;
de.callback = "onItemModified";
de.path = ev.item.path();
de.type = ev.event;
_events.push_back(de);
}
void DirectoryWatcherTest::onItemMovedFrom(const Poco::DirectoryWatcher::DirectoryEvent& ev)
{
DirEvent de;
de.callback = "onItemMovedFrom";
de.path = ev.item.path();
de.type = ev.event;
_events.push_back(de);
}
void DirectoryWatcherTest::onItemMovedTo(const Poco::DirectoryWatcher::DirectoryEvent& ev)
{
DirEvent de;
de.callback = "onItemMovedTo";
de.path = ev.item.path();
de.type = ev.event;
_events.push_back(de);
}
void DirectoryWatcherTest::onError(const Poco::Exception& exc)
{
_error = true;
}
Poco::Path DirectoryWatcherTest::path() const
{
Poco::Path p(Poco::Path::current());
p.pushDirectory("DirectoryWatcherTest");
return p;
}
CppUnit::Test* DirectoryWatcherTest::suite()
{
CppUnit::TestSuite* pSuite = new CppUnit::TestSuite("DirectoryWatcherTest");
CppUnit_addTest(pSuite, DirectoryWatcherTest, testAdded);
CppUnit_addTest(pSuite, DirectoryWatcherTest, testRemoved);
CppUnit_addTest(pSuite, DirectoryWatcherTest, testModified);
CppUnit_addTest(pSuite, DirectoryWatcherTest, testMoved);
return pSuite;
}
#endif // POCO_NO_INOTIFY

View File

@@ -0,0 +1,71 @@
//
// DirectoryWatcherTest.h
//
// Definition of the DirectoryWatcherTest class.
//
// Copyright (c) 2012, Applied Informatics Software Engineering GmbH.
// and Contributors.
//
// SPDX-License-Identifier: BSL-1.0
//
#ifndef DirectoryWatcherTest_INCLUDED
#define DirectoryWatcherTest_INCLUDED
#include "Poco/Foundation.h"
#ifndef POCO_NO_INOTIFY
#include "Poco/DirectoryWatcher.h"
#include "Poco/Path.h"
#include "CppUnit/TestCase.h"
class DirectoryWatcherTest: public CppUnit::TestCase
{
public:
DirectoryWatcherTest(const std::string& name);
~DirectoryWatcherTest();
void testAdded();
void testRemoved();
void testModified();
void testMoved();
void setUp();
void tearDown();
static CppUnit::Test* suite();
protected:
void onItemAdded(const Poco::DirectoryWatcher::DirectoryEvent& ev);
void onItemRemoved(const Poco::DirectoryWatcher::DirectoryEvent& ev);
void onItemModified(const Poco::DirectoryWatcher::DirectoryEvent& ev);
void onItemMovedFrom(const Poco::DirectoryWatcher::DirectoryEvent& ev);
void onItemMovedTo(const Poco::DirectoryWatcher::DirectoryEvent& ev);
void onError(const Poco::Exception& exc);
Poco::Path path() const;
private:
struct DirEvent
{
Poco::DirectoryWatcher::DirectoryEventType type;
std::string callback;
std::string path;
};
std::vector<DirEvent> _events;
bool _error;
};
#endif // POCO_NO_INOTIFY
#endif // DirectoryWatcherTest_INCLUDED

View File

@@ -0,0 +1,17 @@
//
// Driver.cpp
//
// Console-based test driver.
//
// Copyright (c) 2004-2006, Applied Informatics Software Engineering GmbH.
// and Contributors.
//
// SPDX-License-Identifier: BSL-1.0
//
#include "CppUnit/TestRunner.h"
#include "FoundationTestSuite.h"
CppUnitMain(FoundationTestSuite)

View File

@@ -0,0 +1,33 @@
//
// DummyDelegate.cpp
//
// Copyright (c) 2004-2006, Applied Informatics Software Engineering GmbH.
// and Contributors.
//
// SPDX-License-Identifier: BSL-1.0
//
#include "DummyDelegate.h"
#include "Poco/Exception.h"
DummyDelegate::DummyDelegate() {}
DummyDelegate::~DummyDelegate() {}
void DummyDelegate::onSimple(const void* pSender, int& i)
{
if (i != 0)
{
throw Poco::InvalidArgumentException();
}
i++;
}
void DummyDelegate::onSimple2(const void* pSender, int& i)
{
if (i != 1)
{
throw Poco::InvalidArgumentException();
}
i++;
}

View File

@@ -0,0 +1,28 @@
//
// DummyDelegate.h
//
// Definition of DummyDelegate class.
//
// Copyright (c) 2006, Applied Informatics Software Engineering GmbH.
// and Contributors.
//
// SPDX-License-Identifier: BSL-1.0
//
#ifndef DummyDelegate_INCLUDED
#define DummyDelegate_INCLUDED
class DummyDelegate
{
public:
DummyDelegate();
virtual ~DummyDelegate();
void onSimple(const void* pSender, int& i);
void onSimple2(const void* pSender, int& i);
};
#endif // DummyDelegate_INCLUDED

View File

@@ -0,0 +1,116 @@
//
// DynamicFactoryTest.cpp
//
// Copyright (c) 2004-2006, Applied Informatics Software Engineering GmbH.
// and Contributors.
//
// SPDX-License-Identifier: BSL-1.0
//
#include "DynamicFactoryTest.h"
#include "CppUnit/TestCaller.h"
#include "CppUnit/TestSuite.h"
#include "Poco/DynamicFactory.h"
#include "Poco/Exception.h"
#include <memory>
using Poco::DynamicFactory;
using Poco::Instantiator;
namespace
{
class Base
{
public:
Base()
{
}
virtual ~Base()
{
}
};
class A: public Base
{
};
class B: public Base
{
};
}
DynamicFactoryTest::DynamicFactoryTest(const std::string& name): CppUnit::TestCase(name)
{
}
DynamicFactoryTest::~DynamicFactoryTest()
{
}
void DynamicFactoryTest::testDynamicFactory()
{
DynamicFactory<Base> dynFactory;
dynFactory.registerClass<A>("A");
dynFactory.registerClass<B>("B");
assertTrue (dynFactory.isClass("A"));
assertTrue (dynFactory.isClass("B"));
assertTrue (!dynFactory.isClass("C"));
std::unique_ptr<A> a(dynamic_cast<A*>(dynFactory.createInstance("A")));
std::unique_ptr<B> b(dynamic_cast<B*>(dynFactory.createInstance("B")));
assertNotNull(a.get());
assertNotNull(b.get());
try
{
dynFactory.registerClass<A>("A");
fail("already registered - must throw");
}
catch (Poco::ExistsException&)
{
}
dynFactory.unregisterClass("B");
assertTrue (dynFactory.isClass("A"));
assertTrue (!dynFactory.isClass("B"));
try
{
std::unique_ptr<B> b(dynamic_cast<B*>(dynFactory.createInstance("B")));
fail("unregistered - must throw");
}
catch (Poco::NotFoundException&)
{
}
}
void DynamicFactoryTest::setUp()
{
}
void DynamicFactoryTest::tearDown()
{
}
CppUnit::Test* DynamicFactoryTest::suite()
{
CppUnit::TestSuite* pSuite = new CppUnit::TestSuite("DynamicFactoryTest");
CppUnit_addTest(pSuite, DynamicFactoryTest, testDynamicFactory);
return pSuite;
}

View File

@@ -0,0 +1,38 @@
//
// DynamicFactoryTest.h
//
// Definition of the DynamicFactoryTest class.
//
// Copyright (c) 2004-2006, Applied Informatics Software Engineering GmbH.
// and Contributors.
//
// SPDX-License-Identifier: BSL-1.0
//
#ifndef DynamicFactoryTest_INCLUDED
#define DynamicFactoryTest_INCLUDED
#include "Poco/Foundation.h"
#include "CppUnit/TestCase.h"
class DynamicFactoryTest: public CppUnit::TestCase
{
public:
DynamicFactoryTest(const std::string& name);
~DynamicFactoryTest();
void testDynamicFactory();
void setUp();
void tearDown();
static CppUnit::Test* suite();
private:
};
#endif // DynamicFactoryTest_INCLUDED

View File

@@ -0,0 +1,22 @@
//
// DynamicTestSuite.cpp
//
// Copyright (c) 2004-2006, Applied Informatics Software Engineering GmbH.
// and Contributors.
//
// SPDX-License-Identifier: BSL-1.0
//
#include "DynamicTestSuite.h"
#include "VarTest.h"
CppUnit::Test* DynamicTestSuite::suite()
{
CppUnit::TestSuite* pSuite = new CppUnit::TestSuite("DynamicTestSuite");
pSuite->addTest(VarTest::suite());
return pSuite;
}

View File

@@ -0,0 +1,27 @@
//
// DynamicTestSuite.h
//
// Definition of the DynamicTestSuite class.
//
// Copyright (c) 2004-2006, Applied Informatics Software Engineering GmbH.
// and Contributors.
//
// SPDX-License-Identifier: BSL-1.0
//
#ifndef DynamicTestSuite_INCLUDED
#define DynamicTestSuite_INCLUDED
#include "CppUnit/TestSuite.h"
class DynamicTestSuite
{
public:
static CppUnit::Test* suite();
};
#endif // DynamicTestSuite_INCLUDED

View File

@@ -0,0 +1,25 @@
//
// EventTestSuite.cpp
//
// Copyright (c) 2006, Applied Informatics Software Engineering GmbH.
// and Contributors.
//
// SPDX-License-Identifier: BSL-1.0
//
#include "EventTestSuite.h"
#include "FIFOEventTest.h"
#include "BasicEventTest.h"
#include "PriorityEventTest.h"
CppUnit::Test* EventTestSuite::suite()
{
CppUnit::TestSuite* pSuite = new CppUnit::TestSuite("EventTestSuite");
pSuite->addTest(BasicEventTest::suite());
pSuite->addTest(PriorityEventTest::suite());
pSuite->addTest(FIFOEventTest::suite());
return pSuite;
}

View File

@@ -0,0 +1,27 @@
//
// EventTestSuite.h
//
// Definition of the EventTestSuite class.
//
// Copyright (c) 2006, Applied Informatics Software Engineering GmbH.
// and Contributors.
//
// SPDX-License-Identifier: BSL-1.0
//
#ifndef EventTestSuite_INCLUDED
#define EventTestSuite_INCLUDED
#include "CppUnit/TestSuite.h"
class EventTestSuite
{
public:
static CppUnit::Test* suite();
};
#endif // EventTestSuite_INCLUDED

View File

@@ -0,0 +1,228 @@
//
// ExpireCacheTest.cpp
//
// Copyright (c) 2006, Applied Informatics Software Engineering GmbH.
// and Contributors.
//
// SPDX-License-Identifier: BSL-1.0
//
#include "ExpireCacheTest.h"
#include "CppUnit/TestCaller.h"
#include "CppUnit/TestSuite.h"
#include "Poco/Exception.h"
#include "Poco/ExpireCache.h"
#include "Poco/AccessExpireCache.h"
#include "Poco/Bugcheck.h"
#include "Poco/Thread.h"
using namespace Poco;
#define DURSLEEP 250
#define DURHALFSLEEP DURSLEEP / 2
#define DURWAIT 300
ExpireCacheTest::ExpireCacheTest(const std::string& name): CppUnit::TestCase(name)
{
}
ExpireCacheTest::~ExpireCacheTest()
{
}
void ExpireCacheTest::testClear()
{
ExpireCache<int, int> aCache(DURSLEEP);
aCache.add(1, 2);
aCache.add(3, 4);
aCache.add(5, 6);
assertTrue (aCache.has(1));
assertTrue (aCache.has(3));
assertTrue (aCache.has(5));
assertTrue (*aCache.get(1) == 2);
assertTrue (*aCache.get(3) == 4);
assertTrue (*aCache.get(5) == 6);
aCache.clear();
assertTrue (!aCache.has(1));
assertTrue (!aCache.has(3));
assertTrue (!aCache.has(5));
}
void ExpireCacheTest::testExpire0()
{
try
{
ExpireCache<int, int> aCache(24);
failmsg("cache expire lower than 25 is illegal, test should fail");
}
catch (Poco::InvalidArgumentException&)
{
}
}
void ExpireCacheTest::testExpireN()
{
// 3-1 represents the cache sorted by age, elements get replaced at the end of the list
// 3-1|5 -> 5 gets removed
ExpireCache<int, int> aCache(DURSLEEP);
aCache.add(1, 2); // 1
assertTrue (aCache.has(1));
SharedPtr<int> tmp = aCache.get(1);
assertTrue (!tmp.isNull());
assertTrue (*tmp == 2);
assertTrue (aCache.size() == 1);
Thread::sleep(DURWAIT);
assertTrue (aCache.size() == 0);
assertTrue (!aCache.has(1));
// tmp must still be valid, access it
assertTrue (*tmp == 2);
tmp = aCache.get(1);
assertTrue (!tmp);
aCache.add(1, 2); // 1
Thread::sleep(DURHALFSLEEP);
aCache.add(3, 4); // 3-1
assertTrue (aCache.has(1));
assertTrue (aCache.has(3));
tmp = aCache.get(1);
SharedPtr<int> tmp2 = aCache.get(3);
assertTrue (*tmp == 2);
assertTrue (*tmp2 == 4);
Thread::sleep(DURHALFSLEEP+25); //3|1
assertTrue (!aCache.has(1));
assertTrue (aCache.has(3));
assertTrue (*tmp == 2); // 1-3
assertTrue (*tmp2 == 4); // 3-1
tmp2 = aCache.get(3);
assertTrue (*tmp2 == 4);
Thread::sleep(DURHALFSLEEP+25); //3|1
assertTrue (!aCache.has(3));
assertTrue (*tmp2 == 4);
tmp = aCache.get(1);
tmp2 = aCache.get(3);
assertTrue (!tmp);
assertTrue (!tmp2);
// removing illegal entries should work too
aCache.remove(666);
aCache.clear();
assertTrue (!aCache.has(5));
assertTrue (!aCache.has(3));
}
void ExpireCacheTest::testDuplicateAdd()
{
ExpireCache<int, int> aCache(DURSLEEP);
aCache.add(1, 2); // 1
assertTrue (aCache.has(1));
assertTrue (*aCache.get(1) == 2);
aCache.add(1, 3);
assertTrue (aCache.has(1));
assertTrue (*aCache.get(1) == 3);
}
void ExpireCacheTest::testAccessExpireN()
{
// 3-1 represents the cache sorted by age, elements get replaced at the end of the list
// 3-1|5 -> 5 gets removed
AccessExpireCache<int, int> aCache(DURSLEEP);
aCache.add(1, 2); // 1
assertTrue (aCache.has(1));
SharedPtr<int> tmp = aCache.get(1);
assertTrue (!tmp.isNull());
assertTrue (*tmp == 2);
assertTrue (aCache.size() == 1);
Thread::sleep(DURWAIT);
assertTrue (aCache.size() == 0);
assertTrue (!aCache.has(1));
// tmp must still be valid, access it
assertTrue (*tmp == 2);
tmp = aCache.get(1);
assertTrue (!tmp);
aCache.add(1, 2); // 1
Thread::sleep(DURHALFSLEEP);
aCache.add(3, 4); // 3-1
assertTrue (aCache.has(1));
assertTrue (aCache.has(3));
Thread::sleep(DURHALFSLEEP+50); //3|1
assertTrue (!aCache.has(1));
assertTrue (*aCache.get(3) == 4);
Thread::sleep(DURHALFSLEEP+25); //3|1
assertTrue (*aCache.get(3) == 4);
// removing illegal entries should work too
aCache.remove(666);
aCache.clear();
assertTrue (!aCache.has(5));
assertTrue (!aCache.has(3));
}
void ExpireCacheTest::testExpireWithHas()
{
// 3-1 represents the cache sorted by age, elements get replaced at the end of the list
// 3-1|5 -> 5 gets removed
ExpireCache<int, int> aCache(DURSLEEP);
aCache.add(1, 2); // 1
assertTrue (aCache.has(1));
Thread::sleep(DURWAIT);
assertTrue (!aCache.has(1));
}
void ExpireCacheTest::testAccessExpireGet()
{
AccessExpireCache<int, int> aCache(DURSLEEP);
aCache.add(1, 2); // 1
assertTrue (aCache.has(1));
SharedPtr<int> tmp = aCache.get(1);
assertTrue (!tmp.isNull());
assertTrue (*tmp == 2);
assertTrue (aCache.size() == 1);
Thread::sleep(DURWAIT);
tmp = aCache.get(1);
assertTrue (tmp.isNull());
}
void ExpireCacheTest::setUp()
{
}
void ExpireCacheTest::tearDown()
{
}
CppUnit::Test* ExpireCacheTest::suite()
{
CppUnit::TestSuite* pSuite = new CppUnit::TestSuite("ExpireCacheTest");
CppUnit_addTest(pSuite, ExpireCacheTest, testClear);
CppUnit_addTest(pSuite, ExpireCacheTest, testExpire0);
CppUnit_addTest(pSuite, ExpireCacheTest, testExpireN);
CppUnit_addTest(pSuite, ExpireCacheTest, testDuplicateAdd);
CppUnit_addTest(pSuite, ExpireCacheTest, testAccessExpireN);
CppUnit_addTest(pSuite, ExpireCacheTest, testExpireWithHas);
CppUnit_addTest(pSuite, ExpireCacheTest, testAccessExpireGet);
return pSuite;
}

View File

@@ -0,0 +1,40 @@
//
// ExpireCacheTest.h
//
// Tests for ExpireCache
//
// Copyright (c) 2006, Applied Informatics Software Engineering GmbH.
// and Contributors.
//
// SPDX-License-Identifier: BSL-1.0
//
#ifndef ExpireCacheTest_INCLUDED
#define ExpireCacheTest_INCLUDED
#include "Poco/Foundation.h"
#include "CppUnit/TestCase.h"
class ExpireCacheTest: public CppUnit::TestCase
{
public:
ExpireCacheTest(const std::string& name);
~ExpireCacheTest();
void testClear();
void testDuplicateAdd();
void testExpire0();
void testExpireN();
void testAccessExpireN();
void testExpireWithHas();
void testAccessExpireGet();
void setUp();
void tearDown();
static CppUnit::Test* suite();
};
#endif // ExpireCacheTest_INCLUDED

View File

@@ -0,0 +1,346 @@
//
// ExpireLRUCacheTest.cpp
//
// Copyright (c) 2006, Applied Informatics Software Engineering GmbH.
// and Contributors.
//
// SPDX-License-Identifier: BSL-1.0
//
#include "ExpireLRUCacheTest.h"
#include "CppUnit/TestCaller.h"
#include "CppUnit/TestSuite.h"
#include "Poco/Exception.h"
#include "Poco/ExpireLRUCache.h"
#include "Poco/AccessExpireLRUCache.h"
#include "Poco/Bugcheck.h"
#include "Poco/Thread.h"
using namespace Poco;
#define DURSLEEP 250
#define DURHALFSLEEP DURSLEEP / 2
#define DURWAIT 300
ExpireLRUCacheTest::ExpireLRUCacheTest(const std::string& name): CppUnit::TestCase(name)
{
}
ExpireLRUCacheTest::~ExpireLRUCacheTest()
{
}
void ExpireLRUCacheTest::testClear()
{
ExpireLRUCache<int, int> aCache(DURSLEEP);
aCache.add(1, 2);
aCache.add(3, 4);
aCache.add(5, 6);
assertTrue (aCache.has(1));
assertTrue (aCache.has(3));
assertTrue (aCache.has(5));
assertTrue (*aCache.get(1) == 2);
assertTrue (*aCache.get(3) == 4);
assertTrue (*aCache.get(5) == 6);
aCache.clear();
assertTrue (!aCache.has(1));
assertTrue (!aCache.has(3));
assertTrue (!aCache.has(5));
}
void ExpireLRUCacheTest::testExpire0()
{
try
{
ExpireLRUCache<int, int> aCache(1024, 24);
failmsg("cache expire lower than 25 is illegal, test should fail");
}
catch (Poco::InvalidArgumentException&)
{
}
}
void ExpireLRUCacheTest::testExpireN()
{
// 3-1 represents the cache sorted by age, elements get replaced at the end of the list
// 3-1|5 -> 5 gets removed
ExpireLRUCache<int, int> aCache(3, DURSLEEP);
aCache.add(1, 2); // 1
assertTrue (aCache.has(1));
SharedPtr<int> tmp = aCache.get(1);
assertTrue (!tmp.isNull());
assertTrue (*tmp == 2);
Thread::sleep(DURWAIT);
assertTrue (!aCache.has(1));
// tmp must still be valid, access it
assertTrue (*tmp == 2);
tmp = aCache.get(1);
assertTrue (!tmp);
aCache.add(1, 2); // 1
Thread::sleep(DURHALFSLEEP);
aCache.add(3, 4); // 3-1
assertTrue (aCache.has(1));
assertTrue (aCache.has(3));
tmp = aCache.get(1);
SharedPtr<int> tmp2 = aCache.get(3);
assertTrue (*tmp == 2);
assertTrue (*tmp2 == 4);
Thread::sleep(DURHALFSLEEP+25); //3|1
assertTrue (!aCache.has(1));
assertTrue (aCache.has(3));
assertTrue (*tmp == 2); // 1-3
assertTrue (*tmp2 == 4); // 3-1
tmp2 = aCache.get(3);
assertTrue (*tmp2 == 4);
Thread::sleep(DURHALFSLEEP+25); //3|1
assertTrue (!aCache.has(3));
assertTrue (*tmp2 == 4);
tmp = aCache.get(1);
tmp2 = aCache.get(3);
assertTrue (!tmp);
assertTrue (!tmp2);
// removing illegal entries should work too
aCache.remove(666);
aCache.clear();
assertTrue (!aCache.has(5));
assertTrue (!aCache.has(3));
}
void ExpireLRUCacheTest::testAccessExpireN()
{
// 3-1 represents the cache sorted by age, elements get replaced at the end of the list
// 3-1|5 -> 5 gets removed
AccessExpireLRUCache<int, int> aCache(3, DURSLEEP);
aCache.add(1, 2); // 1
assertTrue (aCache.has(1));
SharedPtr<int> tmp = aCache.get(1);
assertTrue (!tmp.isNull());
assertTrue (*tmp == 2);
assertTrue (aCache.size() == 1);
Thread::sleep(DURWAIT);
assertTrue (aCache.size() == 0);
assertTrue (!aCache.has(1));
// tmp must still be valid, access it
assertTrue (*tmp == 2);
tmp = aCache.get(1);
assertTrue (!tmp);
aCache.add(1, 2); // 1
Thread::sleep(DURHALFSLEEP);
aCache.add(3, 4); // 3-1
assertTrue (aCache.has(1));
assertTrue (aCache.has(3));
Thread::sleep(DURHALFSLEEP+50); //3|1
assertTrue (!aCache.has(1));
assertTrue (*aCache.get(3) == 4);
Thread::sleep(DURHALFSLEEP+25); //3|1
assertTrue (*aCache.get(3) == 4);
// removing illegal entries should work too
aCache.remove(666);
aCache.clear();
assertTrue (!aCache.has(5));
assertTrue (!aCache.has(3));
}
void ExpireLRUCacheTest::testCacheSize0()
{
// cache size 0 is illegal
try
{
ExpireLRUCache<int, int> aCache(0);
failmsg ("cache size of 0 is illegal, test should fail");
}
catch (Poco::InvalidArgumentException&)
{
}
}
void ExpireLRUCacheTest::testCacheSize1()
{
ExpireLRUCache<int, int> aCache(1);
aCache.add(1, 2);
assertTrue (aCache.has(1));
assertTrue (*aCache.get(1) == 2);
aCache.add(3, 4); // replaces 1
assertTrue (!aCache.has(1));
assertTrue (aCache.has(3));
assertTrue (*aCache.get(3) == 4);
aCache.add(5, 6);
assertTrue (!aCache.has(1));
assertTrue (!aCache.has(3));
assertTrue (aCache.has(5));
assertTrue (*aCache.get(5) == 6);
aCache.remove(5);
assertTrue (!aCache.has(5));
// removing illegal entries should work too
aCache.remove(666);
}
void ExpireLRUCacheTest::testCacheSize2()
{
// 3-1 represents the cache sorted by pos, elements get replaced at the end of the list
// 3-1|5 -> 5 gets removed
ExpireLRUCache<int, int> aCache(2);
aCache.add(1, 2); // 1
assertTrue (aCache.has(1));
assertTrue (*aCache.get(1) == 2);
aCache.add(3, 4); // 3-1
assertTrue (aCache.has(1));
assertTrue (aCache.has(3));
assertTrue (*aCache.get(1) == 2); // 1-3
assertTrue (*aCache.get(3) == 4); // 3-1
aCache.add(5, 6); // 5-3|1
assertTrue (!aCache.has(1));
assertTrue (aCache.has(3));
assertTrue (aCache.has(5));
assertTrue (*aCache.get(5) == 6); // 5-3
assertTrue (*aCache.get(3) == 4); // 3-5
// test remove from the end and the beginning of the list
aCache.remove(5); // 3
assertTrue (!aCache.has(5));
assertTrue (*aCache.get(3) == 4); // 3
aCache.add(5, 6); // 5-3
assertTrue (*aCache.get(3) == 4); // 3-5
aCache.remove(3); // 5
assertTrue (!aCache.has(3));
assertTrue (*aCache.get(5) == 6); // 5
// removing illegal entries should work too
aCache.remove(666);
aCache.clear();
assertTrue (!aCache.has(5));
}
void ExpireLRUCacheTest::testCacheSizeN()
{
// 3-1 represents the cache sorted by pos, elements get replaced at the end of the list
// 3-1|5 -> 5 gets removed
ExpireLRUCache<int, int> aCache(3);
aCache.add(1, 2); // 1
assertTrue (aCache.has(1));
assertTrue (*aCache.get(1) == 2);
aCache.add(3, 4); // 3-1
assertTrue (aCache.has(1));
assertTrue (aCache.has(3));
assertTrue (*aCache.get(1) == 2); // 1-3
assertTrue (*aCache.get(3) == 4); // 3-1
aCache.add(5, 6); // 5-3-1
assertTrue (aCache.has(1));
assertTrue (aCache.has(3));
assertTrue (aCache.has(5));
assertTrue (*aCache.get(5) == 6); // 5-3-1
assertTrue (*aCache.get(3) == 4); // 3-5-1
aCache.add(7, 8); // 7-5-3|1
assertTrue (!aCache.has(1));
assertTrue (aCache.has(7));
assertTrue (aCache.has(3));
assertTrue (aCache.has(5));
assertTrue (*aCache.get(5) == 6); // 5-7-3
assertTrue (*aCache.get(3) == 4); // 3-5-7
assertTrue (*aCache.get(7) == 8); // 7-3-5
// test remove from the end and the beginning of the list
aCache.remove(5); // 7-3
assertTrue (!aCache.has(5));
assertTrue (*aCache.get(3) == 4); // 3-7
aCache.add(5, 6); // 5-3-7
assertTrue (*aCache.get(7) == 8); // 7-5-3
aCache.remove(7); // 5-3
assertTrue (!aCache.has(7));
assertTrue (aCache.has(3));
assertTrue (*aCache.get(5) == 6); // 5-3
// removing illegal entries should work too
aCache.remove(666);
aCache.clear();
assertTrue (!aCache.has(5));
assertTrue (!aCache.has(3));
}
void ExpireLRUCacheTest::testDuplicateAdd()
{
ExpireLRUCache<int, int> aCache(3);
aCache.add(1, 2); // 1
assertTrue (aCache.has(1));
assertTrue (*aCache.get(1) == 2);
aCache.add(1, 3);
assertTrue (aCache.has(1));
assertTrue (*aCache.get(1) == 3);
}
void ExpireLRUCacheTest::testAccessExpireGet()
{
ExpireLRUCache<int, int> aCache(3, DURSLEEP);
aCache.add(1, 2); // 1
assertTrue (aCache.has(1));
SharedPtr<int> tmp = aCache.get(1);
assertTrue (!tmp.isNull());
assertTrue (*tmp == 2);
Thread::sleep(DURWAIT);
tmp = aCache.get(1);
assertTrue (tmp.isNull());
}
void ExpireLRUCacheTest::setUp()
{
}
void ExpireLRUCacheTest::tearDown()
{
}
CppUnit::Test* ExpireLRUCacheTest::suite()
{
CppUnit::TestSuite* pSuite = new CppUnit::TestSuite("ExpireLRUCacheTest");
CppUnit_addTest(pSuite, ExpireLRUCacheTest, testClear);
CppUnit_addTest(pSuite, ExpireLRUCacheTest, testExpire0);
CppUnit_addTest(pSuite, ExpireLRUCacheTest, testExpireN);
CppUnit_addTest(pSuite, ExpireLRUCacheTest, testAccessExpireN);
CppUnit_addTest(pSuite, ExpireLRUCacheTest, testCacheSize0);
CppUnit_addTest(pSuite, ExpireLRUCacheTest, testCacheSize1);
CppUnit_addTest(pSuite, ExpireLRUCacheTest, testCacheSize2);
CppUnit_addTest(pSuite, ExpireLRUCacheTest, testCacheSizeN);
CppUnit_addTest(pSuite, ExpireLRUCacheTest, testDuplicateAdd);
CppUnit_addTest(pSuite, ExpireLRUCacheTest, testAccessExpireGet);
return pSuite;
}

View File

@@ -0,0 +1,43 @@
//
// ExpireLRUCacheTest.h
//
// Tests for ExpireLRUCache
//
// Copyright (c) 2006, Applied Informatics Software Engineering GmbH.
// and Contributors.
//
// SPDX-License-Identifier: BSL-1.0
//
#ifndef ExpireLRUCacheTest_INCLUDED
#define ExpireLRUCacheTest_INCLUDED
#include "Poco/Foundation.h"
#include "CppUnit/TestCase.h"
class ExpireLRUCacheTest: public CppUnit::TestCase
{
public:
ExpireLRUCacheTest(const std::string& name);
~ExpireLRUCacheTest();
void testClear();
void testExpire0();
void testExpireN();
void testAccessExpireN();
void testCacheSize0();
void testCacheSize1();
void testCacheSize2();
void testCacheSizeN();
void testDuplicateAdd();
void testAccessExpireGet();
void setUp();
void tearDown();
static CppUnit::Test* suite();
};
#endif // ExpireLRUCacheTest_INCLUDED

View File

@@ -0,0 +1,202 @@
//
// FIFOBufferStreamTest.cpp
//
// Copyright (c) 2004-2006, Applied Informatics Software Engineering GmbH.
// and Contributors.
//
// SPDX-License-Identifier: BSL-1.0
//
#include "FIFOBufferStreamTest.h"
#include "CppUnit/TestCaller.h"
#include "CppUnit/TestSuite.h"
#include "Poco/FIFOBuffer.h"
#include "Poco/FIFOBufferStream.h"
#include "Poco/Delegate.h"
using Poco::FIFOBuffer;
using Poco::FIFOBufferStream;
using Poco::delegate;
FIFOBufferStreamTest::FIFOBufferStreamTest(const std::string& name): CppUnit::TestCase(name)
{
}
FIFOBufferStreamTest::~FIFOBufferStreamTest()
{
}
void FIFOBufferStreamTest::testInput()
{
const char* data = "This is a test";
FIFOBuffer fb1(data, 14);
FIFOBufferStream str1(fb1);
assertTrue (str1.rdbuf()->fifoBuffer().isFull());
int c = str1.get();
assertTrue (c == 'T');
c = str1.get();
assertTrue (c == 'h');
std::string str;
str1 >> str;
assertTrue (str == "is");
char buffer[32];
str1.read(buffer, sizeof(buffer));
assertTrue (str1.gcount() == 10);
buffer[str1.gcount()] = 0;
assertTrue (std::string(" is a test") == buffer);
const char* data2 = "123";
FIFOBufferStream str2(data2, 3);
c = str2.get();
assertTrue (c == '1');
assertTrue (str2.good());
c = str2.get();
assertTrue (c == '2');
str2.unget();
c = str2.get();
assertTrue (c == '2');
assertTrue (str2.good());
c = str2.get();
assertTrue (c == '3');
assertTrue (str2.good());
c = str2.get();
assertTrue (c == -1);
assertTrue (str2.eof());
}
void FIFOBufferStreamTest::testOutput()
{
char output[64];
FIFOBufferStream iostr1(output, 64);
iostr1 << "This is a test " << 42 << std::ends << std::flush;
assertTrue (std::string("This is a test 42") == output);
}
void FIFOBufferStreamTest::testNotify()
{
FIFOBuffer fb(18);
FIFOBufferStream iostr(fb);
assertTrue (iostr.rdbuf()->fifoBuffer().isEmpty());
assertTrue (0 == _readableToNot);
assertTrue (0 == _notToReadable);
assertTrue (0 == _writableToNot);
assertTrue (0 == _notToWritable);
iostr.readable += delegate(this, &FIFOBufferStreamTest::onReadable);
iostr.writable += delegate(this, &FIFOBufferStreamTest::onWritable);
iostr << "This is a test " << 42 << std::ends << std::flush;
assertTrue (iostr.rdbuf()->fifoBuffer().isFull());
assertTrue (0 == _readableToNot);
assertTrue (1 == _notToReadable);
assertTrue (1 == _writableToNot);
assertTrue (0 == _notToWritable);
char input[64];
iostr >> input;
assertTrue (std::string("This") == input);
assertTrue (iostr.rdbuf()->fifoBuffer().isEmpty());
assertTrue (1 == _readableToNot);
assertTrue (1 == _notToReadable);
assertTrue (1 == _writableToNot);
assertTrue (1 == _notToWritable);
iostr >> input;
assertTrue (std::string("is") == input);
assertTrue (1 == _readableToNot);
assertTrue (1 == _notToReadable);
assertTrue (1 == _writableToNot);
assertTrue (1 == _notToWritable);
iostr >> input;
assertTrue (std::string("a") == input);
assertTrue (1 == _readableToNot);
assertTrue (1 == _notToReadable);
assertTrue (1 == _writableToNot);
assertTrue (1 == _notToWritable);
iostr >> input;
assertTrue (std::string("test") == input);
assertTrue (1 == _readableToNot);
assertTrue (1 == _notToReadable);
assertTrue (1 == _writableToNot);
assertTrue (1 == _notToWritable);
iostr >> input;
assertTrue (std::string("42") == input);
assertTrue (1 == _readableToNot);
assertTrue (1 == _notToReadable);
assertTrue (1 == _writableToNot);
assertTrue (1 == _notToWritable);
iostr.clear();
assertTrue (iostr.good());
iostr << "This is a test " << 42 << std::ends << std::flush;
assertTrue (iostr.rdbuf()->fifoBuffer().isFull());
assertTrue (1 == _readableToNot);
assertTrue (2 == _notToReadable);
assertTrue (2 == _writableToNot);
assertTrue (1 == _notToWritable);
iostr.readable -= delegate(this, &FIFOBufferStreamTest::onReadable);
iostr.writable -= delegate(this, &FIFOBufferStreamTest::onWritable);
}
void FIFOBufferStreamTest::onReadable(bool& b)
{
if (b) ++_notToReadable;
else ++_readableToNot;
};
void FIFOBufferStreamTest::onWritable(bool& b)
{
if (b) ++_notToWritable;
else ++_writableToNot;
}
void FIFOBufferStreamTest::setUp()
{
_readableToNot = 0;
_notToReadable = 0;
_writableToNot = 0;
_notToWritable = 0;
}
void FIFOBufferStreamTest::tearDown()
{
}
CppUnit::Test* FIFOBufferStreamTest::suite()
{
CppUnit::TestSuite* pSuite = new CppUnit::TestSuite("FIFOBufferStreamTest");
CppUnit_addTest(pSuite, FIFOBufferStreamTest, testInput);
CppUnit_addTest(pSuite, FIFOBufferStreamTest, testOutput);
CppUnit_addTest(pSuite, FIFOBufferStreamTest, testNotify);
return pSuite;
}

View File

@@ -0,0 +1,48 @@
//
// FIFOBufferStreamTest.h
//
// Definition of the FIFOBufferStreamTest class.
//
// Copyright (c) 2009, Applied Informatics Software Engineering GmbH.
// and Contributors.
//
// SPDX-License-Identifier: BSL-1.0
//
#ifndef FIFOBufferStreamTest_INCLUDED
#define FIFOBufferStreamTest_INCLUDED
#include "Poco/Foundation.h"
#include "CppUnit/TestCase.h"
class FIFOBufferStreamTest: public CppUnit::TestCase
{
public:
FIFOBufferStreamTest(const std::string& name);
~FIFOBufferStreamTest();
void testInput();
void testOutput();
void testNotify();
void setUp();
void tearDown();
static CppUnit::Test* suite();
protected:
void onReadable(bool& b);
void onWritable(bool& b);
private:
int _readableToNot;
int _notToReadable;
int _writableToNot;
int _notToWritable;
};
#endif // FIFOBufferStreamTest_INCLUDED

View File

@@ -0,0 +1,435 @@
//
// FIFOEventTest.cpp
//
// Copyright (c) 2004-2006, Applied Informatics Software Engineering GmbH.
// and Contributors.
//
// SPDX-License-Identifier: BSL-1.0
//
#include "FIFOEventTest.h"
#include "DummyDelegate.h"
#include "CppUnit/TestCaller.h"
#include "CppUnit/TestSuite.h"
#include "Poco/Delegate.h"
#include "Poco/Expire.h"
#include "Poco/Thread.h"
#include "Poco/Exception.h"
using namespace Poco;
#define LARGEINC 100
FIFOEventTest::FIFOEventTest(const std::string& name): CppUnit::TestCase(name)
{
}
FIFOEventTest::~FIFOEventTest()
{
}
void FIFOEventTest::testNoDelegate()
{
int tmp = 0;
EventArgs args;
assertTrue (_count == 0);
Void.notify(this);
assertTrue (_count == 0);
Void += delegate(this, &FIFOEventTest::onVoid);
Void -= delegate(this, &FIFOEventTest::onVoid);
Void.notify(this);
assertTrue (_count == 0);
Simple.notify(this, tmp);
assertTrue (_count == 0);
Simple += delegate(this, &FIFOEventTest::onSimple);
Simple -= delegate(this, &FIFOEventTest::onSimple);
Simple.notify(this, tmp);
assertTrue (_count == 0);
ConstSimple += delegate(this, &FIFOEventTest::onConstSimple);
ConstSimple -= delegate(this, &FIFOEventTest::onConstSimple);
ConstSimple.notify(this, tmp);
assertTrue (_count == 0);
//Note: passing &args will not work due to &
EventArgs* pArgs = &args;
Complex += delegate(this, &FIFOEventTest::onComplex);
Complex -= delegate(this, &FIFOEventTest::onComplex);
Complex.notify(this, pArgs);
assertTrue (_count == 0);
Complex2 += delegate(this, &FIFOEventTest::onComplex2);
Complex2 -= delegate(this, &FIFOEventTest::onComplex2);
Complex2.notify(this, args);
assertTrue (_count == 0);
const EventArgs* pCArgs = &args;
ConstComplex += delegate(this, &FIFOEventTest::onConstComplex);
ConstComplex -= delegate(this, &FIFOEventTest::onConstComplex);
ConstComplex.notify(this, pCArgs);
assertTrue (_count == 0);
Const2Complex += delegate(this, &FIFOEventTest::onConst2Complex);
Const2Complex -= delegate(this, &FIFOEventTest::onConst2Complex);
Const2Complex.notify(this, pArgs);
assertTrue (_count == 0);
}
void FIFOEventTest::testSingleDelegate()
{
int tmp = 0;
EventArgs args;
assertTrue (_count == 0);
Void += delegate(this, &FIFOEventTest::onVoid);
Void.notify(this);
assertTrue (_count == 1);
Simple += delegate(this, &FIFOEventTest::onSimple);
Simple.notify(this, tmp);
assertTrue (_count == 2);
ConstSimple += delegate(this, &FIFOEventTest::onConstSimple);
ConstSimple.notify(this, tmp);
assertTrue (_count == 3);
EventArgs* pArgs = &args;
Complex += delegate(this, &FIFOEventTest::onComplex);
Complex.notify(this, pArgs);
assertTrue (_count == 4);
Complex2 += delegate(this, &FIFOEventTest::onComplex2);
Complex2.notify(this, args);
assertTrue (_count == 5);
const EventArgs* pCArgs = &args;
ConstComplex += delegate(this, &FIFOEventTest::onConstComplex);
ConstComplex.notify(this, pCArgs);
assertTrue (_count == 6);
Const2Complex += delegate(this, &FIFOEventTest::onConst2Complex);
Const2Complex.notify(this, pArgs);
assertTrue (_count == 7);
// check if 2nd notify also works
Const2Complex.notify(this, pArgs);
assertTrue (_count == 8);
}
void FIFOEventTest::testDuplicateRegister()
{
int tmp = 0;
assertTrue (_count == 0);
Simple += delegate(this, &FIFOEventTest::onSimple);
Simple += delegate(this, &FIFOEventTest::onSimple);
Simple.notify(this, tmp);
assertTrue (_count == 2);
Simple -= delegate(this, &FIFOEventTest::onSimple);
Simple.notify(this, tmp);
assertTrue (_count == 3);
}
void FIFOEventTest::testDuplicateUnregister()
{
// duplicate unregister shouldn't give an error,
int tmp = 0;
assertTrue (_count == 0);
Simple -= delegate(this, &FIFOEventTest::onSimple); // should work
Simple.notify(this, tmp);
assertTrue (_count == 0);
Simple += delegate(this, &FIFOEventTest::onSimple);
Simple.notify(this, tmp);
assertTrue (_count == 1);
Simple -= delegate(this, &FIFOEventTest::onSimple);
Simple.notify(this, tmp);
assertTrue (_count == 1);
Simple -= delegate(this, &FIFOEventTest::onSimple);
Simple.notify(this, tmp);
assertTrue (_count == 1);
}
void FIFOEventTest::testDisabling()
{
int tmp = 0;
assertTrue (_count == 0);
Simple += delegate(this, &FIFOEventTest::onSimple);
Simple.disable();
Simple.notify(this, tmp);
assertTrue (_count == 0);
Simple.enable();
Simple.notify(this, tmp);
assertTrue (_count == 1);
// unregister should also work with disabled event
Simple.disable();
Simple -= delegate(this, &FIFOEventTest::onSimple);
Simple.enable();
Simple.notify(this, tmp);
assertTrue (_count == 1);
}
void FIFOEventTest::testFIFOOrder()
{
DummyDelegate o1;
DummyDelegate o2;
assertTrue (_count == 0);
Simple += delegate(&o1, &DummyDelegate::onSimple);
Simple += delegate(&o2, &DummyDelegate::onSimple2);
int tmp = 0;
Simple.notify(this, tmp);
assertTrue (tmp == 2);
Simple -= delegate(&o1, &DummyDelegate::onSimple);
Simple -= delegate(&o2, &DummyDelegate::onSimple2);
// now try with the wrong order
Simple += delegate(&o2, &DummyDelegate::onSimple2);
Simple += delegate(&o1, &DummyDelegate::onSimple);
try
{
tmp = 0;
Simple.notify(this, tmp);
failmsg ("Notify should not work");
}
catch (Poco::InvalidArgumentException&)
{
}
}
void FIFOEventTest::testFIFOOrderExpire()
{
// expire must not break order!
DummyDelegate o1;
DummyDelegate o2;
assertTrue (_count == 0);
Simple += delegate(&o1, &DummyDelegate::onSimple, 5000);
Simple += delegate(&o2, &DummyDelegate::onSimple2, 5000);
int tmp = 0;
Simple.notify(this, tmp);
assertTrue (tmp == 2);
// both ways of unregistering should work
Simple -= delegate(&o1, &DummyDelegate::onSimple, 6000);
Simple -= delegate(&o2, &DummyDelegate::onSimple2);
Simple.notify(this, tmp);
assertTrue (tmp == 2);
// now start mixing of expire and non expire
tmp = 0;
Simple += delegate(&o1, &DummyDelegate::onSimple);
Simple += delegate(&o2, &DummyDelegate::onSimple2, 5000);
Simple.notify(this, tmp);
assertTrue (tmp == 2);
Simple -= delegate(&o2, &DummyDelegate::onSimple2);
// it is not forbidden to unregister a non expiring event with an expire decorator (it is just stupid ;-))
Simple -= delegate(&o1, &DummyDelegate::onSimple, 6000);
Simple.notify(this, tmp);
assertTrue (tmp == 2);
// now try with the wrong order
Simple += delegate(&o2, &DummyDelegate::onSimple2, 5000);
Simple += delegate(&o1, &DummyDelegate::onSimple);
try
{
tmp = 0;
Simple.notify(this, tmp);
failmsg ("Notify should not work");
}
catch (Poco::InvalidArgumentException&)
{
}
}
void FIFOEventTest::testExpire()
{
int tmp = 0;
assertTrue (_count == 0);
Simple += delegate(this, &FIFOEventTest::onSimple, 500);
Simple.notify(this, tmp);
assertTrue (_count == 1);
Poco::Thread::sleep(700);
Simple.notify(this, tmp);
assertTrue (_count == 1);
}
void FIFOEventTest::testExpireReRegister()
{
int tmp = 0;
assertTrue (_count == 0);
Simple += delegate(this, &FIFOEventTest::onSimple, 500);
Simple.notify(this, tmp);
assertTrue (_count == 1);
Poco::Thread::sleep(200);
Simple.notify(this, tmp);
assertTrue (_count == 2);
// renew registration
Simple += delegate(this, &FIFOEventTest::onSimple, 600);
Poco::Thread::sleep(400);
Simple.notify(this, tmp);
assertTrue (_count == 3);
Poco::Thread::sleep(300);
Simple.notify(this, tmp);
assertTrue (_count == 3);
}
void FIFOEventTest::testReturnParams()
{
DummyDelegate o1;
Simple += delegate(&o1, &DummyDelegate::onSimple);
int tmp = 0;
Simple.notify(this, tmp);
assertTrue (tmp == 1);
}
void FIFOEventTest::testOverwriteDelegate()
{
DummyDelegate o1;
Simple += delegate(&o1, &DummyDelegate::onSimple);
Simple += delegate(&o1, &DummyDelegate::onSimple2);
int tmp = 0; // onsimple requires 0 as input
Simple.notify(this, tmp);
assertTrue (tmp == 2);
}
void FIFOEventTest::testAsyncNotify()
{
Poco::FIFOEvent<int >* pSimple= new Poco::FIFOEvent<int>();
(*pSimple) += delegate(this, &FIFOEventTest::onAsync);
assertTrue (_count == 0);
int tmp = 0;
Poco::ActiveResult<int>retArg = pSimple->notifyAsync(this, tmp);
delete pSimple; // must work even when the event got deleted!
pSimple = NULL;
assertTrue (_count == 0);
retArg.wait();
assertTrue (retArg.data() == tmp);
assertTrue (_count == LARGEINC);
}
void FIFOEventTest::onVoid(const void* pSender)
{
_count++;
}
void FIFOEventTest::onSimple(const void* pSender, int& i)
{
_count++;
}
void FIFOEventTest::onSimpleOther(const void* pSender, int& i)
{
_count+=100;
}
void FIFOEventTest::onConstSimple(const void* pSender, const int& i)
{
_count++;
}
void FIFOEventTest::onComplex(const void* pSender, Poco::EventArgs* & i)
{
_count++;
}
void FIFOEventTest::onComplex2(const void* pSender, Poco::EventArgs & i)
{
_count++;
}
void FIFOEventTest::onConstComplex(const void* pSender, const Poco::EventArgs*& i)
{
_count++;
}
void FIFOEventTest::onConst2Complex(const void* pSender, const Poco::EventArgs * const & i)
{
_count++;
}
void FIFOEventTest::onAsync(const void* pSender, int& i)
{
Poco::Thread::sleep(700);
_count += LARGEINC ;
}
int FIFOEventTest::getCount() const
{
return _count;
}
void FIFOEventTest::setUp()
{
_count = 0;
// must clear events, otherwise repeating test executions will fail
// because tests are only created once, only setup is called before
// each test run
Void.clear();
Simple.clear();
ConstSimple.clear();
Complex.clear();
Complex2.clear();
ConstComplex.clear();
Const2Complex.clear();
}
void FIFOEventTest::tearDown()
{
}
CppUnit::Test* FIFOEventTest::suite()
{
CppUnit::TestSuite* pSuite = new CppUnit::TestSuite("FIFOEventTest");
CppUnit_addTest(pSuite, FIFOEventTest, testNoDelegate);
CppUnit_addTest(pSuite, FIFOEventTest, testSingleDelegate);
CppUnit_addTest(pSuite, FIFOEventTest, testReturnParams);
CppUnit_addTest(pSuite, FIFOEventTest, testDuplicateRegister);
CppUnit_addTest(pSuite, FIFOEventTest, testDuplicateUnregister);
CppUnit_addTest(pSuite, FIFOEventTest, testDisabling);
CppUnit_addTest(pSuite, FIFOEventTest, testFIFOOrder);
CppUnit_addTest(pSuite, FIFOEventTest, testFIFOOrderExpire);
CppUnit_addTest(pSuite, FIFOEventTest, testExpire);
CppUnit_addTest(pSuite, FIFOEventTest, testExpireReRegister);
CppUnit_addTest(pSuite, FIFOEventTest, testOverwriteDelegate);
CppUnit_addTest(pSuite, FIFOEventTest, testAsyncNotify);
return pSuite;
}

View File

@@ -0,0 +1,70 @@
//
// FIFOEventTest.h
//
// Definition of the FIFOEventTest class.
//
// Copyright (c) 2006, Applied Informatics Software Engineering GmbH.
// and Contributors.
//
// SPDX-License-Identifier: BSL-1.0
//
#ifndef FIFOEventTest_INCLUDED
#define FIFOEventTest_INCLUDED
#include "Poco/Foundation.h"
#include "CppUnit/TestCase.h"
#include "Poco/FIFOEvent.h"
#include "Poco/EventArgs.h"
class FIFOEventTest: public CppUnit::TestCase
{
Poco::FIFOEvent<void> Void;
Poco::FIFOEvent<int> Simple;
Poco::FIFOEvent<const int> ConstSimple;
Poco::FIFOEvent<Poco::EventArgs*> Complex;
Poco::FIFOEvent<Poco::EventArgs> Complex2;
Poco::FIFOEvent<const Poco::EventArgs*> ConstComplex;
Poco::FIFOEvent<const Poco::EventArgs * const> Const2Complex;
public:
FIFOEventTest(const std::string& name);
~FIFOEventTest();
void testNoDelegate();
void testSingleDelegate();
void testDuplicateRegister();
void testDuplicateUnregister();
void testDisabling();
void testFIFOOrder();
void testFIFOOrderExpire();
void testExpire();
void testExpireReRegister();
void testReturnParams();
void testOverwriteDelegate();
void testAsyncNotify();
void setUp();
void tearDown();
static CppUnit::Test* suite();
protected:
void onVoid(const void* pSender);
void onSimple(const void* pSender, int& i);
void onSimpleOther(const void* pSender, int& i);
void onConstSimple(const void* pSender, const int& i);
void onComplex(const void* pSender, Poco::EventArgs* & i);
void onComplex2(const void* pSender, Poco::EventArgs & i);
void onConstComplex(const void* pSender, const Poco::EventArgs*& i);
void onConst2Complex(const void* pSender, const Poco::EventArgs * const & i);
void onAsync(const void* pSender, int& i);
int getCount() const;
private:
int _count;
};
#endif // FIFOEventTest_INCLUDED

View File

@@ -0,0 +1,156 @@
//
// FPETest.cpp
//
// Copyright (c) 2004-2006, Applied Informatics Software Engineering GmbH.
// and Contributors.
//
// SPDX-License-Identifier: BSL-1.0
//
#include "FPETest.h"
#include "CppUnit/TestCaller.h"
#include "CppUnit/TestSuite.h"
#include "Poco/FPEnvironment.h"
using Poco::FPE;
FPETest::FPETest(const std::string& name): CppUnit::TestCase(name)
{
}
FPETest::~FPETest()
{
}
void FPETest::testClassify()
{
{
float a = 0.0f;
float b = 0.0f;
float nan = a/b;
float inf = 1.0f/b;
assertTrue (FPE::isNaN(nan));
assertTrue (!FPE::isNaN(a));
assertTrue (FPE::isInfinite(inf));
assertTrue (!FPE::isInfinite(a));
}
{
double a = 0;
double b = 0;
double nan = a/b;
double inf = 1.0/b;
assertTrue (FPE::isNaN(nan));
assertTrue (!FPE::isNaN(a));
assertTrue (FPE::isInfinite(inf));
assertTrue (!FPE::isInfinite(a));
}
}
#if defined(__HP_aCC)
#pragma OPTIMIZE OFF
#elif defined(_MSC_VER)
#pragma optimize("", off)
#elif defined(__APPLE__) && defined(POCO_COMPILER_GCC)
#pragma GCC optimization_level 0
#endif
double mult(double a, double b)
{
return a*b;
}
double div(double a, double b)
{
return a/b;
}
void FPETest::testFlags()
{
FPE::clearFlags();
// some compilers are intelligent enough to optimize the calculations below away.
// unfortunately this leads to a failing test, so we have to trick out the
// compiler's optimizer a little bit by doing something with the results.
volatile double a = 10;
volatile double b = 0;
volatile double c = div(a, b);
#if !defined(POCO_NO_FPENVIRONMENT)
assertTrue (FPE::isFlag(FPE::FP_DIVIDE_BY_ZERO));
#endif
assertTrue (FPE::isInfinite(c));
FPE::clearFlags();
a = 1.23456789e210;
b = 9.87654321e210;
c = mult(a, b);
#if !defined(POCO_NO_FPENVIRONMENT)
assertTrue (FPE::isFlag(FPE::FP_OVERFLOW));
#endif
assertEqualDelta(c, c, 0);
FPE::clearFlags();
a = 1.23456789e-99;
b = 9.87654321e210;
c = div(a, b);
#if !defined(POCO_NO_FPENVIRONMENT)
assertTrue (FPE::isFlag(FPE::FP_UNDERFLOW));
#endif
assertEqualDelta(c, c, 0);
}
#if defined(__HP_aCC)
#pragma OPTIMIZE ON
#elif defined(_MSC_VER)
#pragma optimize("", on)
#elif defined(__APPLE__) && defined(POCO_COMPILER_GCC)
#pragma GCC optimization_level reset
#endif
void FPETest::testRound()
{
#if !defined(__osf__) && !defined(__VMS) && !defined(POCO_NO_FPENVIRONMENT)
FPE::setRoundingMode(FPE::FP_ROUND_TONEAREST);
assertTrue (FPE::getRoundingMode() == FPE::FP_ROUND_TONEAREST);
{
FPE env(FPE::FP_ROUND_TOWARDZERO);
assertTrue (FPE::getRoundingMode() == FPE::FP_ROUND_TOWARDZERO);
}
assertTrue (FPE::getRoundingMode() == FPE::FP_ROUND_TONEAREST);
#endif
}
void FPETest::setUp()
{
}
void FPETest::tearDown()
{
}
CppUnit::Test* FPETest::suite()
{
CppUnit::TestSuite* pSuite = new CppUnit::TestSuite("FPETest");
CppUnit_addTest(pSuite, FPETest, testClassify);
CppUnit_addTest(pSuite, FPETest, testFlags);
CppUnit_addTest(pSuite, FPETest, testRound);
return pSuite;
}

Some files were not shown because too many files have changed in this diff Show More