Skip to content

Commit e6bb65b

Browse files
adding bad function argument tests
1 parent 27c6b08 commit e6bb65b

1 file changed

Lines changed: 148 additions & 0 deletions

File tree

test/wh_test_auth.c

Lines changed: 148 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -338,6 +338,149 @@ static void _whTest_Auth_DeleteUserByName(whClientContext* client,
338338
}
339339
}
340340

341+
static int _whTest_Auth_BadArgs(void)
342+
{
343+
int rc = 0;
344+
int loggedIn = 1;
345+
whAuthContext ctx;
346+
whAuthConfig config;
347+
whAuthPermissions perms;
348+
whUserId user_id = WH_USER_ID_INVALID;
349+
350+
memset(&ctx, 0, sizeof(ctx));
351+
memset(&config, 0, sizeof(config));
352+
memset(&perms, 0, sizeof(perms));
353+
354+
WH_TEST_PRINT(" Test: Auth core bad args\n");
355+
rc = wh_Auth_Init(NULL, &config);
356+
WH_TEST_ASSERT_RETURN(rc == WH_ERROR_BADARGS);
357+
rc = wh_Auth_Init(&ctx, NULL);
358+
WH_TEST_ASSERT_RETURN(rc == WH_ERROR_BADARGS);
359+
360+
rc = wh_Auth_Cleanup(NULL);
361+
WH_TEST_ASSERT_RETURN(rc == WH_ERROR_BADARGS);
362+
rc = wh_Auth_Cleanup(&ctx);
363+
WH_TEST_ASSERT_RETURN(rc == WH_ERROR_BADARGS);
364+
365+
rc = wh_Auth_Login(NULL, 0, WH_AUTH_METHOD_PIN, "user", "pin", 3, &loggedIn);
366+
WH_TEST_ASSERT_RETURN(rc == WH_ERROR_BADARGS);
367+
rc = wh_Auth_Login(&ctx, 0, WH_AUTH_METHOD_PIN, "user", "pin", 3, NULL);
368+
WH_TEST_ASSERT_RETURN(rc == WH_ERROR_BADARGS);
369+
rc = wh_Auth_LoginRequest(NULL, 0, WH_AUTH_METHOD_PIN, "user", "pin", 3, &loggedIn);
370+
WH_TEST_ASSERT_RETURN(rc == WH_ERROR_BADARGS);
371+
rc = wh_Auth_LoginResponse(NULL, &loggedIn, &user_id, &perms);
372+
WH_TEST_ASSERT_RETURN(rc == WH_ERROR_BADARGS);
373+
374+
rc = wh_Auth_Logout(NULL, 1);
375+
WH_TEST_ASSERT_RETURN(rc == WH_ERROR_BADARGS);
376+
rc = wh_Auth_Logout(&ctx, 1);
377+
WH_TEST_ASSERT_RETURN(rc == WH_ERROR_BADARGS);
378+
379+
rc = wh_Auth_UserAdd(&ctx, "user", &user_id, perms, WH_AUTH_METHOD_PIN,
380+
"pin", 3);
381+
WH_TEST_ASSERT_RETURN(rc == WH_ERROR_BADARGS);
382+
rc = wh_Auth_UserDelete(&ctx, 1);
383+
WH_TEST_ASSERT_RETURN(rc == WH_ERROR_BADARGS);
384+
rc = wh_Auth_UserSetPermissions(&ctx, 1, perms);
385+
WH_TEST_ASSERT_RETURN(rc == WH_ERROR_BADARGS);
386+
rc = wh_Auth_UserGet(&ctx, "user", &user_id, &perms);
387+
WH_TEST_ASSERT_RETURN(rc == WH_ERROR_BADARGS);
388+
rc = wh_Auth_UserSetCredentials(&ctx, 1, WH_AUTH_METHOD_PIN,
389+
"pin", 3, "new", 3);
390+
WH_TEST_ASSERT_RETURN(rc == WH_ERROR_BADARGS);
391+
392+
WH_TEST_PRINT(" Test: Auth base bad args\n");
393+
rc = wh_AuthBase_Login(NULL, 0, WH_AUTH_METHOD_PIN,
394+
TEST_ADMIN_USERNAME, TEST_ADMIN_PIN, 4, NULL, &perms, &loggedIn);
395+
WH_TEST_ASSERT_RETURN(rc == WH_ERROR_BADARGS);
396+
rc = wh_AuthBase_Login(NULL, 0, WH_AUTH_METHOD_NONE, NULL, NULL, 0,
397+
&user_id, &perms, &loggedIn);
398+
WH_TEST_ASSERT_RETURN(rc == WH_ERROR_BADARGS);
399+
400+
rc = wh_AuthBase_Logout(NULL, 0, WH_USER_ID_INVALID);
401+
WH_TEST_ASSERT_RETURN(rc == WH_ERROR_BADARGS);
402+
rc = wh_AuthBase_Logout(NULL, 0, 999);
403+
WH_TEST_ASSERT_RETURN(rc == WH_ERROR_NOTFOUND);
404+
405+
rc = wh_AuthBase_CheckRequestAuthorization(NULL, WH_USER_ID_INVALID,
406+
WH_MESSAGE_GROUP_AUTH, WH_MESSAGE_AUTH_ACTION_LOGIN);
407+
WH_TEST_ASSERT_RETURN(rc == WH_ERROR_OK);
408+
rc = wh_AuthBase_CheckRequestAuthorization(NULL, WH_USER_ID_INVALID,
409+
WH_MESSAGE_GROUP_AUTH, WH_MESSAGE_AUTH_ACTION_LOGOUT);
410+
WH_TEST_ASSERT_RETURN(rc == WH_ERROR_ACCESS);
411+
rc = wh_AuthBase_CheckRequestAuthorization(NULL, WH_USER_ID_INVALID,
412+
WH_MESSAGE_GROUP_COMM, 0);
413+
WH_TEST_ASSERT_RETURN(rc == WH_ERROR_OK);
414+
415+
rc = wh_AuthBase_CheckKeyAuthorization(NULL, WH_USER_ID_INVALID, 1, 0);
416+
WH_TEST_ASSERT_RETURN(rc == WH_ERROR_ACCESS);
417+
418+
rc = wh_AuthBase_UserAdd(NULL, "baduser", &user_id, perms,
419+
WH_AUTH_METHOD_NONE, "x", 1);
420+
WH_TEST_ASSERT_RETURN(rc == WH_ERROR_BADARGS);
421+
rc = wh_AuthBase_UserDelete(NULL, 0, WH_USER_ID_INVALID);
422+
WH_TEST_ASSERT_RETURN(rc == WH_ERROR_NOTFOUND);
423+
rc = wh_AuthBase_UserSetPermissions(NULL, 0, WH_USER_ID_INVALID, perms);
424+
WH_TEST_ASSERT_RETURN(rc == WH_ERROR_NOTFOUND);
425+
rc = wh_AuthBase_UserSetCredentials(NULL, WH_USER_ID_INVALID,
426+
WH_AUTH_METHOD_PIN, NULL, 0, "new", 3);
427+
WH_TEST_ASSERT_RETURN(rc == WH_ERROR_BADARGS);
428+
rc = wh_AuthBase_UserGet(NULL, "missing", &user_id, &perms);
429+
WH_TEST_ASSERT_RETURN(rc == WH_ERROR_NOTFOUND);
430+
431+
return WH_TEST_SUCCESS;
432+
}
433+
434+
static int _whTest_Auth_MessageBadArgs(void)
435+
{
436+
int rc = 0;
437+
whMessageAuth_SimpleResponse simple = {0};
438+
whMessageAuth_LoginRequest login_hdr = {0};
439+
whMessageAuth_LoginRequest login_out = {0};
440+
whMessageAuth_UserAddRequest add_hdr = {0};
441+
whMessageAuth_UserAddRequest add_out = {0};
442+
whMessageAuth_UserSetCredentialsRequest set_hdr = {0};
443+
444+
WH_TEST_PRINT(" Test: Auth message bad args\n");
445+
rc = wh_MessageAuth_TranslateSimpleResponse(0, NULL, &simple);
446+
WH_TEST_ASSERT_RETURN(rc == WH_ERROR_BADARGS);
447+
rc = wh_MessageAuth_TranslateSimpleResponse(0, &simple, NULL);
448+
WH_TEST_ASSERT_RETURN(rc == WH_ERROR_BADARGS);
449+
450+
rc = wh_MessageAuth_TranslateLoginRequest(0, NULL, 0, &login_out, NULL);
451+
WH_TEST_ASSERT_RETURN(rc == WH_ERROR_BADARGS);
452+
rc = wh_MessageAuth_TranslateLoginRequest(0, &login_hdr, 0, &login_out, NULL);
453+
WH_TEST_ASSERT_RETURN(rc == WH_ERROR_BADARGS);
454+
455+
memset(&login_hdr, 0, sizeof(login_hdr));
456+
login_hdr.auth_data_len = (uint16_t)(WH_MESSAGE_AUTH_MAX_CREDENTIALS_LEN + 1);
457+
rc = wh_MessageAuth_TranslateLoginRequest(0, &login_hdr, sizeof(login_hdr),
458+
&login_out, NULL);
459+
WH_TEST_ASSERT_RETURN(rc == WH_ERROR_BADARGS);
460+
461+
rc = wh_MessageAuth_TranslateUserAddRequest(0, NULL, 0, &add_out, NULL);
462+
WH_TEST_ASSERT_RETURN(rc == WH_ERROR_BADARGS);
463+
464+
memset(&add_hdr, 0, sizeof(add_hdr));
465+
add_hdr.credentials_len = (uint16_t)(WH_MESSAGE_AUTH_MAX_CREDENTIALS_LEN + 1);
466+
rc = wh_MessageAuth_TranslateUserAddRequest(0, &add_hdr, sizeof(add_hdr),
467+
&add_out, NULL);
468+
WH_TEST_ASSERT_RETURN(rc == WH_ERROR_BUFFER_SIZE);
469+
470+
rc = wh_MessageAuth_TranslateUserSetCredentialsRequest(0, NULL, 0,
471+
&set_hdr, NULL, NULL);
472+
WH_TEST_ASSERT_RETURN(rc == WH_ERROR_BADARGS);
473+
474+
memset(&set_hdr, 0, sizeof(set_hdr));
475+
set_hdr.current_credentials_len = 4;
476+
set_hdr.new_credentials_len = 4;
477+
rc = wh_MessageAuth_TranslateUserSetCredentialsRequest(0, &set_hdr,
478+
sizeof(set_hdr), &set_hdr, NULL, NULL);
479+
WH_TEST_ASSERT_RETURN(rc == WH_ERROR_BADARGS);
480+
481+
return WH_TEST_SUCCESS;
482+
}
483+
341484
/* Logout Tests */
342485
int whTest_AuthLogout(whClientContext* client)
343486
{
@@ -1015,6 +1158,11 @@ int whTest_AuthTest(whClientContext* client_ctx)
10151158
{
10161159
WH_TEST_PRINT("Testing authentication functionality...\n");
10171160

1161+
WH_TEST_PRINT("Running auth bad-args tests...\n");
1162+
WH_TEST_RETURN_ON_FAIL(_whTest_Auth_BadArgs());
1163+
WH_TEST_PRINT("Running auth message bad-args tests...\n");
1164+
WH_TEST_RETURN_ON_FAIL(_whTest_Auth_MessageBadArgs());
1165+
10181166
/* Run authentication test groups */
10191167
WH_TEST_PRINT("Running logout tests...\n");
10201168
/* Verify client context is valid */

0 commit comments

Comments
 (0)