summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniil Baturin <daniil@baturin.org>2015-04-24 16:18:39 +0600
committerDaniil Baturin <daniil@baturin.org>2015-04-24 16:18:39 +0600
commit63bcc75d75ec0bc4642ff1d0354b6915b4b1e6a9 (patch)
tree38d469328c66fa64abec02f7607638a0f1fdd198
parentf6fad748cd5e68c36d4ed55e76c020d10d9bb7bd (diff)
downloadvyconf-63bcc75d75ec0bc4642ff1d0354b6915b4b1e6a9.tar.gz
vyconf-63bcc75d75ec0bc4642ff1d0354b6915b4b1e6a9.zip
Make find_xml_child return Xml.xml option rather than raise Not_found.
-rw-r--r--src/util.ml4
-rw-r--r--src/util.mli2
-rw-r--r--test/util_test.ml7
3 files changed, 8 insertions, 5 deletions
diff --git a/src/util.ml b/src/util.ml
index 141d25b..f8c3c27 100644
--- a/src/util.ml
+++ b/src/util.ml
@@ -7,8 +7,8 @@ let find_xml_child name xml =
| _ -> false
in
match xml with
- | Xml.Element (_, _, children) -> List.find find_aux children
- | Xml.PCData _ -> raise Not_found
+ | Xml.Element (_, _, children) -> Vylist.find find_aux children
+ | Xml.PCData _ -> None
(* Dirty pretty printer *)
let string_of_path path =
diff --git a/src/util.mli b/src/util.mli
index f3699d3..ec0bb73 100644
--- a/src/util.mli
+++ b/src/util.mli
@@ -1,3 +1,3 @@
-val find_xml_child : string -> Xml.xml -> Xml.xml
+val find_xml_child : string -> Xml.xml -> Xml.xml option
val string_of_path : string list -> string
diff --git a/test/util_test.ml b/test/util_test.ml
index ecc4b49..3625957 100644
--- a/test/util_test.ml
+++ b/test/util_test.ml
@@ -5,11 +5,14 @@ let test_find_xml_child_existent test_ctxt =
let elem = Xml.Element ("foo", [],
[Xml.Element ("bar", [], []);
Xml.PCData "baz"])
- in assert_equal (Xml.tag (find_xml_child "bar" elem)) "bar"
+ in
+ match (find_xml_child "bar" elem) with
+ | None -> assert_failure "find_xml_child returned None"
+ | Some x -> assert_equal (Xml.tag x) "bar"
let test_find_xml_child_nonexistent test_ctxt =
let elem = Xml.Element ("foo", [], [Xml.Element ("quux", [], [])]) in
- assert_raises Not_found (fun () -> find_xml_child "bar" elem)
+ assert_equal (find_xml_child "bar" elem) None
let test_string_of_path test_ctxt =
let path = ["foo"; "bar"; "baz"] in