@@ -297,7 +297,7 @@ To run osstest in standalone mode:
curl
netcat
chiark-utils-bin
- libxml-libxml-perl libfile-fnmatch-perl
+ libxml-libxml-perl libfile-fnmatch-perl libdigest-sha-perl
dctrl-tools
libnet-snmp-perl (if you are going to use Masterswitch PDUs)
@@ -43,6 +43,7 @@ use DBI;
BEGIN { unshift @INC, qw(.); }
use Osstest;
use POSIX;
+use Digest::SHA qw(sha224_base64);
use Osstest::TestSupport;
tsreadconfig();
@@ -64,16 +65,18 @@ sub sharetype_add ($$) {
}
sub compute_test_sharetype () {
- $sharetype = "test-$flight";
+ my @runvartexts;
my %done;
foreach my $key (runvar_glob(@accessible_runvar_pats)) {
next if runvar_is_synth($key);
my $val = $r{$key};
next if $done{$key}++;
- $val =~ s{[^\"-\~]|\%}{ sprintf "%%%02x", ord $& }ge;
- $sharetype .= "!$key=$r{$key}";
+ $val =~ s{[^\!-\~]|\%}{ sprintf "%%%02x", ord $& }ge;
+ push @runvartexts, "$key=$r{$key}";
}
-
+ my $digest = sha224_base64("@runvartexts");
+ $sharetype = "test-$flight-$digest";
+ logm "share type $sharetype; hash is of: @runvartexts";
return $sharetype;
}