This is an automated email from the ASF dual-hosted git repository. asf-gitbox-commits pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/qpid-proton.git
commit ad3e3f489b086c40de3952dabd59fd8546d54e01 Author: Andrew Stitcher <[email protected]> AuthorDate: Wed Aug 19 13:39:23 2026 -0400 PROTON-2954: Improve testing for pn_data_t --- c/tests/data_test.cpp | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/c/tests/data_test.cpp b/c/tests/data_test.cpp index cf2ae8244..10c53ad12 100644 --- a/c/tests/data_test.cpp +++ b/c/tests/data_test.cpp @@ -197,6 +197,10 @@ TEST_CASE("data_multiple") { pn_data_put_symbol(src, pn_bytes("baz")); pn_data_fill(data, "M", src.get()); CHECK(":baz" == inspect(data)); +} + +TEST_CASE("data_described_list") { + auto_free<pn_data_t, pn_data_free> data(pn_data(1)); /* Described list with open frame descriptor */ pn_data_clear(data); @@ -208,6 +212,24 @@ TEST_CASE("data_multiple") { pn_data_fill(data, "DL[SSnI]", (uint64_t)16, "container-1", 0, 965); CHECK("@open(16) [container-id=\"container-1\", channel-max=965]" == inspect(data)); + /* Described list with items after the list */ + pn_data_clear(data); + pn_data_fill(data, "DL[SSnI]S", (uint64_t)16, "container-1", 0, 965, "extra"); + CHECK("@open(16) [container-id=\"container-1\", channel-max=965], \"extra\"" == inspect(data)); + + /* Conditional Described list cases */ + pn_data_clear(data); + pn_data_fill(data, "?DL[SSnI]S", false, (uint64_t)16, "container-1", 0, 965, "extra"); + CHECK("null, \"extra\"" == inspect(data)); + + pn_data_clear(data); + pn_data_fill(data, "?DL[?SSnI]?S", true, (uint64_t)16, false, "container-1", 0, 965, true, "extra"); + CHECK("@open(16) [channel-max=965], \"extra\"" == inspect(data)); +} + +TEST_CASE("data_map") { + auto_free<pn_data_t, pn_data_free> data(pn_data(1)); + /* Map */ pn_data_clear(data); pn_data_fill(data, "{S[iii]SI}", "foo", 1, 987, 3, "bar", 965); --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
