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

357 lines
11 KiB
Plaintext
Raw Normal View History

2022-11-08 20:57:02 +03:00
module Test_syslog =
let conf="# $FreeBSD: src/etc/syslog.conf,v 1.30.2.1 2009/08/03 08:13:06 kensmith Exp $
#
daemon.info /var/log/cvsupd.log
security.* -/var/log/security
*.notice;authpriv.none;kern.debug;lpr.info;mail.crit;news.err /var/log/messages
uucp,news.crit /var/log/spooler
*.emerg *
daemon.!info /var/log/foo
daemon.<=info /var/log/foo
daemon.!<=info /var/log/foo
*.* @syslog.far.away
*.* @syslog.far.away:123
*.* @@syslog.far.away
*.* @@syslog.far.away:123
*.* @[2001::1]:514
*.* foo,bar
*.* |\"/usr/bin/soft arg\"
!startslip
# get that out
*.* /var/log/slip.log
!pppd,ppp
*.* /var/log/ppp.log
!+startslip
*.* /var/log/slip.log
!-startslip
*.* /var/log/slip.log
#!pppd
*.* /var/log/ppp.log
+foo.example.com
daemon.info /var/log/cvsupd.log
+foo.example.com,bar.example.com
daemon.info /var/log/cvsupd.log
#+bar.example.com
daemon.info /var/log/cvsupd.log
-foo.example.com
daemon.info /var/log/cvsupd.log
+*
daemon.info /var/log/cvsupd.log
!*
daemon.info /var/log/cvsupd.log
*.=debug;\
auth,authpriv.none;\
news.none;mail.none -/var/log/debug
# !pppd
"
test Syslog.lns get conf =
{ "#comment" = "$FreeBSD: src/etc/syslog.conf,v 1.30.2.1 2009/08/03 08:13:06 kensmith Exp $" }
{ }
{ }
{ "entry"
{ "selector" { "facility" = "daemon" } { "level" = "info" } }
{ "action" { "file" = "/var/log/cvsupd.log" } }
}
{ "entry"
{ "selector" { "facility" = "security" } { "level" = "*" } }
{ "action" { "no_sync" } { "file" = "/var/log/security" } }
}
{ "entry"
{ "selector" { "facility" = "*" } { "level" = "notice" } }
{ "selector" { "facility" = "authpriv" } { "level" = "none" } }
{ "selector" { "facility" = "kern" } { "level" = "debug" } }
{ "selector" { "facility" = "lpr" } { "level" = "info" } }
{ "selector" { "facility" = "mail" } { "level" = "crit" } }
{ "selector" { "facility" = "news" } { "level" = "err" } }
{ "action" { "file" = "/var/log/messages" } }
}
{ "entry"
{ "selector" { "facility" = "uucp" } { "facility" = "news" } { "level" = "crit" } }
{ "action" { "file" = "/var/log/spooler" } }
}
{ "entry"
{ "selector" { "facility" = "*" } { "level" = "emerg" } }
{ "action" { "user" = "*" } }
}
{ "entry"
{ "selector" { "facility" = "daemon" } { "comparison" = "!" } { "level" = "info" } }
{ "action" { "file" = "/var/log/foo" } }
}
{ "entry"
{ "selector" { "facility" = "daemon" } { "comparison" = "<=" } { "level" = "info" } }
{ "action" { "file" = "/var/log/foo" } }
}
{ "entry"
{ "selector" { "facility" = "daemon" } { "comparison" = "!<=" } { "level" = "info" } }
{ "action" { "file" = "/var/log/foo" } }
}
{ "entry"
{ "selector" { "facility" = "*" } { "level" = "*" } }
{ "action" { "protocol" = "@" } { "hostname" = "syslog.far.away" } }
}
{ "entry"
{ "selector" { "facility" = "*" } { "level" = "*" } }
{ "action" { "protocol" = "@" } { "hostname" = "syslog.far.away" } { "port" = "123" } }
}
{ "entry"
{ "selector" { "facility" = "*" } { "level" = "*" } }
{ "action" { "protocol" = "@@" } { "hostname" = "syslog.far.away" } }
}
{ "entry"
{ "selector" { "facility" = "*" } { "level" = "*" } }
{ "action" { "protocol" = "@@" } { "hostname" = "syslog.far.away" } { "port" = "123" } }
}
{ "entry"
{ "selector" { "facility" = "*" } { "level" = "*" } }
{ "action" { "protocol" = "@" } { "hostname" = "[2001::1]" } { "port" = "514" } }
}
{ "entry"
{ "selector" { "facility" = "*" } { "level" = "*" } }
{ "action" { "user" = "foo" } { "user" = "bar" } }
}
{ "entry"
{ "selector" { "facility" = "*" } { "level" = "*" } }
{ "action" { "program" = "\"/usr/bin/soft arg\"" } }
}
{ "program"
{ "program" = "startslip" }
{ "#comment" = "get that out" }
{ "entry"
{ "selector" { "facility" = "*" } { "level" = "*" } }
{ "action" { "file" = "/var/log/slip.log" } }
}
}
{ "program"
{ "program" = "pppd" }
{ "program" = "ppp" }
{ }
{ "entry"
{ "selector" { "facility" = "*" } { "level" = "*" } }
{ "action" { "file" = "/var/log/ppp.log" } }
}
}
{ "program"
{ "program" = "startslip" }
{ "entry"
{ "selector" { "facility" = "*" } { "level" = "*" } }
{ "action" { "file" = "/var/log/slip.log" } }
}
}
{ "program"
{ "reverse" }
{ "program" = "startslip" }
{ "entry"
{ "selector" { "facility" = "*" } { "level" = "*" } }
{ "action" { "file" = "/var/log/slip.log" } }
}
}
{ "program"
{ "program" = "pppd" }
{ "entry"
{ "selector" { "facility" = "*" } { "level" = "*" } }
{ "action" { "file" = "/var/log/ppp.log" } }
}
}
{ "hostname"
{ "hostname" = "foo.example.com" }
{ "entry"
{ "selector" { "facility" = "daemon" } { "level" = "info" } }
{ "action" { "file" = "/var/log/cvsupd.log" } }
}
}
{ "hostname"
{ "hostname" = "foo.example.com" }
{ "hostname" = "bar.example.com" }
{ "entry"
{ "selector" { "facility" = "daemon" } { "level" = "info" } }
{ "action" { "file" = "/var/log/cvsupd.log" } }
}
}
{ "hostname"
{ "hostname" = "bar.example.com" }
{ "entry"
{ "selector" { "facility" = "daemon" } { "level" = "info" } }
{ "action" { "file" = "/var/log/cvsupd.log" } }
}
}
{ "hostname"
{ "reverse" }
{ "hostname" = "foo.example.com" }
{ "entry"
{ "selector" { "facility" = "daemon" } { "level" = "info" } }
{ "action" { "file" = "/var/log/cvsupd.log" } }
}
}
{ "hostname"
{ "hostname" = "*" }
{ "entry"
{ "selector" { "facility" = "daemon" } { "level" = "info" } }
{ "action" { "file" = "/var/log/cvsupd.log" } }
}
}
{ "program"
{ "program" = "*" }
{ "entry"
{ "selector" { "facility" = "daemon" } { "level" = "info" } }
{ "action" { "file" = "/var/log/cvsupd.log" } } }
{ "entry"
{ "selector" { "facility" = "*" } { "comparison" = "=" } { "level" = "debug" } }
{ "selector" { "facility" = "auth" } { "facility" = "authpriv" } { "level" = "none" } }
{ "selector" { "facility" = "news" } { "level" = "none" } }
{ "selector" { "facility" = "mail" } { "level" = "none" } }
{ "action" { "no_sync" } { "file" = "/var/log/debug" } } }
{ "#comment" = "!pppd" }
}
(* changing file *)
test Syslog.lns put "*.* /var\n" after
set "/entry[1]/action/file" "/foo"
= "*.* /foo\n"
(* changing file to discard *)
test Syslog.lns put "*.* /var\n" after
rm "/entry[1]/action/file" ;
set "/entry[1]/action/discard" ""
= "*.* ~\n"
(* removing entry *)
test Syslog.lns put "*.* /var\n" after
rm "/entry[1]"
= ""
(* changing facility and level *)
test Syslog.lns put "*.* /var\n" after
set "/entry[1]/selector/facility" "daemon" ;
set "/entry[1]/selector/level" "info"
= "daemon.info /var\n"
(* insert a facility *)
test Syslog.lns put "daemon.* /var\n" after
insa "facility" "/entry/selector/facility" ;
set "/entry/selector/facility[2]" "mail"
= "daemon,mail.* /var\n"
(* creating an entry *)
test Syslog.lns put "" after
set "/entry/selector/facility" "daemon" ;
set "/entry/selector/level" "info" ;
set "/entry/action/file" "/var"
= "daemon.info\t/var\n"
(* inserting an entry before *)
test Syslog.lns put "*.* /var\n" after
insb "entry" "/entry" ;
set "/entry[1]/selector/facility" "daemon" ;
set "/entry[1]/selector/level" "info" ;
set "/entry[1]/action/file" "/foo"
= "daemon.info /foo\n*.*\t/var\n"
(* inserting an entry after *)
test Syslog.lns put "*.* /var\n" after
insa "entry" "/entry" ;
set "/entry[2]/selector/facility" "daemon" ;
set "/entry[2]/selector/level" "info" ;
set "/entry[2]/action/file" "/foo"
= "*.* /var\ndaemon.info\t/foo\n"
(* insert sync on a file *)
test Syslog.lns put "*.* /var\n" after
insb "no_sync" "/entry/action/file"
= "*.* -/var\n"
(* changing file to remote host *)
test Syslog.lns put "*.* /var\n" after
rm "/entry/action/file" ;
set "/entry/action/protocol" "@" ;
set "/entry/action/hostname" "far.far.away"
= "*.* @far.far.away\n"
(* changing file to remote host *)
test Syslog.lns put "*.* /var/lib\n" after
rm "/entry/action/file" ;
set "/entry/action/protocol" "@@" ;
set "/entry/action/hostname" "far.far.away"
= "*.* @@far.far.away\n"
(* changing file to * *)
test Syslog.lns put "*.* /var\n" after
rm "/entry/action/file" ;
set "/entry/action/user" "*"
= "*.* *\n"
(* changing file to users *)
test Syslog.lns put "*.* /var\n" after
rm "/entry/action/file" ;
set "/entry/action/user[1]" "john" ;
set "/entry/action/user[2]" "paul" ;
set "/entry/action/user[3]" "george" ;
set "/entry/action/user[4]" "ringo"
= "*.* john,paul,george,ringo\n"
(* changing file to program *)
test Syslog.lns put "*.* /var\n" after
rm "/entry/action/file" ;
set "/entry/action/program" "/usr/bin/foo"
= "*.* |/usr/bin/foo\n"
(* inserting a matching program *)
test Syslog.lns put "" after
insa "program" "/" ;
set "/program/program" "foo"
= "!foo\n"
(* inserting an entry to a matching program *)
test Syslog.lns put "!foo\n" after
set "/program/entry/selector/facility" "*" ;
set "/program/entry/selector/level" "*" ;
set "/program/entry/action/file" "/foo"
= "!foo\n*.*\t/foo\n"
(* inserting a matching hostname *)
test Syslog.lns put "" after
insa "hostname" "/" ;
set "/hostname/hostname" "foo.foo.away"
= "+foo.foo.away\n"
(* inserting an entry to a matching hostname *)
test Syslog.lns put "+foo.foo.away\n" after
set "/hostname/entry/selector/facility" "*" ;
set "/hostname/entry/selector/level" "*" ;
set "/hostname/entry/action/file" "/foo"
= "+foo.foo.away\n*.*\t/foo\n"
(* inserting a reverse matching hostname *)
test Syslog.lns put "" after
insa "hostname" "/" ;
set "/hostname/reverse" "" ;
set "/hostname/hostname" "foo.foo.away"
= "-foo.foo.away\n"
(* tokens can contain capital letters *)
test Syslog.lns get "LOCAL5.* -/var/log/foo.log\n" =
{ "entry"
{ "selector"
{ "facility" = "LOCAL5" }
{ "level" = "*" }
}
{ "action"
{ "no_sync" }
{ "file" = "/var/log/foo.log" }
}
}
(* test for commented out statements *)
test Syslog.lns put "" after
set "#comment" "!pppd" = "# !pppd\n"
(* allow space before comments *)
test Syslog.lns get " \t# space comment\n" =
{ "#comment" = "space comment" }
test Syslog.lns get "include /etc/syslog.d\n" =
{ "include" = "/etc/syslog.d" }