summaryrefslogtreecommitdiffstats
path: root/test/check_dmidecode.pl
blob: 53adb90dcb49dd26eec8ab34ccb52b217160da93 (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
#!/usr/bin/perl

use MDK::Common;

foreach my $file (glob("dmidecode.*")) {
    my %wanted = cat_($file) =~ /\(=> (\S+): (\S+)\)/g;

    my %got = map {
	s/\s*: .*//;
	/(\S+):(.*)/ ? ($1 => $2) : ();
    } `lspcidrake -p /dev/null -u /dev/null --dmidecode $file`;

    my @missing = difference2([ keys %wanted ], [ keys %got ]);
    if (@missing) {
	warn "for $file, missing: ", join(' ', @missing), "\n";
    }

    my @surprise = difference2([ keys %got ], [ keys %wanted ]);
    if (@surprise) {
	warn "for $file, surprise: ", join(' ', map { "$_ => $got{$_}" } @surprise), "\n";
    }

    my @bad = grep { $wanted{$_} ne $got{$_} } intersection([ keys %wanted ], [ keys %got ]);
    if (@bad) {
	warn "for $file, bad $_: $wanted{$_} != $got{$_}\n" foreach @bad;
    }
}