From 6ac4f3bcc0bd1306bf1a8dd1bebae1a00081c6b7 Mon Sep 17 00:00:00 2001 From: Karen Arutyunov Date: Tue, 8 Jan 2019 15:30:40 +0300 Subject: Add support for filtering during manifest parsing and serialization --- tests/manifest-serializer/driver.cxx | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) (limited to 'tests/manifest-serializer') diff --git a/tests/manifest-serializer/driver.cxx b/tests/manifest-serializer/driver.cxx index d9a7255..be00106 100644 --- a/tests/manifest-serializer/driver.cxx +++ b/tests/manifest-serializer/driver.cxx @@ -30,7 +30,9 @@ using namespace butl; using pairs = vector>; static bool -test (const pairs& manifest, const string& expected); +test (const pairs& manifest, + const string& expected, + manifest_serializer::filter_function f = {}); static bool fail (const pairs& manifest); @@ -234,14 +236,20 @@ main () assert (manifest_serializer::merge_comment ("value text", "") == "value text"); + + // Filtering. + // + assert (test ({{"","1"},{"a","abc"},{"b","bca"},{"c","cab"},{"",""},{"",""}}, + ": 1\na: abc\nc: cab\n", + [] (const string& n, const string&) {return n != "b";})); } static string -serialize (const pairs& m) +serialize (const pairs& m, manifest_serializer::filter_function f = {}) { ostringstream os; os.exceptions (istream::failbit | istream::badbit); - manifest_serializer s (os, ""); + manifest_serializer s (os, "", f); for (const auto& p: m) { @@ -255,9 +263,9 @@ serialize (const pairs& m) } static bool -test (const pairs& m, const string& e) +test (const pairs& m, const string& e, manifest_serializer::filter_function f) { - string r (serialize (m)); + string r (serialize (m, f)); if (r != e) { -- cgit v1.1