diff options
Diffstat (limited to 'host/tests')
| -rw-r--r-- | host/tests/addr_test.cpp | 7 | ||||
| -rw-r--r-- | host/tests/dict_test.cpp | 25 | 
2 files changed, 32 insertions, 0 deletions
diff --git a/host/tests/addr_test.cpp b/host/tests/addr_test.cpp index cea2f224c..61bb6d049 100644 --- a/host/tests/addr_test.cpp +++ b/host/tests/addr_test.cpp @@ -66,6 +66,13 @@ BOOST_AUTO_TEST_CASE(test_device_addr){          old_dev_addr_vals.begin(), old_dev_addr_vals.end(),          new_dev_addr_vals.begin(), new_dev_addr_vals.end()      ); + +    uhd::device_addr_t dev_addr_lhs1("key1=val1,key2=val2"); +    dev_addr_lhs1.update(uhd::device_addr_t("key2=val2x,key3=val3"), false); +    BOOST_CHECK_EQUAL(dev_addr_lhs1["key1"], "val1"); +    BOOST_CHECK_EQUAL(dev_addr_lhs1["key2"], "val2x"); +    BOOST_CHECK_EQUAL(dev_addr_lhs1["key3"], "val3"); +    std::cout << "Merged: " << dev_addr_lhs1.to_string() << std::endl;  }  BOOST_AUTO_TEST_CASE(test_dboard_id){ diff --git a/host/tests/dict_test.cpp b/host/tests/dict_test.cpp index 7b388d090..333aadbba 100644 --- a/host/tests/dict_test.cpp +++ b/host/tests/dict_test.cpp @@ -70,3 +70,28 @@ BOOST_AUTO_TEST_CASE(test_dict_pop){      BOOST_CHECK(d.keys()[0] == -1);      BOOST_CHECK(d.keys()[1] == 1);  } + +BOOST_AUTO_TEST_CASE(test_dict_update) +{ +    uhd::dict<std::string, std::string> d1 = boost::assign::map_list_of +        ("key1", "val1") +        ("key2", "val2") +    ; +    uhd::dict<std::string, std::string> d2 = boost::assign::map_list_of +        ("key2", "val2x") +        ("key3", "val3") +    ; + +    d1.update(d2, false /* don't throw cause of conflict */); +    BOOST_CHECK_EQUAL(d1["key1"], "val1"); +    BOOST_CHECK_EQUAL(d1["key2"], "val2x"); +    BOOST_CHECK_EQUAL(d1["key3"], "val3"); + +    uhd::dict<std::string, std::string> d3 = boost::assign::map_list_of +        ("key1", "val1") +        ("key2", "val2") +    ; +    BOOST_CHECK_THROW(d3.update(d2), uhd::value_error); +} + +  | 
