summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorDaniil Baturin <daniil@baturin.org>2016-12-14 17:05:22 +0600
committerDaniil Baturin <daniil@baturin.org>2016-12-14 17:05:22 +0600
commitfb1a02fe557c28ccb091a58a55ef399ecb4f71fd (patch)
tree81ebd681dd373f7f6c8f928658fb2294585670ae /test
parent96ad97fbe3d1592efa732bbe804292ab801de61e (diff)
downloadvyconf-fb1a02fe557c28ccb091a58a55ef399ecb4f71fd.tar.gz
vyconf-fb1a02fe557c28ccb091a58a55ef399ecb4f71fd.zip
T210: Add tests and test data for the vyconfd config loader.
Diffstat (limited to 'test')
-rw-r--r--test/data/vyconfd_config/vyconfd.conf.complete17
-rw-r--r--test/data/vyconfd_config/vyconfd.conf.incomplete13
-rw-r--r--test/data/vyconfd_config/vyconfd.conf.malformed7
-rw-r--r--test/data/vyconfd_config/vyconfd.conf.mandatoryonly11
-rw-r--r--test/vyconf_config_test.ml49
5 files changed, 97 insertions, 0 deletions
diff --git a/test/data/vyconfd_config/vyconfd.conf.complete b/test/data/vyconfd_config/vyconfd.conf.complete
new file mode 100644
index 0000000..85a4523
--- /dev/null
+++ b/test/data/vyconfd_config/vyconfd.conf.complete
@@ -0,0 +1,17 @@
+[appliance]
+
+name = "Test Appliance"
+
+data_dir = "/usr/share/testappliance"
+program_dir = "/usr/libexec/testappliance"
+config_dir = "/etc/testappliance"
+
+# paths relative to config_dir
+primary_config = "config.boot"
+fallback_config = "config.failsafe"
+
+[vyconf]
+
+socket = "/var/run/vyconfd.sock"
+pid_file = "/var/run/vyconfd.pid"
+log_file = "/var/log/vyconfd.log"
diff --git a/test/data/vyconfd_config/vyconfd.conf.incomplete b/test/data/vyconfd_config/vyconfd.conf.incomplete
new file mode 100644
index 0000000..7ce5c3b
--- /dev/null
+++ b/test/data/vyconfd_config/vyconfd.conf.incomplete
@@ -0,0 +1,13 @@
+[appliance]
+
+name = "Test Appliance"
+
+primary_config = "config.boot"
+fallback_config = "config.failsafe"
+
+[vyconf]
+
+socket = "/var/run/vyconfd.sock"
+pid_file = "/var/run/vyconfd.pid"
+log_file = "/var/log/vyconfd.log"
+
diff --git a/test/data/vyconfd_config/vyconfd.conf.malformed b/test/data/vyconfd_config/vyconfd.conf.malformed
new file mode 100644
index 0000000..c5d6f3d
--- /dev/null
+++ b/test/data/vyconfd_config/vyconfd.conf.malformed
@@ -0,0 +1,7 @@
+# A config with syntax errors
+
+[appliance
+
+name = "Bad Appliance
+
+
diff --git a/test/data/vyconfd_config/vyconfd.conf.mandatoryonly b/test/data/vyconfd_config/vyconfd.conf.mandatoryonly
new file mode 100644
index 0000000..00166fb
--- /dev/null
+++ b/test/data/vyconfd_config/vyconfd.conf.mandatoryonly
@@ -0,0 +1,11 @@
+[appliance]
+
+name = "Test Appliance"
+
+data_dir = "/usr/share/testappliance"
+program_dir = "/usr/libexec/testappliance"
+config_dir = "/etc/testappliance"
+
+# paths relative to config_dir
+primary_config = "config.boot"
+fallback_config = "config.failsafe"
diff --git a/test/vyconf_config_test.ml b/test/vyconf_config_test.ml
new file mode 100644
index 0000000..ba77d1c
--- /dev/null
+++ b/test/vyconf_config_test.ml
@@ -0,0 +1,49 @@
+open OUnit2
+open Vyconf_config
+
+let try_load file =
+ let conf = load file in
+ match conf with
+ | Ok _ -> ()
+ | Error msg -> assert_failure msg
+
+let try_load_fail file err =
+ let conf = load file in
+ match conf with
+ | Ok _ -> assert_failure err
+ | Error msg -> ()
+
+
+let test_load_nonexistent_file test_ctxt =
+ (* Please don't create this file there! *)
+ let file = in_testdata_dir test_ctxt ["vyconfd_config"; "vyconfd.conf.nonexistent"] in
+ try_load_fail file (Printf.sprintf "Nonexistent file %s was successfully loaded" file)
+
+let test_load_malformed_file test_ctxt =
+ let file = in_testdata_dir test_ctxt ["vyconfd_config"; "vyconfd.conf.malformed"] in
+ try_load_fail file (Printf.sprintf "Malformed file %s was successfully loaded" file)
+
+let test_load_incomplete_file test_ctxt =
+ let file = in_testdata_dir test_ctxt ["vyconfd_config"; "vyconfd.conf.incomplete"] in
+ try_load_fail file (Printf.sprintf "File %s was successfully loaded despite missing fields" file)
+
+let test_load_mandatory_only test_ctxt =
+ let file = in_testdata_dir test_ctxt ["vyconfd_config"; "vyconfd.conf.mandatoryonly"] in
+ try_load file
+
+let test_load_all_fields test_ctxt =
+ let file = in_testdata_dir test_ctxt ["vyconfd_config"; "vyconfd.conf.complete"] in
+ try_load file
+
+let suite =
+ "VyConf daemon config loader tests" >::: [
+ "test_load_nonexistent_file" >:: test_load_nonexistent_file;
+ "test_load_malformed_file" >:: test_load_malformed_file;
+ "test_load_incomplete_file" >:: test_load_incomplete_file;
+ "test_load_mandatory_only" >:: test_load_mandatory_only;
+ "test_load_all_fields" >:: test_load_all_fields;
+
+ ]
+
+let () =
+ run_test_tt_main suite