File: alien_build_interpolate_default.t

package info (click to toggle)
libalien-build-perl 2.84-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 3,116 kB
  • sloc: perl: 10,350; ansic: 134; sh: 66; makefile: 2
file content (103 lines) | stat: -rw-r--r-- 1,792 bytes parent folder | download
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
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
use 5.008004;
use Test2::V0 -no_srand => 1;
use Alien::Build::Interpolate::Default;
use lib 'corpus/lib';

subtest 'basic usage' => sub {

  my $intr = Alien::Build::Interpolate::Default->new;
  isa_ok $intr, 'Alien::Build::Interpolate';

  if(eval { require YAML })
  {
    note YAML::Dump($intr);
  }
  else
  {
    require Data::Dumper;
    note Data::Dumper::Dumper($intr);
  }

};

subtest 'cwd' => sub {

  my $intr = Alien::Build::Interpolate::Default->new;

  my $val = $intr->interpolate('%{cwd}');

  ok $val, "%{cwd} is okay";
  note "val = $val";

};

subtest 'mkdir_deep' => sub {

  local $Alien::Build::VERSION = '1.04';

  my $intr = Alien::Build::Interpolate::Default->new;

  my $val = $intr->interpolate('%{mkdir_deep} foo');

  my $expected = $^O eq 'MSWin32' ? 'md foo' : 'mkdir -p foo';

  is($val, $expected);
};

subtest 'make_path' => sub {

  local $Alien::Build::VERSION = '1.05';

  my $intr = Alien::Build::Interpolate::Default->new;

  my $val = $intr->interpolate('%{make_path} foo');

  my $expected = $^O eq 'MSWin32' ? 'md foo' : 'mkdir -p foo';

  is($val, $expected);
};

subtest dynamic => sub {

  my %which;

  my $mock = mock 'Alien::Build::Interpolate::Default' => (
    override => [
      which => sub { my $command = shift; $which{$command} },
    ],
  );

  subtest 'have bison' => sub {

    $which{bison} = '/usr/bin/bison';

    my $intr = Alien::Build::Interpolate::Default->new;

    is
      [$intr->requires('%{bison}')],
      []
    ;

    is
      $intr->interpolate('-%{bison}-'),
      '-bison-',
    ;

  };

  subtest 'no bison' => sub {

    delete $which{bison};

    my $intr = Alien::Build::Interpolate::Default->new;

    is
      [$intr->requires('%{bison}')],
      [ 'Alien::bison' => '0.17' ]
    ;

  };

};

done_testing;