#!/bin/bash shellfu import jat shellfu import jat_dump shellfu import preupg shellfu import preupg_fupath shellfu import xcase T_MESSAGE= T_RISKTXT='Please, install all required packages (and binaries) and run preupg again to process check properly.' #shellcheck disable=SC2034 PREUPG__RULE=xccdf_preupg_rule_api_binary_req_check assert_irisknum() { jat__cmp -h "number of per-item risks is $1" \ "$(wc -l module.ini preupg_fupath RHEL6_7 module.ini jat__cmd -h "work around BZ#1368823" \ cp -ar RHEL6_7 RHEL6_7-backup PREUPG__UPATH="RHEL6_7/all-xccdf.xml" \ preupg__run1 preupg__get_messages > messages preupg__get_risks > risks grep 'HIGH: Binary .* is not installed' risks > irisks } xcase__test() { # # Do the work # local o_behavior=ok # behavior class local o_irisknum=0 # per-item risks for bin in "${bins[@]}" do case $bin in impossible) o_behavior=fail ((o_irisknum++)) ;; esac done case $o_behavior in ok) preupg__assert \ result "informational" \ -N risk.high "$T_RISKTXT" \ msg.info "$T_MESSAGE" assert_irisknum 0 ;; fail) preupg__assert \ result "needs_action" \ risk.high "$T_RISKTXT" \ -N msg.info "$T_MESSAGE" assert_irisknum $o_irisknum ;; esac } xcase__diag() { # # Burp up some diag # jat_dump__file module.ini risks messages irisks } xcase__cleanup() { # # Clean up after subtest # preupg__rmresult } xcase__run -v preupg__Cleanup