mirror of
https://github.com/kernelkit/infix.git
synced 2026-07-22 09:13:01 +02:00
58 lines
2.1 KiB
Diff
58 lines
2.1 KiB
Diff
From f050e7e4a17ef2e221ca000a544042c33c9541fc Mon Sep 17 00:00:00 2001
|
|
From: =?UTF-8?q?Jan=20Kundr=C3=A1t?= <jan.kundrat@cesnet.cz>
|
|
Date: Thu, 13 Mar 2025 19:21:26 +0100
|
|
Subject: [PATCH 14/18] fix DataNode::insertSibling() return value
|
|
MIME-Version: 1.0
|
|
Content-Type: text/plain; charset=UTF-8
|
|
Content-Transfer-Encoding: 8bit
|
|
Organization: Wires
|
|
|
|
When such an insert happens, the C library returns the node which is now
|
|
the first sibling among all of the siblings of the node which was used
|
|
as a reference during the insert. Our API was also documented this way,
|
|
but we were not doing that.
|
|
|
|
Reported-by: Irfan <irfan.haslanded@gmail.com>
|
|
Bug: https://github.com/CESNET/libyang-cpp/issues/29
|
|
Change-Id: Id7f84a31e50212d6e2cbce9ab03a351a3721f767
|
|
Signed-off-by: Mattias Walström <lazzer@gmail.com>
|
|
---
|
|
src/DataNode.cpp | 2 +-
|
|
tests/data_node.cpp | 7 +++++++
|
|
2 files changed, 8 insertions(+), 1 deletion(-)
|
|
|
|
diff --git a/src/DataNode.cpp b/src/DataNode.cpp
|
|
index 84591e5..b899b18 100644
|
|
--- a/src/DataNode.cpp
|
|
+++ b/src/DataNode.cpp
|
|
@@ -711,7 +711,7 @@ DataNode DataNode::insertSibling(DataNode toInsert)
|
|
lyd_insert_sibling(this->m_node, toInsert.m_node, &firstSibling);
|
|
}, toInsert.parent() ? OperationScope::JustThisNode : OperationScope::AffectsFollowingSiblings, m_refs);
|
|
|
|
- return DataNode{m_node, m_refs};
|
|
+ return DataNode{firstSibling, m_refs};
|
|
}
|
|
|
|
/**
|
|
diff --git a/tests/data_node.cpp b/tests/data_node.cpp
|
|
index 14470dd..b6ee455 100644
|
|
--- a/tests/data_node.cpp
|
|
+++ b/tests/data_node.cpp
|
|
@@ -973,6 +973,13 @@ TEST_CASE("Data Node manipulation")
|
|
REQUIRE(getNumberOrder() == expected);
|
|
}
|
|
|
|
+ DOCTEST_SUBCASE("DataNode::insertSibling")
|
|
+ {
|
|
+ auto node = ctx.newPath("/example-schema:leafUInt8", "10");
|
|
+ REQUIRE(node.insertSibling(ctx.newPath("/example-schema:leafUInt16", "10")).path() == "/example-schema:leafUInt8");
|
|
+ REQUIRE(node.insertSibling(ctx.newPath("/example-schema:dummy", "10")).path() == "/example-schema:dummy");
|
|
+ }
|
|
+
|
|
DOCTEST_SUBCASE("DataNode::duplicate")
|
|
{
|
|
auto root = ctx.parseData(data2, libyang::DataFormat::JSON);
|
|
--
|
|
2.43.0
|
|
|