diff --git a/lib/anacondatest.pm b/lib/anacondatest.pm index ae5ea9b9..ef02d10d 100644 --- a/lib/anacondatest.pm +++ b/lib/anacondatest.pm @@ -36,21 +36,24 @@ sub post_fail_hook { if ($has_traceback) { # Upload Anaconda traceback logs - script_run "tar czf /tmp/anaconda_tb.tar.gz /tmp/anaconda-tb-*", 0; + script_run "tar czf /tmp/anaconda_tb.tar.gz /tmp/anaconda-tb-*"; upload_logs "/tmp/anaconda_tb.tar.gz"; } - # Upload all ABRT logs - script_run "tar czf /var/tmp/var_tmp.tar.gz /var/tmp", 0; - upload_logs "/var/tmp/var_tmp.tar.gz"; + # Upload all ABRT logs (if there are any) + unless (script_run 'test -n "$(ls -A /var/tmp)" && tar czf /var/tmp/var_tmp.tar.gz /var/tmp') { + upload_logs "/var/tmp/var_tmp.tar.gz"; + } # Upload /var/log - script_run "tar czf /tmp/var_log.tar.gz /var/log", 0; - upload_logs "/tmp/var_log.tar.gz"; + unless (script_run "tar czf /tmp/var_log.tar.gz /var/log") { + upload_logs "/tmp/var_log.tar.gz"; + } # Upload anaconda core dump, if there is one - script_run "ls /tmp/anaconda.core.* && tar czf /tmp/anaconda.core.tar.gz /tmp/anaconda.core.*", 0; - upload_logs "/tmp/anaconda.core.tar.gz", failok=>1; + unless (script_run "ls /tmp/anaconda.core.* && tar czf /tmp/anaconda.core.tar.gz /tmp/anaconda.core.*") { + upload_logs "/tmp/anaconda.core.tar.gz"; + } } sub root_console { diff --git a/lib/installedtest.pm b/lib/installedtest.pm index 852389e0..2a17dd1c 100644 --- a/lib/installedtest.pm +++ b/lib/installedtest.pm @@ -27,24 +27,21 @@ sub post_fail_hook { # We can't rely on tar being in minimal installs assert_script_run "dnf -y install tar", 180; - # If /var/tmp/abrt directory isn't empty (ls doesn't return empty string) - my $vartmp = script_output "ls /var/tmp/abrt"; - if ($vartmp ne '') { - # Upload /var/tmp ABRT logs - script_run "cd /var/tmp/abrt && tar czvf tmpabrt.tar.gz *", 0; + # Note: script_run returns the exit code, so the logic looks weird. + # We're testing that the directory exists and contains something. + unless (script_run 'test -n "$(ls -A /var/tmp/abrt)" && cd /var/tmp/abrt && tar czvf tmpabrt.tar.gz *') { upload_logs "/var/tmp/abrt/tmpabrt.tar.gz"; } - my $varspool = script_output "ls /var/spool/abrt"; - if ($varspool ne '') { - # Upload /var/spool ABRT logs - script_run "cd /var/spool/abrt && tar czvf spoolabrt.tar.gz *", 0; + + unless (script_run 'test -n "$(ls -A /var/spool/abrt)" && cd /var/spool/abrt && tar czvf spoolabrt.tar.gz *') { upload_logs "/var/spool/abrt/spoolabrt.tar.gz"; } # Upload /var/log # lastlog can mess up tar sometimes and it's not much use - script_run "tar czvf /tmp/var_log.tar.gz --exclude='lastlog' /var/log", 0; - upload_logs "/tmp/var_log.tar.gz"; + unless (script_run "tar czvf /tmp/var_log.tar.gz --exclude='lastlog' /var/log") { + upload_logs "/tmp/var_log.tar.gz"; + } } sub check_release {