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 )