Dpkg
view release on metacpan or search on metacpan
t/Dpkg_Control_Fields.t view on Meta::CPAN
Vcs-Bzr
Vcs-Cvs
Vcs-Darcs
Vcs-Git
Vcs-Hg
Vcs-Mtn
Vcs-Svn
);
my @test_fields = qw(
Testsuite
Testsuite-Triggers
);
my %fields = (
CTRL_TMPL_SRC() => {
name => 'debian/control source stanza',
fields => [
qw(
Source
Section
Priority
Maintainer
Uploaders
Origin
Bugs
),
@vcs_fields,
qw(
Homepage
Standards-Version
Rules-Requires-Root
),
@src_dep_fields,
@test_fields,
qw(
Description
),
],
},
CTRL_TMPL_PKG() => {
name => 'debian/control binary stanza',
fields => [
qw(
Package
Package-Type
Section
Priority
Architecture
Subarchitecture
Multi-Arch
Essential
Protected
Build-Essential
Build-Profiles
Built-For-Profiles
Kernel-Version
),
@bin_dep_fields,
qw(
Homepage
Installer-Menu-Item
Task
Tag
Description
),
],
},
CTRL_DSC() => {
name => '.dsc',
fields => [
qw(
Format
Source
Binary
Architecture
Version
Origin
Maintainer
Uploaders
Homepage
Description
Standards-Version
),
@vcs_fields,
@test_fields,
@src_dep_fields,
qw(
Package-List
),
@src_files,
],
},
CTRL_DEB() => {
name => 'DEBIAN/control',
fields => [
qw(
Package
Package-Type
Source
Version
Kernel-Version
Built-For-Profiles
Auto-Built-Package
Architecture
Subarchitecture
Installer-Menu-Item
Build-Essential
Essential
Protected
Origin
Bugs
Maintainer
Installed-Size
),
@bin_dep_fields,
qw(
Section
Priority
Multi-Arch
Homepage
Description
Tag
Task
),
],
},
CTRL_REPO_SRC() => {
name => 'Sources',
fields => [
qw(
Format
Package
Binary
Architecture
Version
Priority
Section
Origin
Maintainer
Uploaders
Homepage
Description
Standards-Version
),
@vcs_fields,
@test_fields,
@src_dep_fields,
qw(
Package-List
Directory
),
@src_files,
],
},
CTRL_REPO_PKG() => {
name => 'Packages',
fields => [
qw(
Package
Package-Type
Source
Version
Kernel-Version
Built-For-Profiles
Auto-Built-Package
Architecture
Subarchitecture
Installer-Menu-Item
Build-Essential
Essential
Protected
Origin
Bugs
Maintainer
Installed-Size
),
@bin_dep_fields,
@bin_files,
qw(
Section
Priority
Multi-Arch
Homepage
Description
Tag
Task
),
],
},
CTRL_REPO_RELEASE() => {
name => 'Release',
fields => [
qw(
Origin
Label
Suite
Version
Codename
Changelogs
Date
Valid-Until
NotAutomatic
ButAutomaticUpgrades
Acquire-By-Hash
No-Support-for-Architecture-all
Architectures
Components
Description
),
@bin_checksums,
],
},
CTRL_CHANGELOG() => {
name => 'debian/changelog',
fields => [
qw(
Source
Binary-Only
Version
Distribution
Urgency
Maintainer
Timestamp
Date
Closes
Changes
),
],
t/Dpkg_Control_Fields.t view on Meta::CPAN
Distribution
Urgency
Maintainer
Changed-By
Description
Closes
Changes
),
@src_files,
],
},
CTRL_FILE_VENDOR() => {
name => 'dpkg origin',
fields => [
qw(
Vendor
Vendor-Url
Bugs
Parent
),
],
},
CTRL_FILE_STATUS() => {
name => 'dpkg status',
fields => [
qw(
Package
Essential
Protected
Status
Priority
Section
Installed-Size
Origin
Maintainer
Bugs
Architecture
Multi-Arch
Source
Version
Config-Version
Replaces
Provides
Depends
Pre-Depends
Recommends
Suggests
Breaks
Conflicts
Enhances
Conffiles
Description
Triggers-Pending
Triggers-Awaited
Auto-Built-Package
Build-Essential
Built-For-Profiles
Built-Using
Static-Built-Using
Homepage
Installer-Menu-Item
Kernel-Version
Package-Type
Subarchitecture
Tag
Task
),
],
},
);
is_deeply([ field_list_src_dep() ],
[ @src_dep_fields ],
'List of build dependencies');
is_deeply([ field_list_pkg_dep() ],
[ @bin_dep_fields ],
'List of build dependencies');
is(field_get_default_value('Source'), undef,
'no default value for Source field');
is(field_get_default_value('Section'), 'unknown',
'default value for Section field');
is(field_get_default_value('Priority'), 'optional',
'default value for Priority field');
is(field_capitalize('invented-field'), 'Invented-Field',
'Field Invented-Field capitalization');
ok(! field_is_official('invented-field'),
'Field Invented-Field is not official');
my %known_fields;
foreach my $type (sort keys %fields) {
if (not $fields{$type}->{unordered}) {
is_deeply([ field_ordered_list($type) ], $fields{$type}->{fields},
"List of $fields{$type}->{name} fields");
}
foreach my $field (@{$fields{$type}->{fields}}) {
$known_fields{$field} = 1;
}
}
foreach my $field (sort keys %known_fields) {
is(field_capitalize($field), $field, "Field $field capitalization");
is(field_capitalize(lc $field), $field, "Field lc($field) capitalization");
is(field_capitalize(uc $field), $field, "Field uc($field) capitalization");
ok(field_is_official($field), "Field $field is official");
ok(field_is_official(lc $field), "Field lc($field) is official");
ok(field_is_official(uc $field), "Field uc($field) is official");
}
foreach my $type (sort keys %fields) {
my %allowed_fields = map { $_ => 1 } @{$fields{$type}->{fields}};
foreach my $field (sort keys %known_fields) {
if ($allowed_fields{$field}) {
ok(field_is_allowed_in($field, $type),
"Field $field allowed for type $fields{$type}->{name}");
} else {
ok(! field_is_allowed_in($field, $type),
( run in 2.435 seconds using v1.01-cache-2.11-cpan-39bf76dae61 )