@ -17,6 +17,12 @@ import ./make-test-python.nix ({ pkgs, ... }: rec {
nodes = {
defaultMachine = { . . . }: { } ;
failingMachine = { . . . }: {
services . logrotate . configFile = pkgs . writeText " l o g r o t a t e . c o n f " ''
# self-written config file
su notarealuser notagroupeither
'' ;
} ;
machine = { config , . . . }: {
imports = [ importTest ] ;
@ -128,5 +134,19 @@ import ./make-test-python.nix ({ pkgs, ... }: rec {
" [ [ $ ( s e d - n e ' / \" c o m p a t _ k e e p \" { / , / } / p ' / t m p / l o g r o t a t e . c o n f | g r e p - w r o t a t e ) = \" r o t a t e 1 \" ] ] " ,
" ! s e d - n e ' / \" c o m p a t _ k e e p \" { / , / } / p ' / t m p / l o g r o t a t e . c o n f | g r e p - w k e e p " ,
)
# also check configFile option
failingMachine . succeed (
" c o n f = $ ( s y s t e m c t l c a t l o g r o t a t e | g r e p - o E ' / n i x / s t o r e [ ^ ] * l o g r o t a t e . c o n f ' ) ; c p $ c o n f / t m p / l o g r o t a t e . c o n f " ,
" g r e p ' s e l f - w r i t t e n c o n f i g ' / t m p / l o g r o t a t e . c o n f " ,
)
with subtest ( " C h e c k l o g r o t a t e - c h e c k c o n f s e r v i c e " ) :
machine . wait_for_unit ( " l o g r o t a t e - c h e c k c o n f . s e r v i c e " )
# wait_for_unit also asserts for success, so wait for
# parent target instead and check manually.
failingMachine . wait_for_unit ( " m u l t i - u s e r . t a r g e t " )
info = failingMachine . get_unit_info ( " l o g r o t a t e - c h e c k c o n f . s e r v i c e " )
if info [ " A c t i v e S t a t e " ] != " f a i l e d " :
raise Exception ( ' logrotate-checkconf . service was not failed' )
'' ;
} )