aboutsummaryrefslogtreecommitdiff
path: root/sbin/growfs
diff options
context:
space:
mode:
authorEnji Cooper <ngie@FreeBSD.org>2017-10-10 05:58:33 +0000
committerEnji Cooper <ngie@FreeBSD.org>2017-10-10 05:58:33 +0000
commit5b347b28cd121a5dbed849957c83090a6f1e4d6a (patch)
treeebce784e6ab271d12031f7ce9ae0fa367d0620b4 /sbin/growfs
parent2519dfc75dbf00d94d73768a322669d2a85e5a39 (diff)
downloadsrc-5b347b28cd121a5dbed849957c83090a6f1e4d6a.tar.gz
src-5b347b28cd121a5dbed849957c83090a6f1e4d6a.zip
Check the exit code from fsck_ffs instead of relying on MODIFIED being in the output
^/head@r323923 changed when MODIFIED is printed at exit. It's better to follow the documented way of determining whether or not a filesystem is clean per fsck_ffs, i.e., ensure that the exit code is either 0 or 7. The pass/fail determination is brittle prior to this commit, and ^/head@r323923 made the issue apparent -- thus this needs to be fixed independent of ^/head@r323923. PR: 222780 MFC after: 1 week MFC with: r323923 Reported by: Jenkins
Notes
Notes: svn path=/head/; revision=324478
Diffstat (limited to 'sbin/growfs')
-rwxr-xr-xsbin/growfs/tests/legacy_test.pl30
1 files changed, 21 insertions, 9 deletions
diff --git a/sbin/growfs/tests/legacy_test.pl b/sbin/growfs/tests/legacy_test.pl
index 727960290d1a..931a57b6dde4 100755
--- a/sbin/growfs/tests/legacy_test.pl
+++ b/sbin/growfs/tests/legacy_test.pl
@@ -2,6 +2,7 @@
use strict;
use warnings;
+use POSIX;
use Test::More tests => 19;
use Fcntl qw(:DEFAULT :seek);
@@ -11,6 +12,22 @@ use constant BLKS_PER_MB => 2048;
my $unit;
END { system "mdconfig -du$unit" if defined $unit };
+sub fsck_md {
+ my ($is_clean, $md);
+
+ $md = shift;
+
+ chomp(my @fsck_output = `fsck_ffs -Ffy ${md}a`);
+ $is_clean = WIFEXITED($?) &&
+ (WEXITSTATUS($?) == 0 || WEXITSTATUS($?) == 7);
+ ok($is_clean, "checking ${md}a's filesystem");
+ if ($is_clean) {
+ diag "filesystem reported clean";
+ } else {
+ diag "filesystem not reported clean: " . join("\n", @fsck_output);
+ }
+}
+
sub setsize {
my ($partszMB, $unitszMB) = @_;
@@ -46,9 +63,8 @@ SKIP: {
ok(setsize(10, 40), "Sized ${md}a to 10m");
system "newfs -O $type -U ${md}a >/dev/null";
is($?, 0, "Initialised the filesystem on ${md}a as UFS$type");
- chomp(my @out = `fsck -tufs -y ${md}a`);
- ok(!grep(/MODIFIED/, @out), "fsck says ${md}a is clean, " .
- scalar(@out) . " lines of output");
+
+ fsck_md($md);
}
extend20_zeroed: {
@@ -62,9 +78,7 @@ SKIP: {
fill(30 * BLKS_PER_MB - $unallocated, $unallocated, chr(0))
if $unallocated;
- chomp(my @out = `fsck -tufs -y ${md}a`);
- ok(!grep(/MODIFIED/, @out), "fsck says ${md}a is clean, " .
- scalar(@out) . " lines of output");
+ fsck_md($md);
}
extend30_garbaged: {
@@ -78,9 +92,7 @@ SKIP: {
fill(30 * BLKS_PER_MB - $unallocated, $unallocated, chr(0))
if $unallocated;
- chomp(my @out = `fsck -tufs -y ${md}a`);
- ok(!grep(/MODIFIED/, @out), "fsck says ${md}a is clean, " .
- scalar(@out) . " lines of output");
+ fsck_md($md);
}
}