summaryrefslogtreecommitdiff
path: root/test/reference_tree_test.ml
diff options
context:
space:
mode:
Diffstat (limited to 'test/reference_tree_test.ml')
-rw-r--r--test/reference_tree_test.ml199
1 files changed, 107 insertions, 92 deletions
diff --git a/test/reference_tree_test.ml b/test/reference_tree_test.ml
index 1186130..561eb8e 100644
--- a/test/reference_tree_test.ml
+++ b/test/reference_tree_test.ml
@@ -1,5 +1,8 @@
open OUnit2
-open Reference_tree
+
+module RT = Vyos1x.Reference_tree
+module VT = Vyos1x.Vytree
+module VL = Vyos1x.Vylist
let get_dir test_ctxt = in_testdata_dir test_ctxt ["validators"]
@@ -9,162 +12,176 @@ let ok_or_failure result = match result with
let raises_validation_error f =
try ignore @@ f (); false
- with Validation_error _ -> true
+ with RT.Validation_error _ -> true
let test_load_valid_definition test_ctxt =
- let r = Vytree.make default_data "root" in
- let r = load_from_xml r (in_testdata_dir test_ctxt ["interface_definition_sample.xml"]) in
- assert_equal (Vylist.in_list (Vytree.list_children r) "system") true;
- assert_equal (Vylist.in_list (Vytree.list_children r) "interfaces") true
+ let r = VT.make RT.default_data "root" in
+ let r = RT.load_from_xml r (in_testdata_dir test_ctxt ["interface_definition_sample.xml"]) in
+ assert_equal (VL.in_list (VT.list_children r) "system") true;
+ assert_equal (VL.in_list (VT.list_children r) "interfaces") true
(* Path validation tests *)
let test_validate_path_leaf_valid test_ctxt =
- let r = Vytree.make default_data "root" in
- let r = load_from_xml r (in_testdata_dir test_ctxt ["interface_definition_sample.xml"]) in
- assert_equal (validate_path (get_dir test_ctxt) r ["system"; "host-name"; "test"]) (["system"; "host-name"], Some "test")
+ let r = VT.make RT.default_data "root" in
+ let r = RT.load_from_xml r (in_testdata_dir test_ctxt ["interface_definition_sample.xml"]) in
+ let test p =
+ let _ = RT.validate_path (get_dir test_ctxt) r p in
+ RT.split_path r p
+ in
+ assert_equal (test ["system"; "host-name"; "test"]) (["system"; "host-name"], Some "test")
let test_validate_path_leaf_invalid test_ctxt =
- let r = Vytree.make default_data "root" in
- let r = load_from_xml r (in_testdata_dir test_ctxt ["interface_definition_sample.xml"]) in
- assert_equal (raises_validation_error (fun () -> ignore @@ validate_path (get_dir test_ctxt) r ["system"; "host-name"; "1234"])) true
+ let r = VT.make RT.default_data "root" in
+ let r = RT.load_from_xml r (in_testdata_dir test_ctxt ["interface_definition_sample.xml"]) in
+ assert_equal (raises_validation_error (fun () -> ignore @@ RT.validate_path (get_dir test_ctxt) r ["system"; "host-name"; "1234"])) true
let test_validate_path_leaf_incomplete test_ctxt =
- let r = Vytree.make default_data "root" in
- let r = load_from_xml r (in_testdata_dir test_ctxt ["interface_definition_sample.xml"]) in
- assert_equal (raises_validation_error (fun () -> ignore @@ validate_path (get_dir test_ctxt) r ["system"; "host-name"])) true
+ let r = VT.make RT.default_data "root" in
+ let r = RT.load_from_xml r (in_testdata_dir test_ctxt ["interface_definition_sample.xml"]) in
+ assert_equal (raises_validation_error (fun () -> ignore @@ RT.validate_path (get_dir test_ctxt) r ["system"; "host-name"])) true
let test_validate_path_tag_node_complete_valid test_ctxt =
- let r = Vytree.make default_data "root" in
- let r = load_from_xml r (in_testdata_dir test_ctxt ["interface_definition_sample.xml"]) in
- assert_equal (validate_path (get_dir test_ctxt) r ["system"; "login"; "user"; "test"; "full-name"; "test user"])
+ let r = VT.make RT.default_data "root" in
+ let r = RT.load_from_xml r (in_testdata_dir test_ctxt ["interface_definition_sample.xml"]) in
+ let test p =
+ let _ = RT.validate_path (get_dir test_ctxt) r p in
+ RT.split_path r p
+ in
+ assert_equal (test ["system"; "login"; "user"; "test"; "full-name"; "test user"])
(["system"; "login"; "user"; "test"; "full-name";], Some "test user")
let test_validate_path_tag_node_illegal_characters test_ctxt =
- let r = Vytree.make default_data "root" in
- let r = load_from_xml r (in_testdata_dir test_ctxt ["interface_definition_sample.xml"]) in
+ let r = VT.make RT.default_data "root" in
+ let r = RT.load_from_xml r (in_testdata_dir test_ctxt ["interface_definition_sample.xml"]) in
(* the space in "eth 0" is on purpose *)
- assert_equal (raises_validation_error (fun () -> ignore @@ validate_path (get_dir test_ctxt) r ["interfaces"; "ethernet"; "eth 0"; "disable"])) true
+ assert_equal (raises_validation_error (fun () -> ignore @@ RT.validate_path (get_dir test_ctxt) r ["interfaces"; "ethernet"; "eth 0"; "disable"])) true
let test_validate_path_tag_node_invalid_name test_ctxt =
- let r = Vytree.make default_data "root" in
- let r = load_from_xml r (in_testdata_dir test_ctxt ["interface_definition_sample.xml"]) in
- assert_equal (raises_validation_error (fun () -> ignore @@ validate_path (get_dir test_ctxt) r ["system"; "login"; "user"; "999"; "full-name"; "test user"]))
+ let r = VT.make RT.default_data "root" in
+ let r = RT.load_from_xml r (in_testdata_dir test_ctxt ["interface_definition_sample.xml"]) in
+ assert_equal (raises_validation_error (fun () -> ignore @@ RT.validate_path (get_dir test_ctxt) r ["system"; "login"; "user"; "999"; "full-name"; "test user"]))
true
let test_validate_path_tag_node_incomplete test_ctxt =
- let r = Vytree.make default_data "root" in
- let r = load_from_xml r (in_testdata_dir test_ctxt ["interface_definition_sample.xml"]) in
- assert_equal (raises_validation_error (fun () -> ignore @@ validate_path (get_dir test_ctxt) r ["system"; "login"; "user"])) true
+ let r = VT.make RT.default_data "root" in
+ let r = RT.load_from_xml r (in_testdata_dir test_ctxt ["interface_definition_sample.xml"]) in
+ assert_equal (raises_validation_error (fun () -> ignore @@ RT.validate_path (get_dir test_ctxt) r ["system"; "login"; "user"])) true
let test_validate_path_garbage_after_value test_ctxt =
- let r = Vytree.make default_data "root" in
- let r = load_from_xml r (in_testdata_dir test_ctxt ["interface_definition_sample.xml"]) in
- assert_equal (raises_validation_error (fun () -> ignore @@ validate_path (get_dir test_ctxt) r ["system"; "host-name"; "foo"; "bar"])) true
+ let r = VT.make RT.default_data "root" in
+ let r = RT.load_from_xml r (in_testdata_dir test_ctxt ["interface_definition_sample.xml"]) in
+ assert_equal (raises_validation_error (fun () -> ignore @@ RT.validate_path (get_dir test_ctxt) r ["system"; "host-name"; "foo"; "bar"])) true
let test_validate_path_valueless_node_with_value test_ctxt =
- let r = Vytree.make default_data "root" in
- let r = load_from_xml r (in_testdata_dir test_ctxt ["interface_definition_sample.xml"]) in
- assert_equal (raises_validation_error (fun () -> ignore @@ validate_path (get_dir test_ctxt) r ["system"; "options"; "reboot-on-panic"; "fgsfds"])) true
+ let r = VT.make RT.default_data "root" in
+ let r = RT.load_from_xml r (in_testdata_dir test_ctxt ["interface_definition_sample.xml"]) in
+ assert_equal (raises_validation_error (fun () -> ignore @@ RT.validate_path (get_dir test_ctxt) r ["system"; "options"; "reboot-on-panic"; "fgsfds"])) true
let test_validate_path_valueless_node_valid test_ctxt =
- let r = Vytree.make default_data "root" in
- let r = load_from_xml r (in_testdata_dir test_ctxt ["interface_definition_sample.xml"]) in
- assert_equal (validate_path (get_dir test_ctxt) r ["system"; "options"; "reboot-on-panic"])
+ let r = VT.make RT.default_data "root" in
+ let r = RT.load_from_xml r (in_testdata_dir test_ctxt ["interface_definition_sample.xml"]) in
+ let test p =
+ let _ = RT.validate_path (get_dir test_ctxt) r p in
+ RT.split_path r p
+ in
+ assert_equal (test ["system"; "options"; "reboot-on-panic"])
(["system"; "options"; "reboot-on-panic"], None)
let test_is_multi_valid test_ctxt =
- let r = Vytree.make default_data "root" in
- let r = load_from_xml r (in_testdata_dir test_ctxt ["interface_definition_sample.xml"]) in
- assert_equal (is_multi r ["system"; "ntp-server"]) true
+ let r = VT.make RT.default_data "root" in
+ let r = RT.load_from_xml r (in_testdata_dir test_ctxt ["interface_definition_sample.xml"]) in
+ assert_equal (RT.is_multi r ["system"; "ntp-server"]) true
let test_is_multi_invalid test_ctxt =
- let r = Vytree.make default_data "root" in
- let r = load_from_xml r (in_testdata_dir test_ctxt ["interface_definition_sample.xml"]) in
- assert_equal (is_multi r ["system"; "host-name"]) false
+ let r = VT.make RT.default_data "root" in
+ let r = RT.load_from_xml r (in_testdata_dir test_ctxt ["interface_definition_sample.xml"]) in
+ assert_equal (RT.is_multi r ["system"; "host-name"]) false
let test_is_secret_valid test_ctxt =
- let r = Vytree.make default_data "root" in
- let r = load_from_xml r (in_testdata_dir test_ctxt ["interface_definition_sample.xml"]) in
- assert_equal (is_secret r ["system"; "login"; "password"]) true
+ let r = VT.make RT.default_data "root" in
+ let r = RT.load_from_xml r (in_testdata_dir test_ctxt ["interface_definition_sample.xml"]) in
+ assert_equal (RT.is_secret r ["system"; "login"; "password"]) true
let test_is_secret_invalid test_ctxt =
- let r = Vytree.make default_data "root" in
- let r = load_from_xml r (in_testdata_dir test_ctxt ["interface_definition_sample.xml"]) in
- assert_equal (is_secret r ["system"; "login"; "user"; "full-name"]) false
+ let r = VT.make RT.default_data "root" in
+ let r = RT.load_from_xml r (in_testdata_dir test_ctxt ["interface_definition_sample.xml"]) in
+ assert_equal (RT.is_secret r ["system"; "login"; "user"; "full-name"]) false
let test_is_hidden_valid test_ctxt =
- let r = Vytree.make default_data "root" in
- let r = load_from_xml r (in_testdata_dir test_ctxt ["interface_definition_sample.xml"]) in
- assert_equal (is_hidden r ["system"; "options"; "enable-dangerous-features"]) true
+ let r = VT.make RT.default_data "root" in
+ let r = RT.load_from_xml r (in_testdata_dir test_ctxt ["interface_definition_sample.xml"]) in
+ assert_equal (RT.is_hidden r ["system"; "options"; "enable-dangerous-features"]) true
let test_is_hidden_invalid test_ctxt =
- let r = Vytree.make default_data "root" in
- let r = load_from_xml r (in_testdata_dir test_ctxt ["interface_definition_sample.xml"]) in
- assert_equal (is_hidden r ["system"; "login"; "user"; "full-name"]) false
+ let r = VT.make RT.default_data "root" in
+ let r = RT.load_from_xml r (in_testdata_dir test_ctxt ["interface_definition_sample.xml"]) in
+ assert_equal (RT.is_hidden r ["system"; "login"; "user"; "full-name"]) false
let test_is_tag_valid test_ctxt =
- let r = Vytree.make default_data "root" in
- let r = load_from_xml r (in_testdata_dir test_ctxt ["interface_definition_sample.xml"]) in
- assert_equal (is_tag r ["system"; "login"; "user"]) true
+ let r = VT.make RT.default_data "root" in
+ let r = RT.load_from_xml r (in_testdata_dir test_ctxt ["interface_definition_sample.xml"]) in
+ assert_equal (RT.is_tag r ["system"; "login"; "user"]) true
let test_is_tag_invalid test_ctxt =
- let r = Vytree.make default_data "root" in
- let r = load_from_xml r (in_testdata_dir test_ctxt ["interface_definition_sample.xml"]) in
- assert_equal (is_tag r ["system"; "login"]) false
+ let r = VT.make RT.default_data "root" in
+ let r = RT.load_from_xml r (in_testdata_dir test_ctxt ["interface_definition_sample.xml"]) in
+ assert_equal (RT.is_tag r ["system"; "login"]) false
let test_is_leaf_valid test_ctxt =
- let r = Vytree.make default_data "root" in
- let r = load_from_xml r (in_testdata_dir test_ctxt ["interface_definition_sample.xml"]) in
- assert_equal (is_leaf r ["system"; "login"; "user"; "full-name"]) true
+ let r = VT.make RT.default_data "root" in
+ let r = RT.load_from_xml r (in_testdata_dir test_ctxt ["interface_definition_sample.xml"]) in
+ assert_equal (RT.is_leaf r ["system"; "login"; "user"; "full-name"]) true
let test_is_leaf_invalid test_ctxt =
- let r = Vytree.make default_data "root" in
- let r = load_from_xml r (in_testdata_dir test_ctxt ["interface_definition_sample.xml"]) in
- assert_equal (is_leaf r ["system"; "login"; "user"]) false
+ let r = VT.make RT.default_data "root" in
+ let r = RT.load_from_xml r (in_testdata_dir test_ctxt ["interface_definition_sample.xml"]) in
+ assert_equal (RT.is_leaf r ["system"; "login"; "user"]) false
let test_is_valueless_valid test_ctxt =
- let r = Vytree.make default_data "root" in
- let r = load_from_xml r (in_testdata_dir test_ctxt ["interface_definition_sample.xml"]) in
- assert_equal (is_valueless r ["system"; "options"; "reboot-on-panic"]) true
+ let r = VT.make RT.default_data "root" in
+ let r = RT.load_from_xml r (in_testdata_dir test_ctxt ["interface_definition_sample.xml"]) in
+ assert_equal (RT.is_valueless r ["system"; "options"; "reboot-on-panic"]) true
let test_is_valueless_invalid test_ctxt =
- let r = Vytree.make default_data "root" in
- let r = load_from_xml r (in_testdata_dir test_ctxt ["interface_definition_sample.xml"]) in
- assert_equal (is_valueless r ["system"; "login"; "user"; "full-name"]) false
+ let r = VT.make RT.default_data "root" in
+ let r = RT.load_from_xml r (in_testdata_dir test_ctxt ["interface_definition_sample.xml"]) in
+ assert_equal (RT.is_valueless r ["system"; "login"; "user"; "full-name"]) false
+(* keep_order not yet implemented *)
+(*
let test_get_keep_order_valid test_ctxt =
- let r = Vytree.make default_data "root" in
- let r = load_from_xml r (in_testdata_dir test_ctxt ["interface_definition_sample.xml"]) in
+ let r = VT.make RT.default_data "root" in
+ let r = RT.load_from_xml r (in_testdata_dir test_ctxt ["interface_definition_sample.xml"]) in
assert_equal (get_keep_order r ["system"; "login"; "user"]) true
let test_get_keep_order_invalid test_ctxt =
- let r = Vytree.make default_data "root" in
- let r = load_from_xml r (in_testdata_dir test_ctxt ["interface_definition_sample.xml"]) in
+ let r = VT.make RT.default_data "root" in
+ let r = RT.load_from_xml r (in_testdata_dir test_ctxt ["interface_definition_sample.xml"]) in
assert_equal (get_keep_order r ["system"; "login"; "user"; "full-name"]) false
-
+*)
let test_get_owner_valid test_ctxt =
- let r = Vytree.make default_data "root" in
- let r = load_from_xml r (in_testdata_dir test_ctxt ["interface_definition_sample.xml"]) in
- assert_equal (get_owner r ["system"; "login"]) (Some "login")
+ let r = VT.make RT.default_data "root" in
+ let r = RT.load_from_xml r (in_testdata_dir test_ctxt ["interface_definition_sample.xml"]) in
+ assert_equal (RT.get_owner r ["system"; "login"]) (Some "login")
let test_get_owner_invalid test_ctxt =
- let r = Vytree.make default_data "root" in
- let r = load_from_xml r (in_testdata_dir test_ctxt ["interface_definition_sample.xml"]) in
- assert_equal (get_owner r ["system"; "login"; "user"]) None
+ let r = VT.make RT.default_data "root" in
+ let r = RT.load_from_xml r (in_testdata_dir test_ctxt ["interface_definition_sample.xml"]) in
+ assert_equal (RT.get_owner r ["system"; "login"; "user"]) None
let test_get_help_string_valid test_ctxt =
- let r = Vytree.make default_data "root" in
- let r = load_from_xml r (in_testdata_dir test_ctxt ["interface_definition_sample.xml"]) in
- assert_equal (get_help_string r ["system"; "login"; "user"; "full-name"]) ("User full name")
+ let r = VT.make RT.default_data "root" in
+ let r = RT.load_from_xml r (in_testdata_dir test_ctxt ["interface_definition_sample.xml"]) in
+ assert_equal (RT.get_help_string r ["system"; "login"; "user"; "full-name"]) ("User full name")
let test_get_help_string_default test_ctxt =
- let r = Vytree.make default_data "root" in
- let r = load_from_xml r (in_testdata_dir test_ctxt ["interface_definition_sample.xml"]) in
- assert_equal (get_help_string r ["system"; "host-name"]) ("No help available")
+ let r = VT.make RT.default_data "root" in
+ let r = RT.load_from_xml r (in_testdata_dir test_ctxt ["interface_definition_sample.xml"]) in
+ assert_equal (RT.get_help_string r ["system"; "host-name"]) ("No help available")
let suite =
- "Util tests" >::: [
+ "Vyconf reference tree tests" >::: [
"test_load_valid_definition" >:: test_load_valid_definition;
"test_validate_path_leaf_valid" >:: test_validate_path_leaf_valid;
"test_validate_path_leaf_invalid" >:: test_validate_path_leaf_invalid;
@@ -188,8 +205,6 @@ let suite =
"test_is_leaf_invalid" >:: test_is_leaf_invalid;
"test_is_valueless_valid" >:: test_is_valueless_valid;
"test_is_valueless_invalid" >:: test_is_valueless_invalid;
- "test_get_keep_order_valid" >:: test_get_keep_order_valid;
- "test_get_keep_order_invalid" >:: test_get_keep_order_invalid;
"test_get_owner_valid" >:: test_get_owner_valid;
"test_get_owner_invalid" >:: test_get_owner_invalid;
"test_get_help_string_valid" >:: test_get_help_string_valid;