Home | History | Annotate | Line # | Download | only in npftest
npftest.c revision 1.1
      1  1.1  rmind /*	$NetBSD: npftest.c,v 1.1 2012/04/14 21:57:29 rmind Exp $	*/
      2  1.1  rmind 
      3  1.1  rmind /*
      4  1.1  rmind  * NPF testing framework.
      5  1.1  rmind  *
      6  1.1  rmind  * Public Domain.
      7  1.1  rmind  */
      8  1.1  rmind 
      9  1.1  rmind #include <stdio.h>
     10  1.1  rmind #include <stdlib.h>
     11  1.1  rmind #include <stdbool.h>
     12  1.1  rmind #include <unistd.h>
     13  1.1  rmind #include <assert.h>
     14  1.1  rmind 
     15  1.1  rmind #include <rump/rump.h>
     16  1.1  rmind 
     17  1.1  rmind #include "npftest.h"
     18  1.1  rmind 
     19  1.1  rmind static bool benchmark, verbose, quiet;
     20  1.1  rmind 
     21  1.1  rmind static void
     22  1.1  rmind usage(void)
     23  1.1  rmind {
     24  1.1  rmind 	printf("%s: [ -b ] [ -v ]\n", getprogname());
     25  1.1  rmind 	exit(EXIT_SUCCESS);
     26  1.1  rmind }
     27  1.1  rmind 
     28  1.1  rmind static void
     29  1.1  rmind result(const char *test, bool ok)
     30  1.1  rmind {
     31  1.1  rmind 	if (!quiet) {
     32  1.1  rmind 		printf("NPF %-10s\t%s\n", test, ok ? "OK" : "fail");
     33  1.1  rmind 	}
     34  1.1  rmind 	if (verbose) {
     35  1.1  rmind 		puts("-----");
     36  1.1  rmind 	}
     37  1.1  rmind 	if (!ok) {
     38  1.1  rmind 		exit(EXIT_FAILURE);
     39  1.1  rmind 	}
     40  1.1  rmind }
     41  1.1  rmind 
     42  1.1  rmind int
     43  1.1  rmind main(int argc, char **argv)
     44  1.1  rmind {
     45  1.1  rmind 	bool ok;
     46  1.1  rmind 	int ch;
     47  1.1  rmind 
     48  1.1  rmind 	benchmark = false;
     49  1.1  rmind 	verbose = false;
     50  1.1  rmind 	quiet = false;
     51  1.1  rmind 
     52  1.1  rmind 	while ((ch = getopt(argc, argv, "bqv")) != -1) {
     53  1.1  rmind 		switch (ch) {
     54  1.1  rmind 		case 'b':
     55  1.1  rmind 			benchmark = true;
     56  1.1  rmind 			break;
     57  1.1  rmind 		case 'q':
     58  1.1  rmind 			quiet = true;
     59  1.1  rmind 			break;
     60  1.1  rmind 		case 'v':
     61  1.1  rmind 			verbose = true;
     62  1.1  rmind 			break;
     63  1.1  rmind 		default:
     64  1.1  rmind 			usage();
     65  1.1  rmind 		}
     66  1.1  rmind 	}
     67  1.1  rmind 
     68  1.1  rmind 	/* XXX rn_init */
     69  1.1  rmind 	extern int rumpns_max_keylen;
     70  1.1  rmind 	rumpns_max_keylen = 1;
     71  1.1  rmind 
     72  1.1  rmind 	rump_init();
     73  1.1  rmind 	rump_schedule();
     74  1.1  rmind 
     75  1.1  rmind 	ok = rumpns_npf_nbuf_test(verbose);
     76  1.1  rmind 	result("nbuf", ok);
     77  1.1  rmind 
     78  1.1  rmind 	ok = rumpns_npf_processor_test(verbose);
     79  1.1  rmind 	result("processor", ok);
     80  1.1  rmind 
     81  1.1  rmind 	ok = rumpns_npf_table_test(verbose);
     82  1.1  rmind 	result("table", ok);
     83  1.1  rmind 
     84  1.1  rmind 	rump_unschedule();
     85  1.1  rmind 
     86  1.1  rmind 	return EXIT_SUCCESS;
     87  1.1  rmind }
     88