mirror of
https://salsa.debian.org/freeipa-team/freeipa.git
synced 2026-11-02 20:30:26 -06:00
extdom: add add_err_msg() with test
Reviewed-By: Jakub Hrozek <jhrozek@redhat.com>
This commit is contained in:
1 parent
5bf0592505
commit
02bd676939
3 files changed
+67
No files matched your search
@@ -185,4 +185,5 @@ int getgrnam_r_wrapper(size_t buf_max, const char *name,
|
||||
struct group *grp, char **_buf, size_t *_buf_len);
|
||||
int getgrgid_r_wrapper(size_t buf_max, gid_t gid,
|
||||
struct group *grp, char **_buf, size_t *_buf_len);
|
||||
void set_err_msg(struct extdom_req *req, const char *format, ...);
|
||||
#endif /* _IPA_EXTDOM_H_ */
|
||||
@@ -213,6 +213,47 @@ void test_getgrgid_r_wrapper(void **state)
|
||||
free(buf);
|
||||
}
|
||||
|
||||
void extdom_req_setup(void **state)
|
||||
{
|
||||
struct extdom_req *req;
|
||||
|
||||
req = calloc(sizeof(struct extdom_req), 1);
|
||||
assert_non_null(req);
|
||||
|
||||
*state = req;
|
||||
}
|
||||
|
||||
void extdom_req_teardown(void **state)
|
||||
{
|
||||
struct extdom_req *req;
|
||||
|
||||
req = (struct extdom_req *) *state;
|
||||
|
||||
free_req_data(req);
|
||||
}
|
||||
|
||||
void test_set_err_msg(void **state)
|
||||
{
|
||||
struct extdom_req *req;
|
||||
|
||||
req = (struct extdom_req *) *state;
|
||||
assert_null(req->err_msg);
|
||||
|
||||
set_err_msg(NULL, NULL);
|
||||
assert_null(req->err_msg);
|
||||
|
||||
set_err_msg(req, NULL);
|
||||
assert_null(req->err_msg);
|
||||
|
||||
set_err_msg(req, "Test [%s][%d].", "ABCD", 1234);
|
||||
assert_non_null(req->err_msg);
|
||||
assert_string_equal(req->err_msg, "Test [ABCD][1234].");
|
||||
|
||||
set_err_msg(req, "2nd Test [%s][%d].", "ABCD", 1234);
|
||||
assert_non_null(req->err_msg);
|
||||
assert_string_equal(req->err_msg, "Test [ABCD][1234].");
|
||||
}
|
||||
|
||||
int main(int argc, const char *argv[])
|
||||
{
|
||||
const UnitTest tests[] = {
|
||||
@@ -220,6 +261,8 @@ int main(int argc, const char *argv[])
|
||||
unit_test(test_getpwuid_r_wrapper),
|
||||
unit_test(test_getgrnam_r_wrapper),
|
||||
unit_test(test_getgrgid_r_wrapper),
|
||||
unit_test_setup_teardown(test_set_err_msg,
|
||||
extdom_req_setup, extdom_req_teardown),
|
||||
};
|
||||
|
||||
return run_tests(tests);
|
||||
|
||||
@@ -229,6 +229,29 @@ done:
|
||||
return ret;
|
||||
}
|
||||
|
||||
void set_err_msg(struct extdom_req *req, const char *format, ...)
|
||||
{
|
||||
int ret;
|
||||
va_list ap;
|
||||
|
||||
if (req == NULL) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (format == NULL || req->err_msg != NULL) {
|
||||
/* Do not override an existing error message. */
|
||||
return;
|
||||
}
|
||||
va_start(ap, format);
|
||||
|
||||
ret = vasprintf(&req->err_msg, format, ap);
|
||||
if (ret == -1) {
|
||||
req->err_msg = strdup("vasprintf failed.\n");
|
||||
}
|
||||
|
||||
va_end(ap);
|
||||
}
|
||||
|
||||
int parse_request_data(struct berval *req_val, struct extdom_req **_req)
|
||||
{
|
||||
BerElement *ber = NULL;
|
||||
|
||||
Reference in new issue
Block a user