65 lines
1.8 KiB
Plaintext
65 lines
1.8 KiB
Plaintext
(* Tests for the Hosts module *)
|
|
|
|
module Test_hosts =
|
|
|
|
let two_entries = "127.0.0.1 foo foo.example.com
|
|
# \tcomment\t
|
|
192.168.0.1 pigiron.example.com pigiron pigiron.example
|
|
"
|
|
|
|
test Hosts.record get "127.0.0.1 foo\n" =
|
|
{ "1" { "ipaddr" = "127.0.0.1" }
|
|
{ "canonical" = "foo" } }
|
|
|
|
test Hosts.lns get two_entries =
|
|
{ "1" { "ipaddr" = "127.0.0.1" }
|
|
{ "canonical" = "foo" }
|
|
{ "alias" = "foo.example.com" }
|
|
}
|
|
{ "#comment" = "comment" }
|
|
{ "2" { "ipaddr" = "192.168.0.1" }
|
|
{ "canonical" = "pigiron.example.com" }
|
|
{ "alias" = "pigiron" }
|
|
{ "alias" = "pigiron.example" } }
|
|
|
|
test Hosts.record put "127.0.0.1 foo\n" after
|
|
set "/1/canonical" "bar"
|
|
= "127.0.0.1 bar\n"
|
|
|
|
test Hosts.lns put two_entries after
|
|
set "/2/alias[10]" "piggy" ;
|
|
rm "/1/alias[1]" ;
|
|
rm "/2/alias[2]"
|
|
= "127.0.0.1 foo
|
|
# \tcomment\t
|
|
192.168.0.1 pigiron.example.com pigiron piggy
|
|
"
|
|
|
|
(* Deleting the 'canonical' node violates the schema; each host entry *)
|
|
(* must have one *)
|
|
test Hosts.lns put two_entries after
|
|
rm "/1/canonical"
|
|
= *
|
|
|
|
(* Make sure blank and indented lines get through *)
|
|
test Hosts.lns get " \t 127.0.0.1\tlocalhost \n \n\n
|
|
127.0.1.1\tetch.example.com\tetch\n" =
|
|
{ "1" { "ipaddr" = "127.0.0.1" }
|
|
{ "canonical" = "localhost" } }
|
|
{} {} {}
|
|
{ "2" { "ipaddr" = "127.0.1.1" }
|
|
{ "canonical" = "etch.example.com" }
|
|
{ "alias" = "etch" } }
|
|
|
|
(* Comment at the end of a line *)
|
|
test Hosts.lns get "127.0.0.1 localhost # must always be there \n" =
|
|
{ "1" { "ipaddr" = "127.0.0.1" }
|
|
{ "canonical" = "localhost" }
|
|
{ "#comment" = "must always be there" } }
|
|
|
|
(* Local Variables: *)
|
|
(* mode: caml *)
|
|
(* End: *)
|
|
|
|
|