File: 02rewrite.t

package info (click to toggle)
libconfig-std-perl 0.903-4
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 236 kB
  • sloc: perl: 383; makefile: 2
file content (53 lines) | stat: -rw-r--r-- 1,270 bytes parent folder | download | duplicates (7)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
use Config::Std;
use Test::More 'no_plan';

my $input_file = 'test.cfg';

my %data = (
    # Default section...
    '' => {
        'def1'     => 'def val 1',
        'def 2'    => 'def val 2',
        'def 3 ml' => "def val 3\nacross several\n   lines",
        'def 3'    => 'def val 3',
        'def 4'    => 'def val 4',
    },

    # Named section...
    'Named' => {
        'hi there' => q{What's your name???},
        'list'     => [qw(a list of values), 'all different'],
    },

    # Complex named section...
    'Complex named!!!' => {
        123456789 => 'zero',
        '%^$%$#%' => 'curses',
    },
);

my %config;

ok eval{ read_config $input_file => %config }    => 'Read succeeded';
diag( $@ ) if $@;

is_deeply \%data, \%config                       => 'Data correct';

$config{Extra}{'key 1'} = 'extra key 1';
push @{$config{Named}{list}}, 'an extra line';

ok eval{ write_config %config }                  => 'Write succeeded';

ok open(my $fh, '<', $input_file)                => 'File opened';

ok my @config = <$fh>                            => 'File read';

ok my @extra = <DATA>                            => 'DATA loaded';

is_deeply [@extra[-4..-1]], [@config[-4..-1]]    => 'Extra content correct';

__DATA__
[Extra]

key 1: extra key 1