From f5b79e1f0c86bcd151d41d1dba31bfdf3e84c140 Mon Sep 17 00:00:00 2001 From: Daniil Baturin Date: Tue, 28 Apr 2015 22:38:06 +0600 Subject: Rename vyconf_tree_test to just vytree_test. --- _oasis | 14 ++--- test/vyconf_tree_test.ml | 144 ----------------------------------------------- test/vytree_test.ml | 144 +++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 151 insertions(+), 151 deletions(-) delete mode 100644 test/vyconf_tree_test.ml create mode 100644 test/vytree_test.ml diff --git a/_oasis b/_oasis index 51c66ab..05bb392 100644 --- a/_oasis +++ b/_oasis @@ -49,13 +49,13 @@ Executable "vyconfd" MainIs: vyconfd.ml CompiledObject: best -Executable "vyconf_tree_test" +Executable "vytree_test" Path: test - MainIs: vyconf_tree_test.ml + MainIs: vytree_test.ml Build$: flag(tests) CompiledObject: best Install: false - BuildDepends: oUnit, vyconf + BuildDepends: oUnit, vyconf Executable "reference_tree_test" Path: test @@ -95,12 +95,12 @@ Executable "util_test" Build$: flag(tests) CompiledObject: best Install: false - BuildDepends: oUnit, xml-light + BuildDepends: oUnit, vyconf, xml-light -Test "vyconf_tree_test" +Test "vytree_test" Run$: flag(tests) - TestTools: vyconf_tree_test - Command: $vyconf_tree_test + TestTools: vytree_test + Command: $vytree_test WorkingDirectory: test Test "reference_tree_test" diff --git a/test/vyconf_tree_test.ml b/test/vyconf_tree_test.ml deleted file mode 100644 index 24a6d1e..0000000 --- a/test/vyconf_tree_test.ml +++ /dev/null @@ -1,144 +0,0 @@ -open OUnit2 -open Vytree - -(* Destructuting a freshly made node gives us what - we made it from *) -let test_make_node test_ctxt = - let node = make () "root" in - assert_equal (name_of_node node) "root"; - assert_equal (data_of_node node) (); - assert_equal (children_of_node node) [] - -(* XXX: these comparisons are awkward, but this is - probably the only way to track the problem - down to insert if insert breaks *) - -(* Inserting at single-item path adds a child to - children list *) -let test_insert_immediate_child test_ctxt = - let node = make () "root" in - let node' = insert node ["foo"] () in - assert_equal (children_of_node node') - [make () "foo"] - -(* Inserting one child after another adds it to the - end of the children list *) -let test_insert_multiple_children test_ctxt = - let node = make () "root" in - let node' = insert node ["foo"] () in - let node'' = insert node' ["bar"] () in - assert_equal (children_of_node node'') - [make () "bar"; make () "foo"] - -(* Inserting a child at a two-item path creates a tree - two levels deep *) -let test_insert_multi_level test_ctxt = - let node = make () "root" in - let node = insert node ["foo"] () in - let node = insert node ["foo"; "bar"] () in - let bar = make () "bar" in - let foo = make_full () "foo" [bar] in - let root = make_full () "root" [foo] in - assert_equal root node - -(* Inserting duplicate child fails *) -let test_insert_duplicate_child test_ctxt = - let node = make () "root" in - let node = insert node ["foo"] () in - assert_raises Duplicate_child (fun () -> insert node ["foo"] ()) - -(* list_children correctly returns a list of children names *) -let test_list_children test_ctxt = - let node = make () "root" in - let node = insert node ["foo"] () in - let node = insert node ["bar"] () in - assert_equal (list_children node) ["bar"; "foo"] - -(* Deleting a child, well, deletes it *) -let test_delete_immediate_child test_ctxt = - let node = make () "root" in - let node' = insert node ["foo"] () in - let node' = delete node' ["foo"] in - assert_equal node node' - -(* Deleting a child at multi-level path works *) -let test_delete_multi_level test_ctxt = - let node = make () "root" in - let node' = insert node ["foo"] () in - let node' = insert node' ["foo"; "bar"] () in - let foo_node = insert node ["foo"] () in - let node' = delete node' ["foo"; "bar"] in - assert_equal node' foo_node - -(* Attempt to delete a node at non-existent path raises an exception *) -let test_delete_nonexistent test_ctxt = - let node = make () "root" in - assert_raises Nonexistent_path (fun () -> delete node ["foo"; "bar"]) - -(* get_child works with immediate children *) -let test_get_immediate_child test_ctxt = - let node = make () "root" in - let node' = insert node ["foo"] () in - assert_equal (name_of_node (get node' ["foo"])) "foo" - -(* get_child works with multi-level paths *) -let test_get_child_multilevel test_ctxt = - let node = make () "root" in - let node = insert node ["foo"] () in - let node = insert node ["foo"; "bar"] () in - assert_equal (name_of_node (get node ["foo"; "bar"])) "bar" - -(* get_child raises Nonexistent_path for non-existent paths *) -let test_get_child_nonexistent test_ctxt = - let node = make () "root" in - assert_raises Nonexistent_path (fun () -> get node ["foo"; "bar"]) - -(* update works *) -let test_update test_ctxt = - let node = make 0 "root" in - let node = insert node ["foo"] 1 in - assert_equal (data_of_node (get (update node ["foo"] 9) ["foo"])) 9 - -(* get_existent_path works *) -let test_get_existent_path test_ctxt = - let node = make () "root" in - let node = insert node ["foo"] () in - let node = insert node ["foo"; "bar"] () in - assert_equal (get_existent_path node ["foo"; "bar"; "baz"]) ["foo"; "bar"] - -let test_exists_existent test_ctxt = - let node = make () "root" in - let node = insert node ["foo"] () in - let node = insert node ["foo"; "bar"] () in - assert_equal (exists node ["foo"; "bar"]) true - -let test_exists_nonexistent test_ctxt = - let node = make () "root" in - let node = insert node ["foo"] () in - let node = insert node ["foo"; "bar"] () in - assert_equal (exists node ["foo"; "bar"; "baz"]) false - - -let suite = - "VyConf tree tests" >::: [ - "test_make_node" >:: test_make_node; - "test_insert_immediate_child" >:: test_insert_immediate_child; - "test_insert_multiple_children" >:: test_insert_multiple_children; - "test_insert_multi_level" >:: test_insert_multi_level; - "test_insert_duplicate_child" >:: test_insert_duplicate_child; - "test_list_children" >:: test_list_children; - "test_delete_immediate_child" >:: test_delete_immediate_child; - "test_delete_multi_level" >:: test_delete_multi_level; - "test_delete_nonexistent" >:: test_delete_nonexistent; - "test_get_immediate_child" >:: test_get_immediate_child; - "test_get_child_multilevel" >:: test_get_child_multilevel; - "test_get_child_nonexistent" >:: test_get_child_nonexistent; - "test_update" >:: test_update; - "test_get_existent_path" >:: test_get_existent_path; - "test_exists_existent" >:: test_exists_existent; - "test_exists_nonexistent" >:: test_exists_nonexistent; - ] - -let () = - run_test_tt_main suite - diff --git a/test/vytree_test.ml b/test/vytree_test.ml new file mode 100644 index 0000000..24a6d1e --- /dev/null +++ b/test/vytree_test.ml @@ -0,0 +1,144 @@ +open OUnit2 +open Vytree + +(* Destructuting a freshly made node gives us what + we made it from *) +let test_make_node test_ctxt = + let node = make () "root" in + assert_equal (name_of_node node) "root"; + assert_equal (data_of_node node) (); + assert_equal (children_of_node node) [] + +(* XXX: these comparisons are awkward, but this is + probably the only way to track the problem + down to insert if insert breaks *) + +(* Inserting at single-item path adds a child to + children list *) +let test_insert_immediate_child test_ctxt = + let node = make () "root" in + let node' = insert node ["foo"] () in + assert_equal (children_of_node node') + [make () "foo"] + +(* Inserting one child after another adds it to the + end of the children list *) +let test_insert_multiple_children test_ctxt = + let node = make () "root" in + let node' = insert node ["foo"] () in + let node'' = insert node' ["bar"] () in + assert_equal (children_of_node node'') + [make () "bar"; make () "foo"] + +(* Inserting a child at a two-item path creates a tree + two levels deep *) +let test_insert_multi_level test_ctxt = + let node = make () "root" in + let node = insert node ["foo"] () in + let node = insert node ["foo"; "bar"] () in + let bar = make () "bar" in + let foo = make_full () "foo" [bar] in + let root = make_full () "root" [foo] in + assert_equal root node + +(* Inserting duplicate child fails *) +let test_insert_duplicate_child test_ctxt = + let node = make () "root" in + let node = insert node ["foo"] () in + assert_raises Duplicate_child (fun () -> insert node ["foo"] ()) + +(* list_children correctly returns a list of children names *) +let test_list_children test_ctxt = + let node = make () "root" in + let node = insert node ["foo"] () in + let node = insert node ["bar"] () in + assert_equal (list_children node) ["bar"; "foo"] + +(* Deleting a child, well, deletes it *) +let test_delete_immediate_child test_ctxt = + let node = make () "root" in + let node' = insert node ["foo"] () in + let node' = delete node' ["foo"] in + assert_equal node node' + +(* Deleting a child at multi-level path works *) +let test_delete_multi_level test_ctxt = + let node = make () "root" in + let node' = insert node ["foo"] () in + let node' = insert node' ["foo"; "bar"] () in + let foo_node = insert node ["foo"] () in + let node' = delete node' ["foo"; "bar"] in + assert_equal node' foo_node + +(* Attempt to delete a node at non-existent path raises an exception *) +let test_delete_nonexistent test_ctxt = + let node = make () "root" in + assert_raises Nonexistent_path (fun () -> delete node ["foo"; "bar"]) + +(* get_child works with immediate children *) +let test_get_immediate_child test_ctxt = + let node = make () "root" in + let node' = insert node ["foo"] () in + assert_equal (name_of_node (get node' ["foo"])) "foo" + +(* get_child works with multi-level paths *) +let test_get_child_multilevel test_ctxt = + let node = make () "root" in + let node = insert node ["foo"] () in + let node = insert node ["foo"; "bar"] () in + assert_equal (name_of_node (get node ["foo"; "bar"])) "bar" + +(* get_child raises Nonexistent_path for non-existent paths *) +let test_get_child_nonexistent test_ctxt = + let node = make () "root" in + assert_raises Nonexistent_path (fun () -> get node ["foo"; "bar"]) + +(* update works *) +let test_update test_ctxt = + let node = make 0 "root" in + let node = insert node ["foo"] 1 in + assert_equal (data_of_node (get (update node ["foo"] 9) ["foo"])) 9 + +(* get_existent_path works *) +let test_get_existent_path test_ctxt = + let node = make () "root" in + let node = insert node ["foo"] () in + let node = insert node ["foo"; "bar"] () in + assert_equal (get_existent_path node ["foo"; "bar"; "baz"]) ["foo"; "bar"] + +let test_exists_existent test_ctxt = + let node = make () "root" in + let node = insert node ["foo"] () in + let node = insert node ["foo"; "bar"] () in + assert_equal (exists node ["foo"; "bar"]) true + +let test_exists_nonexistent test_ctxt = + let node = make () "root" in + let node = insert node ["foo"] () in + let node = insert node ["foo"; "bar"] () in + assert_equal (exists node ["foo"; "bar"; "baz"]) false + + +let suite = + "VyConf tree tests" >::: [ + "test_make_node" >:: test_make_node; + "test_insert_immediate_child" >:: test_insert_immediate_child; + "test_insert_multiple_children" >:: test_insert_multiple_children; + "test_insert_multi_level" >:: test_insert_multi_level; + "test_insert_duplicate_child" >:: test_insert_duplicate_child; + "test_list_children" >:: test_list_children; + "test_delete_immediate_child" >:: test_delete_immediate_child; + "test_delete_multi_level" >:: test_delete_multi_level; + "test_delete_nonexistent" >:: test_delete_nonexistent; + "test_get_immediate_child" >:: test_get_immediate_child; + "test_get_child_multilevel" >:: test_get_child_multilevel; + "test_get_child_nonexistent" >:: test_get_child_nonexistent; + "test_update" >:: test_update; + "test_get_existent_path" >:: test_get_existent_path; + "test_exists_existent" >:: test_exists_existent; + "test_exists_nonexistent" >:: test_exists_nonexistent; + ] + +let () = + run_test_tt_main suite + -- cgit v1.2.3