/*
* Copyright (c) 2006 Sendmail, Inc. and its suppliers.
* All rights reserved.
*
* By using this file, you agree to the terms and conditions set
* forth in the LICENSE file which can be found at the top level of
* the sendmail distribution.
*/
#include "sm/generic.h"
SM_RCSID("@(#)$Id: t-log-0.c,v 1.1 2006/04/14 23:52:50 ca Exp $")
#include "sm/assert.h"
#include "sm/error.h"
#include "sm/test.h"
#include "sm/io.h"
#include "sm/log.h"
static int Verbosity = 0;
sm_logcategory_T lcats[] =
{
{ "init", 0 },
{ "config", 0 },
{ "comm", 0 },
{ "sched", 0 },
{ "edb", 0 },
{ "edbc", 0 },
{ "smtps", 0 },
{ "smtpc", 0 },
{ "da", 0 },
{ "dastat", 0 },
{ "cleanup", 0 },
{ "control", 0 },
{ NULL, 0 }
};
sm_logmodule_T lmods[] =
{
{ "comm", 0 },
{ "config", 0 },
{ "sched", 0 },
{ "to_smar", 0 },
{ "from_smar", 0 },
{ "to_smtps", 0 },
{ "from_smtps", 0 },
{ "to_smtpc", 0 },
{ "from_smtpc", 0 },
{ "defedb", 0 },
{ "edbc", 0 },
{ "edbs", 0 },
{ "iqdb", 0 },
{ "ibdb", 0 },
{ "bounce", 0 },
{ "dastat", 0 },
{ "cleanup", 0 },
{ "control", 0 },
{ "query", 0 },
{ "start", 0 },
{ NULL, 0 }
};
#define LCAT_INIT (&lcats[0])
#define LCAT_COMM (&lcats[1])
#define LCAT_CONFIG (&lcats[2])
#define LCAT_SCHED (&lcats[3])
#define LCAT_EDB (&lcats[4])
#define LCAT_EDBC (&lcats[5])
#define LCAT_SMTPS (&lcats[6])
#define LCAT_SMTPC (&lcats[7])
#define LCAT_DA (&lcats[8])
#define LCAT_DASTAT (&lcats[9])
#define LCAT_CLEANUP (&lcats[10])
#define LCAT_CONTROL (&lcats[11])
/* Backwards compatibility. */
#define LCAT_GENERAL QMGLOGCATEGORY_GENERAL
#define LMOD_COMM (&lmods[0])
#define LMOD_CONFIG (&lmods[1])
#define LMOD_SCHED (&lmods[2])
#define LMOD_TO_SMAR (&lmods[3])
#define LMOD_FROM_SMAR (&lmods[4])
#define LMOD_TO_SMTPS (&lmods[5])
#define LMOD_FROM_SMTPS (&lmods[6])
#define LMOD_TO_SMTPC (&lmods[7])
#define LMOD_FROM_SMTPC (&lmods[8])
#define LMOD_DEFEDB (&lmods[9])
#define LMOD_EDBC (&lmods[10])
#define LMOD_EDBS (&lmods[11])
#define LMOD_IQDB (&lmods[12])
#define LMOD_IBDB (&lmods[13])
#define LMOD_BOUNCE (&lmods[14])
#define LMOD_DASTAT (&lmods[15])
#define LMOD_CLEANUP (&lmods[16])
#define LMOD_CONTROL (&lmods[17])
#define LMOD_QUERY (&lmods[18])
#define LMOD_START (&lmods[19])
static sm_ret_T
test(uint loglevel)
{
sm_ret_T ret;
sm_log_ctx_P lctx;
sm_logconfig_P lcfg;
ret = sm_log_create(NULL, &lctx, &lcfg);
SM_TEST(sm_is_success(ret));
if (sm_is_err(ret))
{
sm_io_fprintf(smioerr,
"sev=ERROR, sm_log_create=%m\n", ret);
goto error;
}
ret = sm_log_setfp_fd(lctx, smiolog, SMIOLOG_FILENO);
SM_TEST(sm_is_success(ret));
if (sm_is_err(ret))
{
sm_io_fprintf(smioerr,
"sev=ERROR, sm_log_setfp=%m\n", ret);
goto error;
}
ret = sm_log_setdebuglevel(lctx, loglevel);
SM_TEST(sm_is_success(ret));
if (sm_is_err(ret))
{
sm_io_fprintf(smioerr,
"sev=ERROR, sm_log_setdebuglevel=%m\n",
ret);
goto error;
}
ret = sm_log_registercategories(lctx, lcats);
SM_TEST(sm_is_success(ret));
ret = sm_log_registermodules(lctx, lmods);
SM_TEST(sm_is_success(ret));
ret = sm_log_cat_set_level(lctx, "sched", 8);
SM_TEST(sm_is_success(ret));
SM_TEST(LCAT_SCHED->smlc_log_level == 8);
ret = sm_log_mod_set_level(lctx, "sched", 7);
SM_TEST(sm_is_success(ret));
SM_TEST(LMOD_SCHED->smlm_log_level == 7);
ret = sm_log_cat_set_level(lctx, "nocat", 8);
SM_TEST(sm_is_error(ret));
ret = sm_log_mod_set_level(lctx, "nomod", 7);
SM_TEST(sm_is_error(ret));
return ret;
error:
return ret;
}
int
main(int argc, char *argv[])
{
int c;
uint loglevel;
loglevel = 9;
while ((c = getopt(argc, argv, "V")) != -1)
{
switch (c)
{
case 'V':
++Verbosity;
break;
}
}
sm_test_begin(argc, argv, "test log");
argc -= optind;
argv += optind;
test(loglevel);
return sm_test_end();
}
syntax highlighted by Code2HTML, v. 0.9.1