aboutsummaryrefslogtreecommitdiffstats
path: root/README.txt
blob: b32f970ef8ec74799a09a9d8086852477f50acf5 (plain)
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
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
-----

    $ su
    # perl ./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

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