pw: fix the checks in boolean_str() after r326738. Add related test

cases for `pw useradd -D -w`.

PR:		231649
Reviewed by:	eugen
Approved by:	kib (mentor)
Differential Revision:	https://reviews.freebsd.org/D17299
This commit is contained in:
Yuri Pankov 2018-10-21 14:23:56 +00:00
parent adc7bb2237
commit ea7fdebe80
2 changed files with 29 additions and 5 deletions

View File

@ -221,12 +221,14 @@ passwd_val(char const * str, int dflt)
char const *
boolean_str(int val)
{
if (val == -1)
return "random";
else if (val == -2)
return "none";
if (val == P_NO)
return (boolfalse[0]);
else if (val == P_RANDOM)
return ("random");
else if (val == P_NONE)
return ("none");
else
return val ? booltrue[0] : boolfalse[0];
return (booltrue[0]);
}
char *

View File

@ -421,6 +421,7 @@ user_add_with_pw_conf_body()
atf_check -s exit:0 \
${PW} useradd foo -C ${HOME}/pw.conf
}
atf_test_case user_add_defaultgroup
user_add_defaultgroup_body()
{
@ -435,6 +436,25 @@ user_add_defaultgroup_body()
${PW} usershow foo
}
atf_test_case user_add_conf_defaultpasswd
user_add_conf_defaultpasswd_body()
{
populate_etc_skel
atf_check -s exit:0 ${PW} useradd -D -w no
atf_check -o inline:"defaultpasswd = \"no\"\n" \
grep defaultpasswd ${HOME}/pw.conf
atf_check -s exit:0 ${PW} useradd -D -w none
atf_check -o inline:"defaultpasswd = \"none\"\n" \
grep defaultpasswd ${HOME}/pw.conf
atf_check -s exit:0 ${PW} useradd -D -w random
atf_check -o inline:"defaultpasswd = \"random\"\n" \
grep defaultpasswd ${HOME}/pw.conf
atf_check -s exit:0 ${PW} useradd -D -w yes
atf_check -o inline:"defaultpasswd = \"yes\"\n" \
grep defaultpasswd ${HOME}/pw.conf
}
atf_init_test_cases() {
atf_add_test_case user_add
atf_add_test_case user_add_noupdate
@ -472,4 +492,6 @@ atf_init_test_cases() {
atf_add_test_case user_add_w_yes
atf_add_test_case user_add_with_pw_conf
atf_add_test_case user_add_defaultgroup
atf_add_test_case user_add_conf_defaultpasswd
}