From 4166afb6ae0c68b95f434909a8d1c87efc291c03 Mon Sep 17 00:00:00 2001 From: Oliver Hamlet Date: Fri, 15 Sep 2017 15:19:30 +0100 Subject: [PATCH] Enforce a consistent output order when saving a MetadataList --- src/api/metadata_list.cpp | 4 ++++ src/tests/api/interface/database_interface_test.h | 12 ++++++------ 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/src/api/metadata_list.cpp b/src/api/metadata_list.cpp index fa0e700d..bec6d1bb 100644 --- a/src/api/metadata_list.cpp +++ b/src/api/metadata_list.cpp @@ -80,6 +80,10 @@ void MetadataList::Save(const boost::filesystem::path& filepath) const { emitter << YAML::Key << "globals" << YAML::Value << messages_; auto plugins = Plugins(); + plugins.sort([](const PluginMetadata& p1, const PluginMetadata& p2) { + return p1.GetLowercasedName() < p2.GetLowercasedName(); + }); + if (!plugins.empty()) emitter << YAML::Key << "plugins" << YAML::Value << plugins; diff --git a/src/tests/api/interface/database_interface_test.h b/src/tests/api/interface/database_interface_test.h index 468a6ac6..474fb0db 100644 --- a/src/tests/api/interface/database_interface_test.h +++ b/src/tests/api/interface/database_interface_test.h @@ -74,16 +74,16 @@ protected: std::stringstream expectedContent; expectedContent << "plugins:" << endl - << " - name: '" << blankEsm << "'" << endl - << " tag:" << endl - << " - Actors.ACBS" << endl - << " - Actors.AIData" << endl - << " - -C.Water" << endl << " - name: '" << blankDifferentEsm << "'" << endl << " dirty:" << endl << " - crc: 0x7d22f9df" << endl << " util: 'TES4Edit'" << endl - << " udr: 4"; + << " udr: 4" << endl + << " - name: '" << blankEsm << "'" << endl + << " tag:" << endl + << " - Actors.ACBS" << endl + << " - Actors.AIData" << endl + << " - -C.Water"; return expectedContent.str(); }