[Winmerge-svn] SF.net SVN: winmerge:[6605] trunk/Testing/GoogleTest
Windows visual diff and merge for files and directories
Brought to you by:
christianlist,
grimmdp
From: <ki...@us...> - 2009-03-26 21:44:25
|
Revision: 6605 http://winmerge.svn.sourceforge.net/winmerge/?rev=6605&view=rev Author: kimmov Date: 2009-03-26 21:44:22 +0000 (Thu, 26 Mar 2009) Log Message: ----------- Tests: Add Google Test unit test for command line parsing. Added Paths: ----------- trunk/Testing/GoogleTest/CmdLine/ trunk/Testing/GoogleTest/CmdLine/CmdLine.sln trunk/Testing/GoogleTest/CmdLine/CmdLine.vcproj trunk/Testing/GoogleTest/CmdLine/MergeCmdLine.cpp Property changes on: trunk/Testing/GoogleTest/CmdLine ___________________________________________________________________ Added: bugtraq:url + http://sourceforge.net/support/tracker.php?aid=%BUGID% Added: bugtraq:logregex + (\d{6,}) Added: trunk/Testing/GoogleTest/CmdLine/CmdLine.sln =================================================================== --- trunk/Testing/GoogleTest/CmdLine/CmdLine.sln (rev 0) +++ trunk/Testing/GoogleTest/CmdLine/CmdLine.sln 2009-03-26 21:44:22 UTC (rev 6605) @@ -0,0 +1,23 @@ +Microsoft Visual Studio Solution File, Format Version 8.00 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "CmdLine", "CmdLine.vcproj", "{1F0BCAE0-A64F-4246-A05D-3ED5FB24613E}" + ProjectSection(ProjectDependencies) = postProject + EndProjectSection +EndProject +Global + GlobalSection(SolutionConfiguration) = preSolution + Debug = Debug + Release = Release + EndGlobalSection + GlobalSection(ProjectDependencies) = postSolution + EndGlobalSection + GlobalSection(ProjectConfiguration) = postSolution + {1F0BCAE0-A64F-4246-A05D-3ED5FB24613E}.Debug.ActiveCfg = Debug|Win32 + {1F0BCAE0-A64F-4246-A05D-3ED5FB24613E}.Debug.Build.0 = Debug|Win32 + {1F0BCAE0-A64F-4246-A05D-3ED5FB24613E}.Release.ActiveCfg = Release|Win32 + {1F0BCAE0-A64F-4246-A05D-3ED5FB24613E}.Release.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + EndGlobalSection + GlobalSection(ExtensibilityAddIns) = postSolution + EndGlobalSection +EndGlobal Property changes on: trunk/Testing/GoogleTest/CmdLine/CmdLine.sln ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision Added: svn:eol-style + native Added: trunk/Testing/GoogleTest/CmdLine/CmdLine.vcproj =================================================================== --- trunk/Testing/GoogleTest/CmdLine/CmdLine.vcproj (rev 0) +++ trunk/Testing/GoogleTest/CmdLine/CmdLine.vcproj 2009-03-26 21:44:22 UTC (rev 6605) @@ -0,0 +1,159 @@ +<?xml version="1.0" encoding="Windows-1252"?> +<VisualStudioProject + ProjectType="Visual C++" + Version="7.10" + Name="CmdLine" + ProjectGUID="{1F0BCAE0-A64F-4246-A05D-3ED5FB24613E}" + Keyword="Win32Proj"> + <Platforms> + <Platform + Name="Win32"/> + </Platforms> + <Configurations> + <Configuration + Name="Debug|Win32" + OutputDirectory="Debug" + IntermediateDirectory="Debug" + ConfigurationType="1" + CharacterSet="2"> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + AdditionalIncludeDirectories=""..\..\..\Src";"..\..\..\Src\Common"" + PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE" + MinimalRebuild="TRUE" + BasicRuntimeChecks="3" + RuntimeLibrary="5" + UsePrecompiledHeader="0" + WarningLevel="3" + Detect64BitPortabilityProblems="TRUE" + DebugInformationFormat="4"/> + <Tool + Name="VCCustomBuildTool"/> + <Tool + Name="VCLinkerTool" + AdditionalDependencies="gtestd.lib shlwapi.lib" + OutputFile="$(OutDir)/CmdLine.exe" + LinkIncremental="2" + AdditionalLibraryDirectories="".."" + GenerateDebugInformation="TRUE" + ProgramDatabaseFile="$(OutDir)/CmdLine.pdb" + SubSystem="1" + TargetMachine="1"/> + <Tool + Name="VCMIDLTool"/> + <Tool + Name="VCPostBuildEventTool"/> + <Tool + Name="VCPreBuildEventTool"/> + <Tool + Name="VCPreLinkEventTool"/> + <Tool + Name="VCResourceCompilerTool"/> + <Tool + Name="VCWebServiceProxyGeneratorTool"/> + <Tool + Name="VCXMLDataGeneratorTool"/> + <Tool + Name="VCWebDeploymentTool"/> + <Tool + Name="VCManagedWrapperGeneratorTool"/> + <Tool + Name="VCAuxiliaryManagedWrapperGeneratorTool"/> + </Configuration> + <Configuration + Name="Release|Win32" + OutputDirectory="Release" + IntermediateDirectory="Release" + ConfigurationType="1" + CharacterSet="2"> + <Tool + Name="VCCLCompilerTool" + AdditionalIncludeDirectories=""..\..\..\Src";"..\..\..\Src\Common"" + PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE" + RuntimeLibrary="4" + UsePrecompiledHeader="0" + WarningLevel="3" + Detect64BitPortabilityProblems="TRUE" + DebugInformationFormat="3"/> + <Tool + Name="VCCustomBuildTool"/> + <Tool + Name="VCLinkerTool" + AdditionalDependencies="gtest.lib shlwapi.lib" + OutputFile="$(OutDir)/CmdLine.exe" + LinkIncremental="1" + AdditionalLibraryDirectories="".."" + GenerateDebugInformation="TRUE" + SubSystem="1" + OptimizeReferences="2" + EnableCOMDATFolding="2" + TargetMachine="1"/> + <Tool + Name="VCMIDLTool"/> + <Tool + Name="VCPostBuildEventTool"/> + <Tool + Name="VCPreBuildEventTool"/> + <Tool + Name="VCPreLinkEventTool"/> + <Tool + Name="VCResourceCompilerTool"/> + <Tool + Name="VCWebServiceProxyGeneratorTool"/> + <Tool + Name="VCXMLDataGeneratorTool"/> + <Tool + Name="VCWebDeploymentTool"/> + <Tool + Name="VCManagedWrapperGeneratorTool"/> + <Tool + Name="VCAuxiliaryManagedWrapperGeneratorTool"/> + </Configuration> + </Configurations> + <References> + </References> + <Files> + <Filter + Name="Source Files" + Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx" + UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"> + <File + RelativePath=".\MergeCmdLine.cpp"> + </File> + <File + RelativePath="..\..\..\Src\MergeCmdLineInfo.cpp"> + </File> + <File + RelativePath="..\..\..\Src\paths.cpp"> + </File> + <File + RelativePath="..\..\..\Src\Common\UnicodeString.cpp"> + </File> + </Filter> + <Filter + Name="Header Files" + Filter="h;hpp;hxx;hm;inl;inc;xsd" + UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"> + <File + RelativePath="..\..\..\Src\Constants.h"> + </File> + <File + RelativePath="..\..\..\Src\MergeCmdLineInfo.h"> + </File> + <File + RelativePath="..\..\..\Src\paths.h"> + </File> + <File + RelativePath="..\..\..\Src\Common\UnicodeString.h"> + </File> + </Filter> + <Filter + Name="Resource Files" + Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx" + UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"> + </Filter> + </Files> + <Globals> + </Globals> +</VisualStudioProject> Property changes on: trunk/Testing/GoogleTest/CmdLine/CmdLine.vcproj ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision Added: svn:eol-style + native Added: trunk/Testing/GoogleTest/CmdLine/MergeCmdLine.cpp =================================================================== --- trunk/Testing/GoogleTest/CmdLine/MergeCmdLine.cpp (rev 0) +++ trunk/Testing/GoogleTest/CmdLine/MergeCmdLine.cpp 2009-03-26 21:44:22 UTC (rev 6605) @@ -0,0 +1,120 @@ +#include <gtest/gtest.h> +#include <windows.h> +#include <tchar.h> +#include <vector> +#include "Constants.h" // FFILEOPEN_* flags +#include "UnicodeString.h" +#include "MergeCmdLineInfo.h" + +using std::vector; + +namespace +{ + // The fixture for testing command line parsing. + class MergeCmdLineInfoTest : public testing::Test + { + protected: + // You can remove any or all of the following functions if its body + // is empty. + + MergeCmdLineInfoTest() + { + // You can do set-up work for each test here. + } + + virtual ~MergeCmdLineInfoTest() + { + // You can do clean-up work that doesn't throw exceptions here. + } + + // If the constructor and destructor are not enough for setting up + // and cleaning up each test, you can define the following methods: + + virtual void SetUp() + { + // Code here will be called immediately after the constructor (right + // before each test). + } + + virtual void TearDown() + { + // Code here will be called immediately after each test (right + // before the destructor). + } + + // Objects declared here can be used by all tests in the test case for Foo. + }; + + // Empty command line + // BUG! Empty command line returns FFILEOPEN_CMDLINE as flags! + TEST_F(MergeCmdLineInfoTest, Empty) + { + MergeCmdLineInfo cmdInfo(NULL); + EXPECT_EQ(0, cmdInfo.m_Files.size()); + EXPECT_EQ(SW_SHOWNORMAL, cmdInfo.m_nCmdShow); + EXPECT_FALSE(cmdInfo.m_bClearCaseTool); + EXPECT_FALSE(cmdInfo.m_bEscShutdown); + EXPECT_FALSE(cmdInfo.m_bExitIfNoDiff); + EXPECT_FALSE(cmdInfo.m_bRecurse); + EXPECT_FALSE(cmdInfo.m_bNonInteractive); + EXPECT_FALSE(cmdInfo.m_bSingleInstance); + EXPECT_FALSE(cmdInfo.m_bShowUsage); + EXPECT_EQ(FFILEOPEN_NONE, cmdInfo.m_dwLeftFlags); + EXPECT_EQ(FFILEOPEN_NONE, cmdInfo.m_dwRightFlags); + EXPECT_EQ("", cmdInfo.m_sLeftDesc); + EXPECT_EQ("", cmdInfo.m_sRightDesc); + EXPECT_EQ("", cmdInfo.m_sFileFilter); + EXPECT_EQ("", cmdInfo.m_sPreDiffer); + } + + // Empty command line containing space + // BUG! Empty command line returns FFILEOPEN_CMDLINE as flags! + TEST_F(MergeCmdLineInfoTest, EmptySpace) + { + MergeCmdLineInfo cmdInfo(" "); + EXPECT_EQ(0, cmdInfo.m_Files.size()); + EXPECT_EQ(SW_SHOWNORMAL, cmdInfo.m_nCmdShow); + EXPECT_FALSE(cmdInfo.m_bClearCaseTool); + EXPECT_FALSE(cmdInfo.m_bEscShutdown); + EXPECT_FALSE(cmdInfo.m_bExitIfNoDiff); + EXPECT_FALSE(cmdInfo.m_bRecurse); + EXPECT_FALSE(cmdInfo.m_bNonInteractive); + EXPECT_FALSE(cmdInfo.m_bSingleInstance); + EXPECT_FALSE(cmdInfo.m_bShowUsage); + EXPECT_EQ(FFILEOPEN_NONE, cmdInfo.m_dwLeftFlags); + EXPECT_EQ(FFILEOPEN_NONE, cmdInfo.m_dwRightFlags); + EXPECT_EQ("", cmdInfo.m_sLeftDesc); + EXPECT_EQ("", cmdInfo.m_sRightDesc); + EXPECT_EQ("", cmdInfo.m_sFileFilter); + EXPECT_EQ("", cmdInfo.m_sPreDiffer); + } + + // Empty command line containing tab + // BUG! Empty command line returns FFILEOPEN_CMDLINE as flags! + TEST_F(MergeCmdLineInfoTest, EmptyTab) + { + MergeCmdLineInfo cmdInfo("\t"); + EXPECT_EQ(0, cmdInfo.m_Files.size()); + EXPECT_EQ(SW_SHOWNORMAL, cmdInfo.m_nCmdShow); + EXPECT_FALSE(cmdInfo.m_bClearCaseTool); + EXPECT_FALSE(cmdInfo.m_bEscShutdown); + EXPECT_FALSE(cmdInfo.m_bExitIfNoDiff); + EXPECT_FALSE(cmdInfo.m_bRecurse); + EXPECT_FALSE(cmdInfo.m_bNonInteractive); + EXPECT_FALSE(cmdInfo.m_bSingleInstance); + EXPECT_FALSE(cmdInfo.m_bShowUsage); + EXPECT_EQ(FFILEOPEN_NONE, cmdInfo.m_dwLeftFlags); + EXPECT_EQ(FFILEOPEN_NONE, cmdInfo.m_dwRightFlags); + EXPECT_EQ("", cmdInfo.m_sLeftDesc); + EXPECT_EQ("", cmdInfo.m_sRightDesc); + EXPECT_EQ("", cmdInfo.m_sFileFilter); + EXPECT_EQ("", cmdInfo.m_sPreDiffer); + } + +} // namespace + +int main(int argc, char **argv) +{ + testing::InitGoogleTest(&argc, argv); + return RUN_ALL_TESTS(); +} Property changes on: trunk/Testing/GoogleTest/CmdLine/MergeCmdLine.cpp ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision Added: svn:eol-style + native This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |