1/* $NetBSD: driver.c,v 1.2.6.1 2012/06/05 21:15:39 bouyer Exp $ */ 2 3/* 4 * Copyright (C) 2004, 2007 Internet Systems Consortium, Inc. ("ISC") 5 * Copyright (C) 2000, 2001 Internet Software Consortium. 6 * 7 * Permission to use, copy, modify, and/or distribute this software for any 8 * purpose with or without fee is hereby granted, provided that the above 9 * copyright notice and this permission notice appear in all copies. 10 * 11 * THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH 12 * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY 13 * AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, 14 * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM 15 * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE 16 * OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR 17 * PERFORMANCE OF THIS SOFTWARE. 18 */ 19 20/* Id: driver.c,v 1.11 2007/06/19 23:47:00 tbox Exp */ 21 22#include <config.h> 23 24#include <stdlib.h> 25#include <stdio.h> 26#include <time.h> 27 28#include <isc/string.h> 29#include <isc/util.h> 30 31#include "driver.h" 32 33#include "testsuite.h" 34 35#define NTESTS (sizeof(tests) / sizeof(test_t)) 36 37const char *gettime(void); 38const char *test_result_totext(test_result_t); 39 40/* 41 * Not thread safe. 42 */ 43const char * 44gettime(void) { 45 static char now[512]; 46 time_t t; 47 48 (void)time(&t); 49 50 strftime(now, sizeof(now) - 1, 51 "%A %d %B %H:%M:%S %Y", 52 localtime(&t)); 53 54 return (now); 55} 56 57const char * 58test_result_totext(test_result_t result) { 59 const char *s; 60 switch (result) { 61 case PASSED: 62 s = "PASS"; 63 break; 64 case FAILED: 65 s = "FAIL"; 66 break; 67 case UNTESTED: 68 s = "UNTESTED"; 69 break; 70 case UNKNOWN: 71 default: 72 s = "UNKNOWN"; 73 break; 74 } 75 76 return (s); 77} 78 79int 80main(int argc, char **argv) { 81 test_t *test; 82 test_result_t result; 83 unsigned int n_failed; 84 unsigned int testno; 85 86 UNUSED(argc); 87 UNUSED(argv); 88 89 printf("S:%s:%s\n", SUITENAME, gettime()); 90 91 n_failed = 0; 92 for (testno = 0; testno < NTESTS; testno++) { 93 test = &tests[testno]; 94 printf("T:%s:%u:A\n", test->tag, testno + 1); 95 printf("A:%s\n", test->description); 96 result = test->func(); 97 printf("R:%s\n", test_result_totext(result)); 98 if (result != PASSED) 99 n_failed++; 100 } 101 102 printf("E:%s:%s\n", SUITENAME, gettime()); 103 104 if (n_failed > 0) 105 exit(1); 106 107 return (0); 108} 109 110