2007-06-12 14:05:38 by steve
Added to the repository.
This commit is contained in:
106
tests/hook-daemons.t
Executable file
106
tests/hook-daemons.t
Executable file
@@ -0,0 +1,106 @@
|
||||
#!/usr/bin/perl -w
|
||||
#
|
||||
# Test that our policy-rc.d file is created and removed as we expect in our hooks.
|
||||
#
|
||||
# Steve
|
||||
# --
|
||||
# $Id: hook-daemons.t,v 1.1 2007-06-12 14:05:38 steve Exp $
|
||||
#
|
||||
|
||||
|
||||
use strict;
|
||||
use Test::More qw( no_plan );
|
||||
use File::Temp;
|
||||
|
||||
|
||||
|
||||
|
||||
#
|
||||
# Rather than having a hardwired list of distributions to test
|
||||
# against we look for subdirectories beneath hooks/ and test each
|
||||
# one.
|
||||
#
|
||||
foreach my $dir ( glob( "hooks/*" ) )
|
||||
{
|
||||
next if ( $dir =~ /CVS/i );
|
||||
next if ( ! -d $dir );
|
||||
|
||||
if ( $dir =~ /hooks\/(.*)/ )
|
||||
{
|
||||
my $dist = $1;
|
||||
|
||||
maybeCallHook( $dist );
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
#
|
||||
# If the given distribution has the following two files test them:
|
||||
#
|
||||
# 01-disable-daemons
|
||||
# 99-enable-daemons
|
||||
#
|
||||
sub maybeCallHook
|
||||
{
|
||||
my( $dist ) = (@_);
|
||||
|
||||
#
|
||||
# Do the two files exist?
|
||||
#
|
||||
foreach my $file ( qw/ 01-disable-daemons 99-enable-daemons / )
|
||||
{
|
||||
return if ( ! -e "./hooks/$dist/$file" );
|
||||
}
|
||||
|
||||
#
|
||||
# Call the test on the given distribution
|
||||
#
|
||||
testHook( $dist );
|
||||
}
|
||||
|
||||
|
||||
|
||||
#
|
||||
# Test that the two hooks work.
|
||||
#
|
||||
sub testHook
|
||||
{
|
||||
my ( $dist ) = ( @_ );
|
||||
|
||||
#
|
||||
# Output
|
||||
#
|
||||
ok( $dist, "Testing: $dist" );
|
||||
|
||||
#
|
||||
# Create a temporary directory.
|
||||
#
|
||||
my $dir = File::Temp::tempdir( CLEANUP => 1 );
|
||||
|
||||
#
|
||||
# Test we got a directory and there is no /usr/sbin there.
|
||||
#
|
||||
ok( -d $dir, "Temporary directory created OK" );
|
||||
ok( ! -d $dir . "/usr/sbin", "There is no /usr/sbin directory there. yet" );;
|
||||
|
||||
|
||||
#
|
||||
# Call the first hook
|
||||
#
|
||||
`./hooks/$dist/01-disable-daemons $dir`;
|
||||
|
||||
#
|
||||
# Now /usr/sbin should exist.
|
||||
#
|
||||
ok( -d $dir . "/usr/sbin", "The /usr/sbin directory was created" );
|
||||
ok( -x $dir . "/usr/sbin/policy-rc.d", "The policy-rc.d file was created" );
|
||||
|
||||
#
|
||||
# Now call the second hook
|
||||
#
|
||||
`./hooks/$dist/99-enable-daemons $dir`;
|
||||
|
||||
ok( ! -x $dir . "/usr/sbin/policy-rc.d", "The policy-rc.d file was correctly removed" );
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user