From 01fd6d52cefdb2baa7070b91ed483e9456141966 Mon Sep 17 00:00:00 2001 From: Brent Stapleton Date: Thu, 11 Apr 2019 11:36:31 -0700 Subject: prop_tree: add pop() function Adding pop function to property tree, which will remove and return a property from the property tree. This also includes unit tests. --- host/tests/property_test.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'host/tests/property_test.cpp') diff --git a/host/tests/property_test.cpp b/host/tests/property_test.cpp index f0e67e14c..907ca9f73 100644 --- a/host/tests/property_test.cpp +++ b/host/tests/property_test.cpp @@ -192,6 +192,7 @@ BOOST_AUTO_TEST_CASE(test_prop_tree) tree->create("/test/prop0"); tree->create("/test/prop1"); + tree->create("/test/prop2"); BOOST_CHECK(tree->exists("/test")); BOOST_CHECK_THROW(tree->access("/test"), std::exception); @@ -200,6 +201,7 @@ BOOST_AUTO_TEST_CASE(test_prop_tree) tree->access("/test/prop0").set(42); tree->access("/test/prop1").set(34); + tree->access("/test/prop2").set(107); BOOST_CHECK_EQUAL(tree->access("/test/prop0").get(), 42); BOOST_CHECK_EQUAL(tree->access("/test/prop1").get(), 34); @@ -208,6 +210,12 @@ BOOST_AUTO_TEST_CASE(test_prop_tree) BOOST_CHECK(not tree->exists("/test/prop0")); BOOST_CHECK(tree->exists("/test/prop1")); + const uhd::fs_path prop_path = "/test/prop2"; + auto prop_sptr = tree->pop(prop_path); + BOOST_CHECK(not tree->exists("/test/prop2")); + BOOST_CHECK(tree->exists("/test/prop1")); + BOOST_CHECK(prop_sptr->get() == 107); + tree->remove("/test"); BOOST_CHECK(not tree->exists("/test/prop0")); BOOST_CHECK(not tree->exists("/test/prop1")); -- cgit v1.2.3