diff --git a/test/testxcode.cpp b/test/testxcode.cpp index e0bbc7f..1d56b33 100644 --- a/test/testxcode.cpp +++ b/test/testxcode.cpp @@ -489,7 +489,7 @@ void testDecode1() * int userTag */ std::vector msg({ - // update cache with key 0 + // update cache with key 1 0xFD, 0x00, 0x01, // structure 0x80, @@ -511,12 +511,12 @@ void testDecode1() 0x22 }); - std::vector descs; + auto descs(std::make_shared>()); TypeStore cache; { FixedBuf buf(true, msg); - from_wire(buf, descs, cache); + from_wire(buf, *descs, cache); testOk1(buf.good()); testEq(buf.size(), 0u)<<"Of "<empty())) { + testEq(descs->size(), descs->front().size()); } // cat <data()), "[0] struct timeStamp_t parent=[0] [0:4)\n" " nanoSeconds -> 2 [2]\n" " secondsPastEpoch -> 1 [1]\n" @@ -547,6 +547,22 @@ void testDecode1() "[2] int32_t parent=[0] [2:3)\n" "[3] int32_t parent=[0] [3:4)\n" ); + + auto descs2(std::make_shared>()); + { + std::vector msg({ + // Pull from cache with key 1 + 0xFE, 0x00, 0x01}); + FixedBuf buf(true, msg); + from_wire(buf, *descs2, cache); + testOk1(buf.good()); + testEq(buf.size(), 0u)<<"Of "<(descs, descs->data()))); + auto B(Value::Helper::build(std::shared_ptr(descs2, descs2->data()))); + + testTrue(A.equalType(B)); } template @@ -1103,7 +1119,7 @@ void testEmptyRequest() MAIN(testxcode) { - testPlan(132); + testPlan(135); testSetup(); testDeserializeString(); testSerialize1();