diff options
author | Andreas Schneider <asn@samba.org> | 2020-09-01 13:01:56 +0200 |
---|---|---|
committer | Andrew Bartlett <abartlet@samba.org> | 2021-04-28 03:43:34 +0000 |
commit | 5a751ea55e74528e32a6b8dd356f6fe8683f5210 (patch) | |
tree | 023fb0ed1d3e2c79de07b53b9f266b2cc0e698e5 /auth | |
parent | 521f77c6671a0a088dedcdcafd264690c123b0b3 (diff) | |
download | samba-5a751ea55e74528e32a6b8dd356f6fe8683f5210.tar.gz |
auth:creds:tests: Add test for cli_credentials_set_kerberos_state()
Signed-off-by: Andreas Schneider <asn@samba.org>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
Diffstat (limited to 'auth')
-rw-r--r-- | auth/credentials/tests/test_creds.c | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/auth/credentials/tests/test_creds.c b/auth/credentials/tests/test_creds.c index f58b11112ea..fac8fa62de8 100644 --- a/auth/credentials/tests/test_creds.c +++ b/auth/credentials/tests/test_creds.c @@ -200,6 +200,47 @@ static void torture_creds_parse_string(void **state) assert_int_equal(creds->password_obtained, CRED_SPECIFIED); } +static void torture_creds_krb5_state(void **state) +{ + TALLOC_CTX *mem_ctx = *state; + struct cli_credentials *creds = NULL; + struct loadparm_context *lp_ctx = NULL; + bool ok; + + lp_ctx = loadparm_init_global(true); + assert_non_null(lp_ctx); + + creds = cli_credentials_init(mem_ctx); + assert_non_null(creds); + assert_int_equal(creds->kerberos_state_obtained, CRED_UNINITIALISED); + assert_int_equal(creds->kerberos_state, CRED_USE_KERBEROS_DESIRED); + + cli_credentials_set_conf(creds, lp_ctx); + assert_int_equal(creds->kerberos_state_obtained, CRED_SMB_CONF); + assert_int_equal(creds->kerberos_state, CRED_USE_KERBEROS_DESIRED); + + cli_credentials_guess(creds, lp_ctx); + assert_int_equal(creds->kerberos_state_obtained, CRED_SMB_CONF); + assert_int_equal(creds->kerberos_state, CRED_USE_KERBEROS_DESIRED); + assert_int_equal(creds->ccache_obtained, CRED_GUESS_FILE); + assert_non_null(creds->ccache); + + ok = cli_credentials_set_kerberos_state(creds, + CRED_USE_KERBEROS_REQUIRED, + CRED_SPECIFIED); + assert_true(ok); + assert_int_equal(creds->kerberos_state_obtained, CRED_SPECIFIED); + assert_int_equal(creds->kerberos_state, CRED_USE_KERBEROS_REQUIRED); + + ok = cli_credentials_set_kerberos_state(creds, + CRED_USE_KERBEROS_DISABLED, + CRED_SMB_CONF); + assert_false(ok); + assert_int_equal(creds->kerberos_state_obtained, CRED_SPECIFIED); + assert_int_equal(creds->kerberos_state, CRED_USE_KERBEROS_REQUIRED); + +} + int main(int argc, char *argv[]) { int rc; @@ -209,6 +250,7 @@ int main(int argc, char *argv[]) cmocka_unit_test(torture_creds_guess), cmocka_unit_test(torture_creds_anon_guess), cmocka_unit_test(torture_creds_parse_string), + cmocka_unit_test(torture_creds_krb5_state), }; if (argc == 2) { |