diff --git a/tests/base_services_start.pm b/tests/base_services_start.pm index 2c5360ee..bfc8134f 100644 --- a/tests/base_services_start.pm +++ b/tests/base_services_start.pm @@ -6,11 +6,19 @@ sub run { my $self = shift; # switch to TTY3 for both, graphical and console tests $self->root_console(tty=>3); - my $output = script_output 'systemctl --failed'; - if ($output =~ /1 loaded units/ && $output =~ /mcelog.service/) { + # dump the systemctl output + assert_script_run "systemctl --failed | tee /tmp/failed.txt"; + # if we have 0 failed services, we're good + eval "assert_script_run 'grep \"0 loaded units\" /tmp/failed.txt';"; + return unless $@; + # if only mcelog failed, that's a soft fail + eval "assert_script_run 'grep \"1 loaded units\" /tmp/failed.txt';"; + if ($@) { + die "More than one services failed to start"; + } + else { + assert_script_run "systemctl is-failed mcelog.service"; record_soft_failure; - } elsif (! $output =~ /0 loaded units/) { - die "Services other than mcelog failed to load"; } }