summaryrefslogtreecommitdiffstats
path: root/test/check_dmidecode.pl
diff options
context:
space:
mode:
Diffstat (limited to 'test/check_dmidecode.pl')
-rwxr-xr-xtest/check_dmidecode.pl27
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;
+ }
+}