⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 etimetest.c

📁 snmp up7
💻 C
字号:
/* * etimetest.c * * Expected SUCCESSes for all tests:    3 * * Returns: *      Number of FAILUREs. * * Test of hash_engineID().                             SUCCESSes:  0 * Test of LCD Engine ID and Time List.                 SUCCESSes:  3 * * FIX  Devise a test for {set,get}_enginetime(..., FALSE). */static char    *rcsid = "$Id: etimetest.c,v 5.0 2002/04/20 07:30:22 hardaker Exp $";    /* */#include <net-snmp/net-snmp-config.h>#include <stdio.h>#include <sys/types.h>#ifdef HAVE_STDLIB_H#include <stdlib.h>#endif#ifdef HAVE_NETINET_IN_H#include <netinet/in.h>#endif#include "asn1.h"#include "snmp_api.h"#include "tools.h"#include "lcd_time.h"#include "snmp_debug.h"#include "callback.h"static u_int    dummy_etime, dummy_eboot;       /* For ISENGINEKNOWN(). */#include <stdlib.h>extern char    *optarg;extern int      optind, optopt, opterr;/* * Globals, &c... */char           *local_progname;#define USAGE	"Usage: %s [-h][-s <seconds>][-aeH]"#define OPTIONLIST	"aehHs:"int             doalltests = 0, dohashindex = 0, doetimetest = 0;#define	ALLOPTIONS	(doalltests + dohashindex + doetimetest)#define LOCAL_MAXBUF	(1024 * 8)#define NL		"\n"#define OUTPUT(o)	fprintf(stdout, "\n\n%s\n\n", o);#define SUCCESS(s)					\{							\	if (!failcount)					\		fprintf(stdout, "\nSUCCESS: %s\n", s);	\}#define FAILED(e, f)					\{							\	if (e != SNMPERR_SUCCESS) {			\		fprintf(stdout, "\nFAILED: %s\n", f);	\		failcount += 1;				\	}						\}/* * Global variables. */int             sleeptime = 7;#define BLAT "alk;djf;an riu;alicenmrul;aiknglksajhe1 adcfalcenrco2"/* * Prototypes. */void            usage(FILE * ofp);int             test_etime(void);int             test_hashindex(void);intmain(int argc, char **argv){    int             rval = SNMPERR_SUCCESS, failcount = 0;    char            ch;    local_progname = argv[0];    /*     * Parse.     */    while ((ch = getopt(argc, argv, OPTIONLIST)) != EOF) {        switch (ch) {        case 'a':            doalltests = 1;            break;        case 'e':            doetimetest = 1;            break;        case 'H':            dohashindex = 1;            break;        case 's':            sleeptime = atoi(optarg);            if (sleeptime < 0) {                usage(stderr);                exit(1000);            }            break;            break;        case 'h':            rval = 0;        default:            usage(stdout);            exit(rval);        }        argc -= 1;        argv += 1;        if (optarg) {            argc -= 1;            argv += 1;            optarg = NULL;        }        optind = 1;    }                           /* endwhile getopt */    if ((argc > 1)) {        usage(stdout);        exit(1000);    } else if (ALLOPTIONS != 1) {        usage(stdout);        exit(1000);    }    /*     * Test stuff.     */    rval = sc_init();    FAILED(rval, "sc_init()");    if (dohashindex || doalltests) {        failcount += test_hashindex();    }    if (doetimetest || doalltests) {        failcount += test_etime();    }    /*     * Cleanup.     */    rval = sc_shutdown(SNMP_CALLBACK_LIBRARY, SNMP_CALLBACK_SHUTDOWN,                       NULL, NULL);    FAILED(rval, "sc_shutdown()");    return failcount;}                               /* end main() */voidusage(FILE * ofp){    fprintf(ofp,            USAGE            "" NL            "    -a			All tests." NL            "    -e			Exercise the list of enginetimes."            NL            "    -h			Help."            NL            "    -H			Test hash_engineID()."            NL            "    -s <seconds>	Seconds to pause.  (Default: 0.)"            NL NL, local_progname);}                               /* end usage() */#ifdef EXAMPLE/*******************************************************************-o-****** * test_dosomething * * Returns: *	Number of failures. * * * Test template. */inttest_dosomething(void){    int             rval = SNMPERR_SUCCESS, failcount = 0;  test_dosomething_quit:    return failcount;}                               /* end test_dosomething() */#endif                          /* EXAMPLE *//*******************************************************************-o-****** * test_hashindex * * Returns: *	Number of failures. * * * Test hash_engineID(). */inttest_hashindex(void){    int                         /* rval = SNMPERR_SUCCESS,  */                    failcount = 0;    char           *s;    OUTPUT("Visual spot check of hash index outputs.  "           "(Success or failure not noted.)");    s = "A";    fprintf(stdout, "%s = %d\n", s, hash_engineID(s, strlen(s)));    s = "BB";    fprintf(stdout, "%s = %d\n", s, hash_engineID(s, strlen(s)));    s = "CCC";    fprintf(stdout, "%s = %d\n", s, hash_engineID(s, strlen(s)));    s = "DDDD";    fprintf(stdout, "%s = %d\n", s, hash_engineID(s, strlen(s)));    s = "EEEEE";    fprintf(stdout, "%s = %d\n", s, hash_engineID(s, strlen(s)));    s = BLAT;    fprintf(stdout, "%s = %d\n", s, hash_engineID(s, strlen(s)));    OUTPUT("Visual spot check -- DONE.");    return failcount;}                               /* end test_hashindex() *//*******************************************************************-o-****** * test_etime * * Returns: *	Number of failures. * * Test of LCD Engine ID and Time List.	 */inttest_etime(void){    int             rval = SNMPERR_SUCCESS, failcount = 0;    u_int           etime, eboot;    /*     * ------------------------------------ -o-     */    OUTPUT("Query of empty list, two set actions.");    rval = ISENGINEKNOWN("A", 1);    if (rval == TRUE) {        FAILED(SNMPERR_GENERR, "Query of empty list returned TRUE.")    }    rval = set_enginetime("BB", 2, 2, 20, TRUE);    FAILED(rval, "set_enginetime()");    rval = set_enginetime("CCC", 3, 31, 90127, TRUE);    FAILED(rval, "set_enginetime()");    SUCCESS("Check of empty list, and two additions.");    /*     * ------------------------------------ -o-     */    OUTPUT("Add entries using macros, test for existence with macros.");    rval = ENSURE_ENGINE_RECORD("DDDD", 4);    FAILED(rval, "ENSURE_ENGINE_RECORD()");    rval = MAKENEW_ENGINE_RECORD("EEEEE", 5);    if (rval == SNMPERR_SUCCESS) {        FAILED(rval,               "MAKENEW_ENGINE_RECORD returned success for "               "missing record.");    }    rval = MAKENEW_ENGINE_RECORD("BB", 2);    FAILED(rval, "MAKENEW_ENGINE_RECORD().");    SUCCESS        ("Added entries with macros, tested for existence with macros.");    /*     * ------------------------------------ -o-     */    OUTPUT("Dump the list and then sleep.");#ifdef SNMP_TESTING_CODE    dump_etimelist();#endif    fprintf(stdout, "\nSleeping for %d second%s... ",            sleeptime, (sleeptime == 1) ? "" : "s");    fflush(stdout);    sleep(sleeptime);    fprintf(stdout, "\n");    /*     * ------------------------------------ -o-     */    OUTPUT        ("Retrieve data from real/stubbed records, update real/stubbed.");    rval = get_enginetime("BB", 2, &eboot, &etime, TRUE);    FAILED(rval, "get_enginetime().");    fprintf(stdout, "BB = <%d,%d>\n", eboot, etime);    if ((etime < 20) || (eboot < 2)) {        FAILED(SNMPERR_GENERR,               "get_enginetime() returned bad values.  (1)");    }    rval = get_enginetime("DDDD", 4, &eboot, &etime, FALSE);    FAILED(rval, "get_enginetime().");    fprintf(stdout, "DDDD = <%d,%d>\n", eboot, etime);    if ((etime < sleeptime) || (eboot != 0)) {        FAILED(SNMPERR_GENERR,               "get_enginetime() returned bad values.  (2)");    }    rval = set_enginetime("CCC", 3, 234, 10000, TRUE);    FAILED(rval, "set_enginetime().");    rval = set_enginetime("EEEEE", 5, 9876, 55555, TRUE);    FAILED(rval, "set_enginetime().");    SUCCESS("Retrieval and updates.");    /*     * ------------------------------------ -o-     */    OUTPUT("Sleep again, then dump the list one last time.");    fprintf(stdout, "Sleeping for %d second%s... ",            sleeptime, (sleeptime == 1) ? "" : "s");    fflush(stdout);    sleep(sleeptime);    fprintf(stdout, "\n");#ifdef SNMP_TESTING_CODE    dump_etimelist();#endif    return failcount;}                               /* end test_etime() */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -