File: 04_source.t

package info (click to toggle)
libapt-pkg-perl 0.1.43
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 316 kB
  • sloc: perl: 1,285; ansic: 201; makefile: 3
file content (98 lines) | stat: -rw-r--r-- 1,984 bytes parent folder | download | duplicates (4)
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
#!/usr/bin/perl

# AptPkg::Source tests

BEGIN { print "1..15\n" }

use AptPkg::Config '$_config';
use AptPkg::Source;

$ENV{APT_CONFIG} = 't/cache/etc/apt.conf';

$_config->init;
$_config->{quiet} = 0;

print "ok 1\n";

my $src = AptPkg::Source->new;

# cache created
unless ($src)
{
    print "not ok 2\n";
    print "ok $_ # skip\n" for 3..15;
    exit;
}

sub check
{
    my ($test, $t) = @_;
    print 'not ' unless $t;
    print "ok $test\n";
}

# package "a" exists
my $a = $src->{a};
if ($a and @$a)
{
    print "ok 2\n";

    check 3, @$a == 1;

    $a = $a->[0];
    check 4, $a->{Package} eq 'a';
    check 5, $a->{Section} eq 'test';
    check 6, $a->{Version} eq '0.1';
    check 7, $a->{AsStr} =~ /^Package:\s+a$/m && $a->{AsStr} =~ /^Binary:\s+a$/m;
    if ($a->{Binaries} and ref $a->{Binaries} eq 'ARRAY')
    {
	check 8, "@{$a->{Binaries}}" eq 'a';
    }
    else
    {
	print "not ok 8 # no binaries\n";
    }

    if ($a->{BuildDepends} and ref $a->{BuildDepends} eq 'HASH'
	and my $b = $a->{BuildDepends}{'Build-Depends'})
    {
	check  9, $b->[0][0] eq 'b';
	check 10, $b->[0][1] == AptPkg::Dep::GreaterEq;
	check 11, $b->[0][2] eq '0.2-42';
    }
    else
    {
	print "not ok 9 # build depends\n";
	print "ok $_ # skip\n" for 10..11;
    }

    if ($a->{Files} and ref $a->{Files} eq 'ARRAY')
    {
	if (my ($dsc) = grep $_->{Type} eq 'dsc', @{$a->{Files}})
	{
	    check 12, $dsc->{ArchiveURI} =~ m!pool/main/a/a/a_0\.1\.dsc$!;
	    check 13, $dsc->{MD5Hash} eq '8202ae7d918948c192bdc0f183ab26ca';
	}
	else
	{
	    print "not ok 12 # no dsc\n";
	    print "ok 13 # skip\n";
	}

	if (my ($tgz) = grep $_->{Type} eq 'tar', @{$a->{Files}})
	{
	    check 14, $tgz->{ArchiveURI} =~ m!pool/main/a/a/a_0\.1\.tar\.gz$!;
	    check 15, $tgz->{MD5Hash} eq 'a54a02be45314a8eea38058b9bbea7da';
	}
	else
	{
	    print "not ok 14 # no tar\n";
	    print "ok 15 # skip\n";
	}
    }
}
else
{
    print "not ok 2 # source a missing\n";
    print "ok $_ # skip\n" for 3..15;
}