| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091 |
- # -*- mode: cperl;-*-
- use Test::More tests => 26;
- use strict;
- use warnings;
- use Dpkg qw($version);
- use Dpkg::Arch qw(get_host_arch);
- use_ok('Dpkg::Substvars');
- my $srcdir = $ENV{srcdir} || '.';
- $srcdir .= '/t/750_Dpkg_Substvars';
- my $s = Dpkg::Substvars->new();
- $s->parse("$srcdir/substvars1");
- # simple value tests
- is($s->get('var1'), 'Some value', 'var1');
- is($s->get('var2'), 'Some other value', 'var2');
- is($s->get('var3'), 'Yet another value', 'var3');
- is($s->get('var4'), undef, 'no var4');
- # overriding
- $s->set('var1', 'New value');
- is($s->get('var1'), 'New value','var1 updated');
- # deleting
- $s->delete('var3');
- is($s->get('var3'), undef, 'var3 deleted');
- # default variables
- is($s->get('Newline'), "\n", 'newline');
- is($s->get('Space'), " ", 'space');
- is($s->get('Tab'), "\t", 'tab');
- is($s->get('dpkg:Version'), $version, 'dpkg version 1');
- # special variables
- is($s->get('Arch'), undef, 'no arch');
- $s->set_arch_substvars();
- is($s->get('Arch'), get_host_arch(),'arch');
- is($s->get($_), undef, 'no ' . $_) for qw/binary:Version source:Version source:Upstream-Version/;
- $s->set_version_substvars("1:2.3.4~5-6.7.8~nmu9+b0");
- is($s->get("binary:Version"), "1:2.3.4~5-6.7.8~nmu9+b0", "binary:Version");
- is($s->get("source:Version"), "1:2.3.4~5-6.7.8~nmu9", "source:Version");
- is($s->get("source:Upstream-Version"), "1:2.3.4~5", "source:Upstream-Version");
- # Replace stuff
- is($s->substvars('This is a string ${var1} with variables ${binary:Version}'),
- "This is a string New value with variables 1:2.3.4~5-6.7.8~nmu9+b0",
- "substvars simple");
- my $output;
- $SIG{'__WARN__'} = sub { $output .= $_[0] };
- is($s->substvars('This is a string with unknown variable ${blubb}'),
- "This is a string with unknown variable ",
- "substvars missing");
- delete $SIG{'__WARN__'};
- is($output, '750_Dpkg_Substvars.t: warning: unknown substitution variable ${blubb}'."\n"
- , 'missing variables warning');
- # Recursive replace
- $s->set("rvar", 'recursive ${var1}');
- is($s->substvars('This is a string with ${rvar}'),
- "This is a string with recursive New value",
- "substvars recursive");
- # Strange input
- is($s->substvars('Nothing to $ ${substitute here}, is it ${}?, it ${is'),
- 'Nothing to $ ${substitute here}, is it ${}?, it ${is',
- "substvars strange");
- # Warnings about unused variables
- $output = '';
- $SIG{'__WARN__'} = sub { $output .= $_[0] };
- $s->warn_about_unused();
- delete $SIG{'__WARN__'};
- is($output, "750_Dpkg_Substvars.t: warning: unused substitution variable \${var2}\n",
- , 'unused variables warnings');
- # Disable warnings for a certain variable
- $s->no_warn('var2');
- $output = '';
- $SIG{'__WARN__'} = sub { $output .= $_[0] };
- $s->warn_about_unused();
- delete $SIG{'__WARN__'};
- is($output, '', 'disabled unused variables warnings');
|