File: 01-script_detailed.t

package info (click to toggle)
libpkgconfig-perl 0.26026-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 2,912 kB
  • sloc: ansic: 6,120; perl: 1,922; makefile: 4; sh: 3
file content (45 lines) | stat: -rw-r--r-- 1,780 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
use strict;
use warnings;
use Test::More;
use FindBin;
use lib $FindBin::Bin;
use PkgConfigTest;

run_common("glib-2.0"); ok($RV == 0, "package name exists");

run_common(qw(--exists glib-2.0)); ok($RV == 0, "package name (--exists)");

run_common(qw(--libs glib-2.0)); like($S, qr/-lglib-2\.0/, "Got expected libs");
ok($S !~ /-L/, "No -L directive for standard search path");

run_common(qw(--cflags glib-2.0));
expect_flags("-I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include",
             "Got expected include flags");

if (eval { symlink("",""); 1 }) {
  # symlink to simulate place-with-space
  require File::Temp;
  require File::Spec;
  require Text::ParseWords;
  my $dir = File::Temp::tempdir( CLEANUP => 1 );
  my $sub = File::Spec->catdir($dir, 'in space');
  my $exp_stub = "-I".File::Spec->rel2abs($sub)."/../../include";
  $exp_stub =~ s|\\|/|g; # standard behaviour of this module
  symlink File::Spec->rel2abs(File::Spec->catdir(qw(t data strawberry c lib pkgconfig))), $sub;
  local $ENV{PKG_CONFIG_PATH} = $sub;
  require PkgConfig; # after the environment variable is set
  for (['freetype2','/freetype2'], ['gsl',''], ['libxml-2.0','/libxml2'], ['libexslt',['','/libxml2']]) {
    my ($lib, $suffix) = @$_;
    run_common(qw(--cflags), $lib);
    chomp(my $out = $PkgConfigTest::S);
    like $out, qr/^"/, "$lib cflags should be quote-protected to survive make";
    ($out) = Text::ParseWords::shellwords($out);
    is $out, $exp_stub.(ref $suffix ? $suffix->[0] : $suffix), "$lib survived being in space";
    my $pkg = PkgConfig->find($lib);
    my $arr = [$pkg->get_cflags];
    my $exp = ref $suffix ? [map "$exp_stub$_", @$suffix] : ["$exp_stub$suffix"];
    is_deeply $arr, $exp, "$lib get_cflags" or diag explain [$arr,$exp];
  }
}

done_testing();