/* * Copyright (c) 2006 Claus Assmann * * By using this file, you agree to the terms and conditions set * forth in the license/LICENSE.3C file which can be found at the * top level of this source code distribution. */ #include "sm/generic.h" SM_RCSID("@(#)$Id: t-pmadd.c,v 1.5 2006/11/18 15:25:53 ca Exp $") #include "sm/assert.h" #include "sm/magic.h" #include "sm/str.h" #include "sm/misc.h" #include "sm/test.h" #include #define SMAXLEN 256 static void test_harness(void) { sm_str_P rcpt, domain; sm_ret_T ret; #define POSTMASTER "" #define DOMAIN "my.domain" rcpt = sm_str_scpy(NULL, (const char *)POSTMASTER, SMAXLEN); SM_TEST(rcpt != NULL); domain = sm_str_scpy(NULL, DOMAIN, SMAXLEN); SM_TEST(domain != NULL); ret = sm_postmaster_add_domain(rcpt, domain, 0); SM_TEST(sm_is_success(ret)); SM_TEST(0 == strcasecmp("", (const char *)sm_str_getdata(rcpt))); SM_STR_FREE(rcpt); rcpt = sm_str_scpy(NULL, (const char *)"RCPT To:", SMAXLEN); SM_TEST(rcpt != NULL); SM_TEST(domain != NULL); ret = sm_postmaster_add_domain(rcpt, domain, 8); SM_TEST(sm_is_success(ret)); SM_TEST(0 == strcasecmp("RCPT To:", (const char *)sm_str_getdata(rcpt))); SM_STR_FREE(rcpt); rcpt = sm_str_scpy(NULL, (const char *)"", SMAXLEN); SM_TEST(rcpt != NULL); SM_TEST(domain != NULL); ret = sm_postmaster_add_domain(rcpt, domain, 0); SM_TEST(SM_NOTDONE == ret); SM_TEST(0 != strcasecmp("", (const char *)sm_str_getdata(rcpt))); SM_STR_FREE(rcpt); rcpt = sm_str_scpy(NULL, (const char *)"RCPT To:", SMAXLEN); SM_TEST(rcpt != NULL); SM_TEST(domain != NULL); ret = sm_postmaster_add_domain(rcpt, domain, 8); SM_TEST(SM_NOTDONE == ret); SM_TEST(0 != strcasecmp("RCPT To:", (const char *)sm_str_getdata(rcpt))); SM_STR_FREE(rcpt); rcpt = sm_str_scpy(NULL, (const char *)"RCPT To:", SMAXLEN); SM_TEST(rcpt != NULL); SM_TEST(domain != NULL); ret = sm_postmaster_add_domain(rcpt, domain, 8); SM_TEST(SM_NOTDONE == ret); SM_TEST(0 != strcasecmp("RCPT To:", (const char *)sm_str_getdata(rcpt))); SM_TEST(0 == strcasecmp("RCPT To:", (const char *)sm_str_getdata(rcpt))); SM_STR_FREE(rcpt); SM_STR_FREE(domain); } int main(int argc, char *argv[]) { sm_test_begin(argc, argv, "test sm_postmaster_add_domain"); test_harness(); return sm_test_end(); }