aboutsummaryrefslogtreecommitdiff
path: root/toolsrc/src/tests_arguments.cpp
diff options
context:
space:
mode:
authorRobert Schumacher <roschuma@microsoft.com>2017-07-26 13:54:28 -0700
committerRobert Schumacher <roschuma@microsoft.com>2017-07-26 14:28:19 -0700
commit60296cf16189d4cb048482a1c4476a41d9b18918 (patch)
treec8d978a794a028cfe58f61c8a584e07562e66f96 /toolsrc/src/tests_arguments.cpp
parent661f5f9346a6759747c19c36b625c7679317fb11 (diff)
downloadvcpkg-60296cf16189d4cb048482a1c4476a41d9b18918.tar.gz
vcpkg-60296cf16189d4cb048482a1c4476a41d9b18918.zip
[vcpkg] Add support for single-option arguments.
Diffstat (limited to 'toolsrc/src/tests_arguments.cpp')
-rw-r--r--toolsrc/src/tests_arguments.cpp23
1 files changed, 23 insertions, 0 deletions
diff --git a/toolsrc/src/tests_arguments.cpp b/toolsrc/src/tests_arguments.cpp
index 624fbb910..14b3c3d4f 100644
--- a/toolsrc/src/tests_arguments.cpp
+++ b/toolsrc/src/tests_arguments.cpp
@@ -31,5 +31,28 @@ namespace UnitTest1
Assert::IsTrue(v.sendmetrics && v.sendmetrics.get());
Assert::IsTrue(v.printmetrics && *v.printmetrics.get());
}
+
+ TEST_METHOD(create_from_arg_sequence_valued_options)
+ {
+ std::vector<std::string> t = {"--a=b", "command", "argument"};
+ auto v = VcpkgCmdArguments::create_from_arg_sequence(t.data(), t.data() + t.size());
+ auto opts = v.check_and_get_optional_command_arguments({}, {"--a"});
+ Assert::AreEqual("b", opts.settings["--a"].c_str());
+ Assert::AreEqual(size_t{1}, v.command_arguments.size());
+ Assert::AreEqual("argument", v.command_arguments[0].c_str());
+ Assert::AreEqual("command", v.command.c_str());
+ }
+
+ TEST_METHOD(create_from_arg_sequence_valued_options2)
+ {
+ std::vector<std::string> t = {"--a", "--b=c"};
+ auto v = VcpkgCmdArguments::create_from_arg_sequence(t.data(), t.data() + t.size());
+ auto opts = v.check_and_get_optional_command_arguments({"--a", "--c"}, {"--b", "--d"});
+ Assert::AreEqual("c", opts.settings["--b"].c_str());
+ Assert::IsTrue(opts.settings.find("--d") == opts.settings.end());
+ Assert::IsTrue(opts.switches.find("--a") != opts.switches.end());
+ Assert::IsTrue(opts.settings.find("--c") == opts.settings.end());
+ Assert::AreEqual(size_t{0}, v.command_arguments.size());
+ }
};
} \ No newline at end of file