1
0
mirror of synced 2026-01-23 10:38:15 +00:00
steve 011fb4345f 2006-03-11 19:45:50 by steve
Add 'vif='[ip=xxx]' to the Xen configuration file if the address is
 static.

  Added test case to make sure this works.
2006-03-11 19:45:51 +00:00

119 lines
2.1 KiB
Perl

#!/usr/bin/perl -w
#
# Test that the Xen configuration file works as expected.
#
# Steve
# --
# $Id: hook-cfg.t,v 1.1 2006-03-11 19:45:51 steve Exp $
#
use strict;
use Test::More qw( no_plan );
use File::Temp;
#
# Preserve original environment.
#
my %SAFE_ENV = %ENV;
#
# Create a temporary directory.
#
my $dir = File::Temp::tempdir( CLEANUP => 1 );
ok( -d $dir, "Temporary directory created OK: $dir" );
ok( -e "etc/hook.d/95-create-cfg", "Xen cfg hook exists" );
ok( -x "etc/hook.d/95-create-cfg", "Xen cfg hook is executable" );
#
# Call the hook one for static, and once for dynamic.
#
callHook( 1 );
callHook( 0 );
#
# Call the Xen .cfg file creation hook and make sure the results
# match what we expect.
#
sub callHook
{
my ( $dhcp ) = ( @_ );
#
# Reset environment.
#
foreach my $key ( keys %SAFE_ENV )
{
$ENV{$key} = $SAFE_ENV{$key};
}
#
# Make sure we're testing.
#
$ENV{'testing'} = 1;
$ENV{'testing_dir'} = $dir;
$ENV{'kernel'} = '/vmlinuz.img';
$ENV{'memory'} = '128Mb';
$ENV{'hostname'} = 'test.my.flat';
#
# DHCP vs. Static.
#
$ENV{'ip'} = '';
$ENV{'dhcp'} = '';
$ENV{'ip' } = '192.168.1.200' if !$dhcp;
$ENV{'dhcp'} = 1 if $dhcp;
#
# Call the hook
#
`etc/hook.d/95-create-cfg $dir`;
#
# Test the results.
#
open( OUTPUT, "<", $dir . "/test.my.flat.cfg" )
or die "Failed to open output";
my @lines = <OUTPUT>;
close( OUTPUT );
my $kernel = grep( /kernel.*vmlinuz/, @lines );
ok( $kernel, "Found the kernel line" );
my $memory = grep( /memory.*128Mb/, @lines );
ok( $memory, "Found the memory line" );
my $ip = grep( /ip=/, @lines );
my $dynamic = grep( /dhcp =/, @lines );
if ( $dhcp )
{
ok( $ip == 0, "DHCP - didn't find IP address." );
ok( $dynamic, "DHCP - found DHCP." );
}
if ( ! $dhcp )
{
ok( $dynamic == 0, "Static - didn't find DHCP address." );
ok( $ip, "Static - found IP address." );
}
#
# Cleanup
#
unlink( $dir . "/test.my.flat.cfg" );
}