diff options
author | jmpoep <OriginalEntryPoint@qq.com> | 2023-12-07 16:51:07 +0800 |
---|---|---|
committer | jmpoep <OriginalEntryPoint@qq.com> | 2023-12-07 16:51:07 +0800 |
commit | 28008a746a31abb7909dd86cb0cd413ac8943b0b (patch) | |
tree | a30b74b8cad548048c3c1551d652828ab76fa9bd /VMProtectCon.Tests | |
download | vmprotect-3.5.1-master.tar vmprotect-3.5.1-master.tar.gz vmprotect-3.5.1-master.tar.bz2 vmprotect-3.5.1-master.zip |
Diffstat (limited to 'VMProtectCon.Tests')
-rw-r--r-- | VMProtectCon.Tests/Test_CommandLineParser.cpp | 150 | ||||
-rw-r--r-- | VMProtectCon.Tests/main.cpp | 28 | ||||
-rw-r--r-- | VMProtectCon.Tests/precompiled.cpp | 1 | ||||
-rw-r--r-- | VMProtectCon.Tests/precompiled.h | 4 |
4 files changed, 183 insertions, 0 deletions
diff --git a/VMProtectCon.Tests/Test_CommandLineParser.cpp b/VMProtectCon.Tests/Test_CommandLineParser.cpp new file mode 100644 index 0000000..fa469cb --- /dev/null +++ b/VMProtectCon.Tests/Test_CommandLineParser.cpp @@ -0,0 +1,150 @@ +#include "precompiled.h" +#include "../VMProtectCon/CommandLineParser.h" + +typedef std::vector<std::string> Strings; + +TEST(CommandLineParser, Empty) +{ + Strings vEmpty; + CommandLineParser parser(vEmpty); + ASSERT_FALSE(parser.IsOK()); +} + +TEST(CommandLineParser, JustFileName) +{ + Strings v; + v.push_back("filename.exe"); + CommandLineParser parser(v); + ASSERT_TRUE(parser.IsOK()); + ASSERT_EQ("filename.exe", parser.GetFile()); + ASSERT_EQ("", parser.GetOutFile()); + ASSERT_EQ("", parser.GetProjectFile()); + ASSERT_EQ("", parser.GetScriptFile()); + ASSERT_EQ("", parser.GetWatermarkName()); + ASSERT_FALSE(parser.GetWarningsAsErrors()); +} + +TEST(CommandLineParser, FileNamePlusOutFileName) +{ + Strings v; + v.push_back("filename1.exe"); + v.push_back("filename2.exe"); + CommandLineParser parser(v); + ASSERT_TRUE(parser.IsOK()); + ASSERT_EQ("filename1.exe", parser.GetFile()); + ASSERT_EQ("filename2.exe", parser.GetOutFile()); + ASSERT_EQ("", parser.GetProjectFile()); + ASSERT_EQ("", parser.GetScriptFile()); + ASSERT_EQ("", parser.GetWatermarkName()); + ASSERT_FALSE(parser.GetWarningsAsErrors()); +} + +////////////////////////////////////////////////////////////////////////// + +TEST(CommandLineParser, FileNamePlusProjectName) +{ + Strings v; + v.push_back("filename1.exe"); + v.push_back("-pf"); + v.push_back("filename1.vmp"); + CommandLineParser parser(v); + ASSERT_TRUE(parser.IsOK()); + ASSERT_EQ("filename1.exe", parser.GetFile()); + ASSERT_EQ("", parser.GetOutFile()); + ASSERT_EQ("filename1.vmp", parser.GetProjectFile()); + ASSERT_EQ("", parser.GetScriptFile()); + ASSERT_EQ("", parser.GetWatermarkName()); + ASSERT_FALSE(parser.GetWarningsAsErrors()); +} + +TEST(CommandLineParser, FileNamePlusProjectNameBad) +{ + Strings v; + v.push_back("filename1.exe"); + v.push_back("-pf"); + CommandLineParser parser(v); + ASSERT_FALSE(parser.IsOK()); +} + +////////////////////////////////////////////////////////////////////////// + +TEST(CommandLineParser, FileNamePlusScriptName) +{ + Strings v; + v.push_back("filename1.exe"); + v.push_back("-sf"); + v.push_back("filename1.py"); + CommandLineParser parser(v); + ASSERT_TRUE(parser.IsOK()); + ASSERT_EQ("filename1.exe", parser.GetFile()); + ASSERT_EQ("", parser.GetOutFile()); + ASSERT_EQ("", parser.GetProjectFile()); + ASSERT_EQ("filename1.py", parser.GetScriptFile()); + ASSERT_EQ("", parser.GetWatermarkName()); + ASSERT_FALSE(parser.GetWarningsAsErrors()); +} + +TEST(CommandLineParser, FileNamePlusScriptNameBad) +{ + Strings v; + v.push_back("filename1.exe"); + v.push_back("-sf"); + CommandLineParser parser(v); + ASSERT_FALSE(parser.IsOK()); +} + +////////////////////////////////////////////////////////////////////////// + +TEST(CommandLineParser, FileNamePlusWatermarkName) +{ + Strings v; + v.push_back("filename1.exe"); + v.push_back("-wm"); + v.push_back("watermark"); + CommandLineParser parser(v); + ASSERT_TRUE(parser.IsOK()); + ASSERT_EQ("filename1.exe", parser.GetFile()); + ASSERT_EQ("", parser.GetOutFile()); + ASSERT_EQ("", parser.GetProjectFile()); + ASSERT_EQ("", parser.GetScriptFile()); + ASSERT_EQ("watermark", parser.GetWatermarkName()); + ASSERT_FALSE(parser.GetWarningsAsErrors()); +} + +TEST(CommandLineParser, FileNamePlusWatermarkNameBad) +{ + Strings v; + v.push_back("filename1.exe"); + v.push_back("-wm"); + CommandLineParser parser(v); + ASSERT_FALSE(parser.IsOK()); +} + +////////////////////////////////////////////////////////////////////////// + +TEST(CommandLineParser, FileNamePlusWarningsAsErrors) +{ + Strings v; + v.push_back("filename1.exe"); + v.push_back("-we"); + CommandLineParser parser(v); + ASSERT_TRUE(parser.IsOK()); + ASSERT_EQ("filename1.exe", parser.GetFile()); + ASSERT_EQ("", parser.GetOutFile()); + ASSERT_EQ("", parser.GetProjectFile()); + ASSERT_EQ("", parser.GetScriptFile()); + ASSERT_EQ("", parser.GetWatermarkName()); + ASSERT_TRUE(parser.GetWarningsAsErrors()); +} + +////////////////////////////////////////////////////////////////////////// + +TEST(CommandLineParser, NotAnOptionAfterTheSecondFileName) +{ + Strings v; + v.push_back("filename1.exe"); // input + v.push_back("filename2.exe"); // output + v.push_back("filename3.exe"); // not an option parameter + CommandLineParser parser(v); + ASSERT_FALSE(parser.IsOK()); +}
\ No newline at end of file diff --git a/VMProtectCon.Tests/main.cpp b/VMProtectCon.Tests/main.cpp new file mode 100644 index 0000000..cb39d98 --- /dev/null +++ b/VMProtectCon.Tests/main.cpp @@ -0,0 +1,28 @@ +#include "precompiled.h" + +#ifdef WIN +#include <crtdbg.h> /* Heap verifying */ +#elif MACOSX +#define __ICONS__ +#include <Cocoa/Cocoa.h> +#endif + + +int main(int argc, char **argv) +{ +#ifdef WIN + /* Set up heap verifying. */ + _CrtSetDbgFlag(_CrtSetDbgFlag( _CRTDBG_REPORT_FLAG ) | _CRTDBG_LEAK_CHECK_DF); +#elif MACOSX + NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; +#endif + + testing::InitGoogleTest(&argc, argv); + int rc = RUN_ALL_TESTS(); + +#ifdef MACOSX + [pool release]; +#endif + + return rc; +} diff --git a/VMProtectCon.Tests/precompiled.cpp b/VMProtectCon.Tests/precompiled.cpp new file mode 100644 index 0000000..5f656a4 --- /dev/null +++ b/VMProtectCon.Tests/precompiled.cpp @@ -0,0 +1 @@ +#include "precompiled.h" diff --git a/VMProtectCon.Tests/precompiled.h b/VMProtectCon.Tests/precompiled.h new file mode 100644 index 0000000..1c23f71 --- /dev/null +++ b/VMProtectCon.Tests/precompiled.h @@ -0,0 +1,4 @@ +#pragma once + +#include "gtest/gtest.h" +#include "gmock/gmock.h" |