diff options
Diffstat (limited to 'test/check_dmidecode.pl')
-rwxr-xr-x | test/check_dmidecode.pl | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/test/check_dmidecode.pl b/test/check_dmidecode.pl new file mode 100755 index 00000000..53adb90d --- /dev/null +++ b/test/check_dmidecode.pl @@ -0,0 +1,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; + } +} |