Sharp.Augeas/Sharp.Augeas.Test/lens/tests/test_hosts.aug

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: *)