aboutsummaryrefslogtreecommitdiff
path: root/toolsrc/src/tests.packagespec.cpp
diff options
context:
space:
mode:
authorRobert Schumacher <roschuma@microsoft.com>2017-10-30 23:06:04 -0700
committerRobert Schumacher <roschuma@microsoft.com>2017-10-30 23:06:04 -0700
commit5f4221420701ff7d78e02b11622a00ee12a8e64a (patch)
tree79eb8b2c760a928a7a1e66f6383dd79d6a19989c /toolsrc/src/tests.packagespec.cpp
parentf8a4d55053561d8ba7e82fa79c45d30ebcb24621 (diff)
downloadvcpkg-5f4221420701ff7d78e02b11622a00ee12a8e64a.tar.gz
vcpkg-5f4221420701ff7d78e02b11622a00ee12a8e64a.zip
[vcpkg] Enable pkg[*] as alias for all features.
Diffstat (limited to 'toolsrc/src/tests.packagespec.cpp')
-rw-r--r--toolsrc/src/tests.packagespec.cpp34
1 files changed, 34 insertions, 0 deletions
diff --git a/toolsrc/src/tests.packagespec.cpp b/toolsrc/src/tests.packagespec.cpp
index cb5c41af0..25498a799 100644
--- a/toolsrc/src/tests.packagespec.cpp
+++ b/toolsrc/src/tests.packagespec.cpp
@@ -3,6 +3,7 @@
#include <vcpkg/paragraphs.h>
#include <vcpkg/base/strings.h>
+#include <vcpkg/base/util.h>
#pragma comment(lib, "version")
#pragma comment(lib, "winhttp")
@@ -103,6 +104,39 @@ namespace UnitTest1
Assert::AreEqual("", spec->triplet.c_str());
}
+ TEST_METHOD(parsed_specifier_wildcard_feature)
+ {
+ auto maybe_spec = vcpkg::ParsedSpecifier::from_string("zlib[*]");
+ Assert::AreEqual(vcpkg::PackageSpecParseResult::SUCCESS, maybe_spec.error());
+ auto spec = maybe_spec.get();
+ Assert::AreEqual("zlib", spec->name.c_str());
+ Assert::IsTrue(spec->features.size() == 1);
+ Assert::AreEqual("*", spec->features[0].c_str());
+ Assert::AreEqual("", spec->triplet.c_str());
+ }
+
+ TEST_METHOD(expand_wildcards)
+ {
+ auto zlib =
+ vcpkg::FullPackageSpec::from_string("zlib[0,1]", Triplet::X86_UWP).value_or_exit(VCPKG_LINE_INFO);
+ auto openssl =
+ vcpkg::FullPackageSpec::from_string("openssl[*]", Triplet::X86_UWP).value_or_exit(VCPKG_LINE_INFO);
+ auto specs = FullPackageSpec::to_feature_specs({zlib, openssl});
+ Util::sort(specs);
+ auto spectargets = FeatureSpec::from_strings_and_triplet(
+ {
+ "openssl",
+ "zlib",
+ "openssl[*]",
+ "zlib[0]",
+ "zlib[1]",
+ },
+ Triplet::X86_UWP);
+ Util::sort(spectargets);
+ Assert::IsTrue(specs.size() == spectargets.size());
+ Assert::IsTrue(Util::all_equal(specs, spectargets));
+ }
+
TEST_METHOD(utf8_to_utf16)
{
auto str = vcpkg::Strings::to_utf16("abc");