aboutsummaryrefslogtreecommitdiffstats
Mageia ISO check script
=======================

Test suite for ISOs built for Mageia.
All ISOs should pass this test suite after being built, before being released.

 - License: GPL-2+
 - Authors:
   - Damien Lallement <dams@mageia.org>
   - Romain d'Alverny <rda@mageia.org>
 - Code: [svn://svn.mageia.org/svn/soft/isocheck](http://svnweb.mageia.org/soft/isocheck)
 - [Documentation](https://wiki.mageia.org/en/Isocheck)

Usage
-----

If packaged:

    $ su
    # isocheck path/to/your/Mageia-x-i586.iso
    ...logs...

If straight from source:

    $ su
    # perl -Ilib ./isocheck.pl path/to/your/Mageia-x-i586.iso
    ... logs ...

Returns 0 in case of success (and last line of log starts with "PASS").

Returns a positive integer otherwise (and last line of log starts with "FAIL").


Features
--------

It tests for:

 - availability of all components needed ((signed) checksums, indexes, lists),
 - ISO file name correctness,
 - file size according to its declaration,
 - MD5 and SHA1 checksums,
 - ISO headers correctness,
 - burnable, hybrid ISO,
 - depending on the type of image, it tests for the presence of autorun,
   correctly signed packages and various bits.


Requirements
------------

User running this script must be able to mount an ISO image.

Depends on:

 - cdrkit, cdrkit-isotools
 - gpg
 - Perl
   - File::Basename
   - MDK::Common
   - TAP::Harness
   - TAP::Parser::Aggregator;
   - Test::Most


TODO
----
 - fix t_install_iso tests (ids, idx, rpms, pubkey - especially cauldron/stable)
 - script should properly manage other types of ISOs:
   * separate tests that are generic from those that are Mageia-specific
   * move specific tests into t/{name}/*.t
 - script should be run by a non-root user that can sudo mount
 - check all RPM from list are on the ISO
 - check all excluded RPMS are not on the ISO
 - check pubkey on each media
 - check the Theme available on the ISO
 - check the mandriva-release version on the ISO
 - check DKMS are sync with kernel on ISO
 - check product.id on the ISO (vendor=Mandriva,distribution=Mandriva Linux,type=basic,version=Mandriva,branch=official,release=0.1,arch=x86_64,product=public
 - check releases_notes on the ISO
 - package it
 - wrap it to produce automatic reports after BCD
 - think of grepping the project source for TODO or FIXME too

Style
-----
 - 4 spaces indent, no tab