aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--toolsrc/src/VcpkgCmdArguments.cpp3
-rw-r--r--toolsrc/src/tests_arguments.cpp46
-rw-r--r--toolsrc/vcpkgtest/vcpkgtest.vcxproj1
-rw-r--r--toolsrc/vcpkgtest/vcpkgtest.vcxproj.filters3
4 files changed, 53 insertions, 0 deletions
diff --git a/toolsrc/src/VcpkgCmdArguments.cpp b/toolsrc/src/VcpkgCmdArguments.cpp
index 86b1b6d8c..5abe69e66 100644
--- a/toolsrc/src/VcpkgCmdArguments.cpp
+++ b/toolsrc/src/VcpkgCmdArguments.cpp
@@ -78,6 +78,9 @@ namespace vcpkg
if (arg[0] == '-' && arg[1] == '-')
{
+ // make argument case insensitive
+ auto& f = std::use_facet<std::ctype<char>>(std::locale());
+ f.tolower(&arg[0], &arg[0] + arg.size());
// command switch
if (arg == "--vcpkg-root")
{
diff --git a/toolsrc/src/tests_arguments.cpp b/toolsrc/src/tests_arguments.cpp
new file mode 100644
index 000000000..33121b93a
--- /dev/null
+++ b/toolsrc/src/tests_arguments.cpp
@@ -0,0 +1,46 @@
+#include "CppUnitTest.h"
+#include "VcpkgCmdArguments.h"
+
+#pragma comment(lib,"version")
+#pragma comment(lib,"winhttp")
+
+using namespace Microsoft::VisualStudio::CppUnitTestFramework;
+
+using namespace vcpkg;
+
+namespace UnitTest1
+{
+ TEST_CLASS(ArgumentTests)
+ {
+ public:
+ TEST_METHOD(create_from_arg_sequence_options_lower)
+ {
+ std::vector<std::string> t = {
+ "--vcpkg-root", "C:\vcpkg",
+ "--debug",
+ "--sendmetrics",
+ "--printmetrics"
+ };
+ auto v = VcpkgCmdArguments::create_from_arg_sequence(t.data(), t.data() + t.size());
+ Assert::AreEqual("C:\vcpkg", v.vcpkg_root_dir.get()->c_str());
+ Assert::IsTrue(vcpkg::OptBoolC::ENABLED == v.debug);
+ Assert::IsTrue(vcpkg::OptBoolC::ENABLED == v.sendmetrics);
+ Assert::IsTrue(vcpkg::OptBoolC::ENABLED == v.printmetrics);
+ }
+
+ TEST_METHOD(create_from_arg_sequence_options_upper)
+ {
+ std::vector<std::string> t = {
+ "--VCPKG-ROOT", "C:\vcpkg",
+ "--DEBUG",
+ "--SENDMETRICS",
+ "--PRINTMETRICS"
+ };
+ auto v = VcpkgCmdArguments::create_from_arg_sequence(t.data(), t.data() + t.size());
+ Assert::AreEqual("C:\vcpkg", v.vcpkg_root_dir.get()->c_str());
+ Assert::IsTrue(vcpkg::OptBoolC::ENABLED == v.debug);
+ Assert::IsTrue(vcpkg::OptBoolC::ENABLED == v.sendmetrics);
+ Assert::IsTrue(vcpkg::OptBoolC::ENABLED == v.printmetrics);
+ }
+ };
+}
diff --git a/toolsrc/vcpkgtest/vcpkgtest.vcxproj b/toolsrc/vcpkgtest/vcpkgtest.vcxproj
index 5245a9d05..26d5c98eb 100644
--- a/toolsrc/vcpkgtest/vcpkgtest.vcxproj
+++ b/toolsrc/vcpkgtest/vcpkgtest.vcxproj
@@ -19,6 +19,7 @@
</ProjectConfiguration>
</ItemGroup>
<ItemGroup>
+ <ClCompile Include="..\src\tests_arguments.cpp" />
<ClCompile Include="..\src\tests_dependencies.cpp" />
<ClCompile Include="..\src\tests_paragraph.cpp" />
</ItemGroup>
diff --git a/toolsrc/vcpkgtest/vcpkgtest.vcxproj.filters b/toolsrc/vcpkgtest/vcpkgtest.vcxproj.filters
index bbbc6bd40..f1230cfce 100644
--- a/toolsrc/vcpkgtest/vcpkgtest.vcxproj.filters
+++ b/toolsrc/vcpkgtest/vcpkgtest.vcxproj.filters
@@ -21,5 +21,8 @@
<ClCompile Include="..\src\tests_dependencies.cpp">
<Filter>Source Files</Filter>
</ClCompile>
+ <ClCompile Include="..\src\tests_arguments.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
</ItemGroup>
</Project> \ No newline at end of file