and added files
[bcm963xx.git] / userapps / opensource / net-snmp / testing / misctest.c
diff --git a/userapps/opensource/net-snmp/testing/misctest.c b/userapps/opensource/net-snmp/testing/misctest.c
new file mode 100644 (file)
index 0000000..4d631cc
--- /dev/null
@@ -0,0 +1,266 @@
+/*
+ * misctest.c
+ *
+ * Expected SUCCESSes for all tests:    0
+ *
+ * Returns:
+ *      Number of FAILUREs.
+ *
+ * Test of dump_snmpEngineID().                 SUCCESSes:  0
+ */
+
+static char    *rcsid = "$Id: misctest.c,v 5.0 2002/04/20 07:30:22 hardaker Exp $";     /* */
+
+#include <net-snmp/net-snmp-config.h>
+
+#include <stdio.h>
+#ifdef HAVE_NETINET_IN_H
+#include <netinet/in.h>
+#endif
+
+#include "asn1.h"
+#include "snmp_api.h"
+#include "tools.h"
+#include "transform_oids.h"
+#include "callback.h"
+
+#include <stdlib.h>
+
+extern char    *optarg;
+extern int      optind, optopt, opterr;
+
+
+
+/*
+ * Globals, &c...
+ */
+char           *local_progname;
+
+#define USAGE  "Usage: %s [-h][-1a]"
+#define OPTIONLIST     "1ah"
+
+int             doalltests = 0, dodumpseid = 0;
+
+#define        ALLOPTIONS      (doalltests + dodumpseid)
+
+
+
+#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;                         \
+       }                                               \
+}
+
+
+
+
+#define IDBLAT_4       "00010203"
+
+#define IDVIOLATE1     "8000000300deedcafe"
+
+#define IDIPv4         "80000003010a090807"
+#define IDIPv6         "8000000302100f0e0d0c0b0a090807060504030201"
+#define IDMAC          "8000000303ffeeddccbbaa"
+
+#define IDTEXT         "8000000304"
+#define PRINTABLE      "Let this be printable."
+
+#define IDOCTETS_7     "80000003050001020304050607"
+
+#define IDLOCAL_11     "8000000306000102030405060708090a0b"
+
+#define IDIPv4_EXTRA3  "80000003010a090807010203"
+
+#define ID_NUMSTRINGS          10
+
+
+
+
+/*
+ * Prototypes.
+ */
+void            usage(FILE * ofp);
+
+int             test_dumpseid(void);
+
+
+
+
+
+int
+main(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 '1':
+            dodumpseid = 1;
+            break;
+        case 'a':
+            doalltests = 1;
+            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.
+     */
+    if (dodumpseid || doalltests) {
+        failcount += test_dumpseid();
+    }
+
+
+    /*
+     * Cleanup.
+     */
+    return failcount;
+
+}                               /* end main() */
+
+
+
+
+
+void
+usage(FILE * ofp)
+{
+    fprintf(ofp,
+            USAGE
+            "" NL
+            "  -1              Test dump_snmpEngineID()." NL
+            "  -a              All tests." NL
+            "  -h              Help." NL "" NL, local_progname);
+
+}                               /* end usage() */
+
+
+
+
+#ifdef EXAMPLE
+/*******************************************************************-o-******
+ * test_dosomething
+ *
+ * Returns:
+ *     Number of failures.
+ *
+ *
+ * Test template.
+ */
+int
+test_dosomething(void)
+{
+    int             rval = SNMPERR_SUCCESS, failcount = 0;
+
+    EM0(1, "UNIMPLEMENTED");    /* EM(1); /* */
+
+  test_dosomething_quit:
+    return failcount;
+
+}                               /* end test_dosomething() */
+#endif                          /* EXAMPLE */
+
+
+
+
+/*******************************************************************-o-******
+ * test_dumpseid
+ *
+ * Returns:
+ *     Number of failures.
+ *
+ * Test dump_snmpEngineID().
+ */
+int
+test_dumpseid(void)
+{
+    int                         /* rval = SNMPERR_SUCCESS, */
+                    failcount = 0, tlen, count = 0;
+
+    char            buf[SNMP_MAXBUF],
+        *s, *t, *ris, *rawid_set[ID_NUMSTRINGS + 1] = {
+        IDBLAT_4,
+        IDVIOLATE1,
+        IDIPv4,
+        IDIPv6,
+        IDMAC,
+        IDTEXT,
+        IDOCTETS_7,
+        IDLOCAL_11,
+        IDIPv4_EXTRA3,
+        NULL
+    };
+
+    OUTPUT("Test of dump_snmpEngineID.  "
+           "(Does not report failure or success.)");
+
+
+    while ((ris = rawid_set[count++])) {
+        tlen = hex_to_binary2(ris, strlen(ris), &t);
+
+        if (ris == IDTEXT) {
+            memset(buf, 0, SNMP_MAXBUF);
+            memcpy(buf, t, tlen);
+            tlen += sprintf(buf + tlen, "%s", PRINTABLE);
+
+            SNMP_FREE(t);
+            t = buf;
+        }
+#ifdef SNMP_TESTING_CODE
+        s = dump_snmpEngineID(t, &tlen);
+        printf("%s    (len=%d)\n", s, tlen);
+#endif
+
+        SNMP_FREE(s);
+        if (t != buf) {
+            SNMP_FREE(t);
+        }
+    }
+
+
+    return failcount;
+
+}                               /* end test_dumpseid() */