From f62549af9258df9cfaa1af41b41c9b2fbae85c6b Mon Sep 17 00:00:00 2001 From: Mikhail Novosyolov Date: Sat, 19 Jun 2021 14:42:27 +0300 Subject: [PATCH] make tests work, print all errors, not the first one, do not print config if there are errros --- back_pwquality.sh | 49 +++++++++++++++++++++--------------------- test_back_pwquality.sh | 32 ++++++++++++++++++--------- 2 files changed, 47 insertions(+), 34 deletions(-) diff --git a/back_pwquality.sh b/back_pwquality.sh index a6d5d30..bd54a29 100644 --- a/back_pwquality.sh +++ b/back_pwquality.sh @@ -4,6 +4,7 @@ set -e source common.sh _mk_pwquality_conf() { + local failed=0 local difok=1 \ minlen=8 \ dcredit=0 \ @@ -27,105 +28,105 @@ _mk_pwquality_conf() { while [ -n "$1" ]; do case "$1" in --difok) shift; - _check_argument_is_number "$1" "--difok" + _check_argument_is_number "$1" "--difok" || failed=1 difok="$1" shift ;; --minlen) shift; - _check_argument_value "$1" "6" "--minlen" + _check_argument_value "$1" "6" "--minlen" || failed=1 minlen="$1" shift ;; --dcredit) shift; - _check_argument_is_number "$1" "--dcredit" "-" + _check_argument_is_number "$1" "--dcredit" "-" || failed=1 dcredit="$1" shift ;; --ucredit) shift; - _check_argument_is_number "$1" "--ucredit" "-" + _check_argument_is_number "$1" "--ucredit" "-" || failed=1 ucredit="$1" shift ;; --lcredit) shift; - _check_argument_is_number "$1" "--lcredit" "-" + _check_argument_is_number "$1" "--lcredit" "-" || failed=1 lcredit="$1" shift ;; --ocredit) shift; - _check_argument_is_number "$1" "--ocredit" "-" + _check_argument_is_number "$1" "--ocredit" "-" || failed=1 ocredit="$1" shift ;; --minclass) shift; - _check_argument_is_number "$1" "--minclass" + _check_argument_is_number "$1" "--minclass" || failed=1 minclass="$1" shift ;; --maxrepeat) shift; - _check_argument_is_number "$1" "--maxrepeat" + _check_argument_is_number "$1" "--maxrepeat" || failed=1 maxrepeat="$1" shift ;; --maxsequence) shift; - _check_argument_is_number "$1" "--maxsequence" + _check_argument_is_number "$1" "--maxsequence" || failed=1 maxsequence="$1" shift ;; --maxclassrepeat) shift; - _check_argument_is_number "$1" "--maxclassrepeat" + _check_argument_is_number "$1" "--maxclassrepeat" || failed=1 maxclassrepeat="$1" ;; --gecoscheck) shift; - _check_argument_is_number "$1" "--gecoscheck" + _check_argument_is_number "$1" "--gecoscheck" || failed=1 [[ "$1" =~ (0|1) ]] || error $"The received parameters are not correct. Expected %s, received %s" $"0 or 1" "$1" geoscheck="$1" shift ;; --dictcheck) shift; - _check_argument_is_number "$1" "--dictcheck" + _check_argument_is_number "$1" "--dictcheck" || failed=1 [[ "$1" =~ (0|1) ]] || error $"The received parameters are not correct. Expected %s, received %s" $"0 or 1" "$1" dickcheck="$1" shift ;; --usercheck) shift; - echo 1 - _check_argument_is_number "$1" "--usercheck" - echo 2 + _check_argument_is_number "$1" "--usercheck" || failed=1 [[ "$1" =~ (0|1) ]] || error $"The received parameters are not correct. Expected %s, received %s" $"0 or 1" "$1" - echo 3 usercheck="$1" - echo 4 shift ;; --usersubstr) shift; - _check_argument_is_number "$1" "--usersubstr" + _check_argument_is_number "$1" "--usersubstr" || failed=1 usersubstr="$1" shift ;; --enforcing) shift; - _check_argument_is_number "$1" "--enforcing" + _check_argument_is_number "$1" "--enforcing" || failed=1 [[ "$1" =~ (0|1) ]] || error $"The received parameters are not correct. Expected %s, received %s" $"0 or 1" "$1" enforcing="$1" shift ;; --retry) shift; - _check_argument_is_number "$1" "--retry" + _check_argument_is_number "$1" "--retry" || failed=1 shift ;; --enforce_for_root) shift; - _check_argument_is_number "$1" "--enforce_for_root" + _check_argument_is_number "$1" "--enforce_for_root" || failed=1 [[ "$1" =~ (0|1) ]] || error $"The received parameters are not correct. Expected %s, received %s" $"0 or 1" "$1" enforce_for_root="$1" shift ;; --local_users_only) shift; - _check_argument_is_number "$1" "--local_users_only" + _check_argument_is_number "$1" "--local_users_only" || failed=1 [[ "$1" =~ (0|1) ]] || error $"The received parameters are not correct. Expected %s, received %s" $"0 or 1" "$1" local_users_only="$1" shift ;; esac done + if [ "$failed" != 0 ]; then + error $"Errors occured when trying to understand how to configure auditd" + return 1 + fi cat </dev/null || failed="$((++failed))" -_mk_pwquality_conf --usercheck 1 1>/dev/null || failed="$((++failed))" -! _mk_pwquality_conf --enforcing 1 --retry --usersubstr 1>/dev/null || failed="$((++failed))" +_main(){ + if _mk_pwquality_conf --minclass STRING 1>/dev/null ; then + echo failed test 1 + failed="$((++failed))" + fi + _mk_pwquality_conf --usercheck 1 1>/dev/null || { echo failed test 2 && failed="$((++failed))" ;} + ! _mk_pwquality_conf --enforcing 1 --retry --usersubstr 1>/dev/null || { echo failed test 3 && failed="$((++failed))" ;} +} -echo "$failed" -exit "$failed" +_main