From aed10315b97f770e07bf1acbf2f4cb7aa64b81ae Mon Sep 17 00:00:00 2001 From: Daniil Baturin Date: Thu, 2 Apr 2015 11:52:00 +0600 Subject: Fix Vytree.update and its unit test. --- src/vytree.ml | 6 ++++-- test/vyconf_tree_test.ml | 2 +- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/vytree.ml b/src/vytree.ml index 89743fb..ed1a23e 100644 --- a/src/vytree.ml +++ b/src/vytree.ml @@ -87,8 +87,10 @@ let delete node path = do_with_child delete_immediate node path let update node path data = - let update_data data' node' dummy = - {node' with data=data'} + let update_data data' node' name = + let child = find_or_fail node' name in + let child = { child with data=data' } in + replace node' child in do_with_child (update_data data) node path let rec get node path = diff --git a/test/vyconf_tree_test.ml b/test/vyconf_tree_test.ml index eca40ce..3d8c52a 100644 --- a/test/vyconf_tree_test.ml +++ b/test/vyconf_tree_test.ml @@ -94,7 +94,7 @@ let test_get_child_nonexistent test_ctxt = let test_update test_ctxt = let node = make "root" 0 in let node = insert 0 node ["foo"] 1 in - assert_equal (data_of_node (update node ["foo"] 9)) 9 + assert_equal (data_of_node (get (update node ["foo"] 9) ["foo"])) 9 let suite = "VyConf tree tests" >::: [ -- cgit v1.2.3