test-smtp-params.c revision 39bf54004e8ef15baa4c18c7969e87c51b8f197b
551aa6c36797ed720487f5974dcadabf19e6ff9fStephen Gallagher/* Copyright (c) 2013-2017 Dovecot authors, see the included COPYING file */
84ae5edab16ad6be5e3be956cb6fa031c1428eb5Stephen Gallagher { .localpart = "user+detail", .domain = NULL };
84ae5edab16ad6be5e3be956cb6fa031c1428eb5Stephen Gallagher { .localpart = "e=mc2", .domain = "example.com" };
551aa6c36797ed720487f5974dcadabf19e6ff9fStephen Gallagherstatic struct smtp_param test_params1[] = {
551aa6c36797ed720487f5974dcadabf19e6ff9fStephen Gallagherstatic struct smtp_param test_params2[] = {
551aa6c36797ed720487f5974dcadabf19e6ff9fStephen Gallagherstatic struct buffer test_params_buffer1 = {
cc98edd9479d4622634a1275c98058916c14059aStephen Gallagherstatic struct buffer test_params_buffer2 = {
1183d29d87c5c7439cf2364b7d7324d4a13b6e35Stephen Gallagher/* Valid mail params tests */
551aa6c36797ed720487f5974dcadabf19e6ff9fStephen Gallagherstatic const struct valid_mail_params_parse_test
551aa6c36797ed720487f5974dcadabf19e6ff9fStephen Gallagher .type = SMTP_PARAM_MAIL_BODY_TYPE_UNSPECIFIED,
551aa6c36797ed720487f5974dcadabf19e6ff9fStephen Gallagher .type = SMTP_PARAM_MAIL_BODY_TYPE_BINARYMIME,
551aa6c36797ed720487f5974dcadabf19e6ff9fStephen Gallagher .type = SMTP_PARAM_MAIL_BODY_TYPE_EXTENSION,
574a1c20f114851071ae74112b34488c3d1aeeb3Ondrej Kos /* <extensions> */
551aa6c36797ed720487f5974dcadabf19e6ff9fStephen Gallagherunsigned int valid_mail_params_parse_test_count =
551aa6c36797ed720487f5974dcadabf19e6ff9fStephen Gallagher N_ELEMENTS(valid_mail_params_parse_tests);
551aa6c36797ed720487f5974dcadabf19e6ff9fStephen Gallaghertest_smtp_mail_params_auth(const struct smtp_params_mail *test,
4d81fe27ced3d2e96866aeaf61661a925cb8edf1Jakub Hrozek test_out(t_strdup_printf("params.auth->localpart = %s",
4d81fe27ced3d2e96866aeaf61661a925cb8edf1Jakub Hrozek (parsed->auth->localpart == test->auth->localpart));
4d81fe27ced3d2e96866aeaf61661a925cb8edf1Jakub Hrozek test_out(t_strdup_printf("params.auth->localpart = \"%s\"",
4d81fe27ced3d2e96866aeaf61661a925cb8edf1Jakub Hrozek test_out(t_strdup_printf("params.auth->domain = %s",
f5b6f977d4144c28e9c66f3f1c9d634d595d1117Marko Myllynen test_out(t_strdup_printf("params.auth->domain = \"%s\"",
551aa6c36797ed720487f5974dcadabf19e6ff9fStephen Gallaghertest_smtp_mail_params_body(const struct smtp_params_mail *test,
551aa6c36797ed720487f5974dcadabf19e6ff9fStephen Gallagher case SMTP_PARAM_MAIL_BODY_TYPE_UNSPECIFIED:
e07a94a66985b674c5df11ca466792902164c4e2George McCollister case SMTP_PARAM_MAIL_BODY_TYPE_BINARYMIME:
e07a94a66985b674c5df11ca466792902164c4e2George McCollister case SMTP_PARAM_MAIL_BODY_TYPE_EXTENSION:
551aa6c36797ed720487f5974dcadabf19e6ff9fStephen Gallagher test_out(t_strdup_printf("params.body.type = %s", type_name),
336879aabae137f9a81304f147fb0d43001654b0Simo Sorce (parsed->body.type != SMTP_PARAM_MAIL_BODY_TYPE_EXTENSION ||
336879aabae137f9a81304f147fb0d43001654b0Simo Sorce strcmp(parsed->body.ext, test->body.ext) == 0))));
336879aabae137f9a81304f147fb0d43001654b0Simo Sorcetest_smtp_mail_params_envid(const struct smtp_params_mail *test,
551aa6c36797ed720487f5974dcadabf19e6ff9fStephen Gallagher test_out(t_strdup_printf("params.auth->localpart = %s",
551aa6c36797ed720487f5974dcadabf19e6ff9fStephen Gallagher test_out(t_strdup_printf("params.auth->localpart = \"%s\"",
50fe3d79ab12b795a687b676761bef265701626aStephen Gallaghertest_smtp_mail_params_ret(const struct smtp_params_mail *test,
static void test_smtp_mail_params_parse_valid(void)
int ret;
if (ret >= 0) {
test_end();
} T_END;
struct invalid_mail_params_parse_test {
const char *input;
bool extensions;
static const struct invalid_mail_params_parse_test
unsigned int invalid_mail_params_parse_test_count =
static void test_smtp_mail_params_parse_invalid(void)
int ret;
test_end();
} T_END;
struct valid_rcpt_params_parse_test {
bool extensions;
static const struct valid_rcpt_params_parse_test
.params = {
.orcpt = {
.params = {
.orcpt = {
.params = {
.params = {
.params = {
.params = {
.params = {
.params = {
.params = {
.extra_params = {
.arr = {
.params = {
.extra_params = {
.arr = {
unsigned int valid_rcpt_params_parse_test_count =
static void test_smtp_rcpt_params_parse_valid(void)
int ret;
if (ret >= 0) {
test_end();
} T_END;
struct invalid_rcpt_params_parse_test {
const char *input;
bool extensions;
static const struct invalid_rcpt_params_parse_test
unsigned int invalid_rcpt_params_parse_test_count =
static void test_smtp_rcpt_params_parse_invalid(void)
int ret;
test_end();
} T_END;
int main(void)
static void (*test_functions[])(void) = {