diff options
| author | Carl Hetherington <cth@carlh.net> | 2021-05-27 11:44:21 +0200 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2021-05-27 11:44:21 +0200 |
| commit | 3e866abeee4de737a04719ff8ab6c6bf46bb4d74 (patch) | |
| tree | 4d2b55f42cd6192588e8f0f17952b9c56392ea00 | |
| parent | 63840023707d73ef80b4e86c52b9c9279eb2e9ac (diff) | |
Sort notes when checking verifications.
So that the lists in the tests don't have to be in the right order.
| -rw-r--r-- | src/verify.cc | 23 | ||||
| -rw-r--r-- | src/verify.h | 1 | ||||
| -rw-r--r-- | test/verify_test.cc | 2 |
3 files changed, 26 insertions, 0 deletions
diff --git a/src/verify.cc b/src/verify.cc index 7948767a..623794cc 100644 --- a/src/verify.cc +++ b/src/verify.cc @@ -1618,6 +1618,29 @@ dcp::operator== (dcp::VerificationNote const& a, dcp::VerificationNote const& b) } +bool +dcp::operator< (dcp::VerificationNote const& a, dcp::VerificationNote const& b) +{ + if (a.type() != b.type()) { + return a.type() < b.type(); + } + + if (a.code() != b.code()) { + return a.code() < b.code(); + } + + if (a.note() != b.note()) { + return a.note().get_value_or("") < b.note().get_value_or(""); + } + + if (a.file() != b.file()) { + return a.file().get_value_or("") < b.file().get_value_or(""); + } + + return a.line().get_value_or(0) < b.line().get_value_or(0); +} + + std::ostream& dcp::operator<< (std::ostream& s, dcp::VerificationNote const& note) { diff --git a/src/verify.h b/src/verify.h index 08be77c6..372da764 100644 --- a/src/verify.h +++ b/src/verify.h @@ -455,6 +455,7 @@ std::vector<VerificationNote> verify ( std::string note_to_string (dcp::VerificationNote note); bool operator== (dcp::VerificationNote const& a, dcp::VerificationNote const& b); +bool operator< (dcp::VerificationNote const& a, dcp::VerificationNote const& b); std::ostream& operator<<(std::ostream& s, dcp::VerificationNote const& note); diff --git a/test/verify_test.cc b/test/verify_test.cc index 42da7005..417b4563 100644 --- a/test/verify_test.cc +++ b/test/verify_test.cc @@ -211,6 +211,8 @@ check_verify_result (vector<path> dir, vector<dcp::VerificationNote> test_notes) { auto notes = dcp::verify ({dir}, &stage, &progress, xsd_test); BOOST_REQUIRE_EQUAL (notes.size(), test_notes.size()); + std::sort (notes.begin(), notes.end()); + std::sort (test_notes.begin(), test_notes.end()); for (auto i = 0U; i < notes.size(); ++i) { BOOST_REQUIRE_EQUAL (notes[i], test_notes[i]); } |
