aboutsummaryrefslogtreecommitdiff
path: root/toolsrc/src/tests.update.cpp
diff options
context:
space:
mode:
authorRobert Schumacher <roschuma@microsoft.com>2017-11-11 19:47:56 -0800
committerRobert Schumacher <roschuma@microsoft.com>2017-11-11 19:47:56 -0800
commitecd21d6cb429a91076c0fc1bb3c6d4af447343e8 (patch)
tree31fd9fb1c803686339d0ce12c9a9d9eda0703e7c /toolsrc/src/tests.update.cpp
parent492b9448a7d91e801f4eed9f4eba1be0f888a73c (diff)
downloadvcpkg-ecd21d6cb429a91076c0fc1bb3c6d4af447343e8.tar.gz
vcpkg-ecd21d6cb429a91076c0fc1bb3c6d4af447343e8.zip
[vcpkg-tests] Use PCH.
[vcpkg-update] Fix feature packages with update command. Fixes #2003.
Diffstat (limited to 'toolsrc/src/tests.update.cpp')
-rw-r--r--toolsrc/src/tests.update.cpp96
1 files changed, 96 insertions, 0 deletions
diff --git a/toolsrc/src/tests.update.cpp b/toolsrc/src/tests.update.cpp
new file mode 100644
index 000000000..06ae797f4
--- /dev/null
+++ b/toolsrc/src/tests.update.cpp
@@ -0,0 +1,96 @@
+#include "tests.pch.h"
+
+#include <tests.utils.h>
+
+using namespace Microsoft::VisualStudio::CppUnitTestFramework;
+
+using namespace vcpkg;
+using namespace vcpkg::Update;
+
+namespace UnitTest1
+{
+ class UpdateTests : public TestClass<UpdateTests>
+ {
+ TEST_METHOD(find_outdated_packages_basic)
+ {
+ std::vector<std::unique_ptr<StatusParagraph>> status_paragraphs;
+ status_paragraphs.push_back(make_status_pgh("a"));
+ status_paragraphs.back()->package.version = "2";
+
+ StatusParagraphs status_db(std::move(status_paragraphs));
+
+ std::map<std::string, VersionT> port_versions;
+ port_versions["a"] = VersionT("0");
+
+ auto pkgs = SortedVector<OutdatedPackage>(Update::find_outdated_packages(port_versions, status_db),
+ &OutdatedPackage::compare_by_name);
+
+ Assert::AreEqual(size_t(1), pkgs.size());
+ Assert::AreEqual("2", pkgs[0].version_diff.left.to_string().c_str());
+ Assert::AreEqual("0", pkgs[0].version_diff.right.to_string().c_str());
+ }
+
+ TEST_METHOD(find_outdated_packages_features)
+ {
+ std::vector<std::unique_ptr<StatusParagraph>> status_paragraphs;
+ status_paragraphs.push_back(make_status_pgh("a"));
+ status_paragraphs.back()->package.version = "2";
+
+ status_paragraphs.push_back(make_status_feature_pgh("a", "b"));
+ status_paragraphs.back()->package.version = "2";
+
+ StatusParagraphs status_db(std::move(status_paragraphs));
+
+ std::map<std::string, VersionT> port_versions;
+ port_versions["a"] = VersionT("0");
+
+ auto pkgs = SortedVector<OutdatedPackage>(Update::find_outdated_packages(port_versions, status_db),
+ &OutdatedPackage::compare_by_name);
+
+ Assert::AreEqual(size_t(1), pkgs.size());
+ Assert::AreEqual("2", pkgs[0].version_diff.left.to_string().c_str());
+ Assert::AreEqual("0", pkgs[0].version_diff.right.to_string().c_str());
+ }
+
+ TEST_METHOD(find_outdated_packages_features_2)
+ {
+ std::vector<std::unique_ptr<StatusParagraph>> status_paragraphs;
+ status_paragraphs.push_back(make_status_pgh("a"));
+ status_paragraphs.back()->package.version = "2";
+
+ status_paragraphs.push_back(make_status_feature_pgh("a", "b"));
+ status_paragraphs.back()->package.version = "0";
+ status_paragraphs.back()->state = InstallState::NOT_INSTALLED;
+ status_paragraphs.back()->want = Want::PURGE;
+
+ StatusParagraphs status_db(std::move(status_paragraphs));
+
+ std::map<std::string, VersionT> port_versions;
+ port_versions["a"] = VersionT("0");
+
+ auto pkgs = SortedVector<OutdatedPackage>(Update::find_outdated_packages(port_versions, status_db),
+ &OutdatedPackage::compare_by_name);
+
+ Assert::AreEqual(size_t(1), pkgs.size());
+ Assert::AreEqual("2", pkgs[0].version_diff.left.to_string().c_str());
+ Assert::AreEqual("0", pkgs[0].version_diff.right.to_string().c_str());
+ }
+
+ TEST_METHOD(find_outdated_packages_none)
+ {
+ std::vector<std::unique_ptr<StatusParagraph>> status_paragraphs;
+ status_paragraphs.push_back(make_status_pgh("a"));
+ status_paragraphs.back()->package.version = "2";
+
+ StatusParagraphs status_db(std::move(status_paragraphs));
+
+ std::map<std::string, VersionT> port_versions;
+ port_versions["a"] = VersionT("2");
+
+ auto pkgs = SortedVector<OutdatedPackage>(Update::find_outdated_packages(port_versions, status_db),
+ &OutdatedPackage::compare_by_name);
+
+ Assert::AreEqual(size_t(0), pkgs.size());
+ }
+ };
+}