Added:
/trunk/server/t/tconf-data/tconf-2-sysfink/tapir
Modified:
/trunk/server/lib/SysFink/Conf/SysFink.pm
/trunk/server/t/tconf/sysfink-tconf-2.t
=======================================
--- /dev/null
+++ /trunk/server/t/tconf-data/tconf-2-sysfink/tapir Tue Jan 19 05:45:33
2010
@@ -0,0 +1,19 @@
+hostname tapir-sysfink-tconf-2.test.sysfink.org
+sendmail tapir...@test.sysfink.org
+
+inkey2 in-value-gen-1
+use includes/base.pkgs
+inkey2 in-value-gen-2
+
+key3 value3
+key4-gen value4
+
+[sec_a]
+key1-sec value1-sec
+
+inkey2 in-value-sec_a-1
+use includes/base.pkgs
+inkey2 in-value-sec_a-2
+
+key3 value3
+key4-sec value4
=======================================
--- /trunk/server/lib/SysFink/Conf/SysFink.pm Sat Jan 2 01:44:39 2010
+++ /trunk/server/lib/SysFink/Conf/SysFink.pm Tue Jan 19 05:45:33 2010
@@ -321,7 +321,7 @@
=cut
sub process_config_file_content {
- my ( $self, $host_name, $file_content, $recursion_deep ) = @_;
+ my ( $self, $host_name, $file_content, $recursion_deep, $section ) =
@_;
if ( $recursion_deep > 10 ) {
@@ -334,7 +334,7 @@
my @lines = split( /\n/, $file_content );
- my $section = 'general';
+ $section = 'general' unless defined $section;
foreach my $line_num ( 0..$#lines ) {
my $line = $lines[ $line_num ];
chomp $line;
@@ -374,7 +374,7 @@
my $inc_file_content = $self->get_file_content( $inc_fpath
);
return 0 unless defined $inc_file_content;
- my $ret_code = $self->process_config_file_content(
$host_name, $inc_file_content, $recursion_deep + 1 );
+ my $ret_code = $self->process_config_file_content(
$host_name, $inc_file_content, $recursion_deep + 1, $section );
return $ret_code unless $ret_code;
}
next;
@@ -438,7 +438,8 @@
return $self->process_config_file_content(
$host_name,
$file_content,
- 0 # $recursion_deep
+ 0, # $recursion_deep
+ undef # $section
);
}
=======================================
--- /trunk/server/t/tconf/sysfink-tconf-2.t Tue Jan 12 13:22:13 2010
+++ /trunk/server/t/tconf/sysfink-tconf-2.t Tue Jan 19 05:45:33 2010
@@ -1,6 +1,6 @@
use strict;
use warnings;
-use Test::More tests => 10;
+use Test::More tests => 14;
use Carp qw(carp croak verbose);
use FindBin qw($RealBin);
@@ -23,7 +23,7 @@
# some test cases
my @loaded_hosts = ( sort keys %$conf );
-is_deeply( \@loaded_hosts, [ 'gorilla', 'lion' ], 'gorilla conf loaded ok'
);
+is_deeply( \@loaded_hosts, [ 'gorilla', 'lion', 'tapir' ], 'three confs
loaded ok' );
# gorilla
@@ -45,5 +45,16 @@
is_deeply( $conf->{lion}->{general}->{rpmpkg}, [
qw/kernel-2.6.18-8.1.8.main.el5.i686 samba dvd+rw-tools/ ], 'lion rpmpkg
ok' );
is_deeply( $conf->{lion}->{general}->{sendmail}, [
qw/gorilla-sysf...@test.sysfink.org
gorilla-sysf...@test.sysfink.org/ ], 'lion sendmail ok' );
-#use Data::Dumper; print Dumper( $conf );
-
+
+# tapir
+
+# use Data::Dumper; print Dumper( $conf );
+
+my @tapir_general_keys = ( sort keys %{ $conf->{tapir}->{general} } );
+is_deeply( \@tapir_general_keys, [ qw/hostname inkey1 inkey2 key3 key4-gen
rpmpkg sendmail/ ], 'tapir general keys ok' );
+is_deeply( $conf->{tapir}->{general}->{inkey2}, [ qw/in-value-gen-1
in-value1 in-value2 in-value-gen-2/ ], 'tapir general inkey2 ok' );
+
+my @tapir_secA_keys = ( sort keys %{ $conf->{tapir}->{sec_a} } );
+is_deeply( \@tapir_secA_keys, [ qw/inkey1 inkey2 key1-sec key3 key4-sec
rpmpkg/ ], 'tapir sec_a keys ok' );
+is_deeply( $conf->{tapir}->{sec_a}->{inkey2}, [ qw/in-value-sec_a-1
in-value1 in-value2 in-value-sec_a-2/ ], 'tapir sec_a inkey2 ok' );
+