aboutsummaryrefslogtreecommitdiff
path: root/VMProtectCon.Tests
diff options
context:
space:
mode:
authorjmpoep <OriginalEntryPoint@qq.com>2023-12-07 16:51:07 +0800
committerjmpoep <OriginalEntryPoint@qq.com>2023-12-07 16:51:07 +0800
commit28008a746a31abb7909dd86cb0cd413ac8943b0b (patch)
treea30b74b8cad548048c3c1551d652828ab76fa9bd /VMProtectCon.Tests
downloadvmprotect-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
first commitHEADmaster
Diffstat (limited to 'VMProtectCon.Tests')
-rw-r--r--VMProtectCon.Tests/Test_CommandLineParser.cpp150
-rw-r--r--VMProtectCon.Tests/main.cpp28
-rw-r--r--VMProtectCon.Tests/precompiled.cpp1
-rw-r--r--VMProtectCon.Tests/precompiled.h4
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"