Improve handling with system state

- Always unlink $cmd after exit via END block.
- The tests don't function well if kern.geom.debugflags != 0. Save debugflags,
  then restore them at the end of the test.

MFC after:	1 month
Sponsored by:	Dell EMC Isilon
This commit is contained in:
Enji Cooper 2017-06-10 20:56:31 +00:00
parent 990e7dcfdc
commit 22184bfa63

View File

@ -144,7 +144,17 @@ my $out = basename($cmd) . ".out";
# Make sure we have permission to use gctl...
if (`$cmd` =~ "^FAIL Permission denied") {
print "1..0 # SKIP insufficient permissions\n";
unlink $cmd;
exit 0;
}
my $debugflags_oid = 'kern.geom.debugflags';
chomp(my $old_geom_debugflags = `sysctl -n $debugflags_oid`);
if ($? != 0) {
print "1..0 # SKIP could not query $debugflags_oid\n";
exit 0;
}
if (system("sysctl $debugflags_oid=0") != 0) {
print "1..0 # SKIP could not set $debugflags_oid=0\n";
exit 0;
}
@ -227,4 +237,7 @@ foreach my $key (sort keys %steps) {
}
$nr += 1;
}
exit 0;
END {
system("sysctl $debugflags_oid=$old_geom_debugflags");
unlink($cmd);
}