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
|