-/*
- * Copyright (C) 1995-2005, Index Data ApS
+/* This file is part of the YAZ toolkit.
+ * Copyright (C) 1995-2011 Index Data
* See the file LICENSE for details.
- *
- * $Id: test.c,v 1.8 2006-07-06 13:10:31 heikki Exp $
*/
/** \file test.c
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
+#if HAVE_UNISTSD_H
#include <unistd.h>
+#endif
#include <yaz/test.h>
#include <yaz/log.h>
static FILE *test_fout = 0; /* can't use '= stdout' on some systems */
static int test_total = 0;
static int test_failed = 0;
+static int test_todo = 0;
static int test_verbose = 1;
-static char *test_prog = 0;
+static const char *test_prog = 0;
static int log_tests = 0;
-static FILE *get_file()
+static FILE *get_file(void)
{
if (test_fout)
return test_fout;
return stdout;
}
-static char *progname(char *argv0)
+static const char *progname(const char *argv0)
{
- char *cp = strrchr(argv0, '/');
+ const char *cp = strrchr(argv0, '/');
if (cp)
return cp+1;
cp = strrchr(argv0, '\\');
}
/** \brief Initialize the log system */
-void yaz_check_init_log(char *argv0)
+void yaz_check_init_log(const char *argv0)
{
char logfilename[2048];
log_tests = 1;
sprintf(logfilename,"%s.log", progname(argv0) );
- unlink(logfilename);
yaz_log_init_file(logfilename);
yaz_log_trunc();
}
+void yaz_check_inc_todo(void)
+{
+ test_todo++;
+}
+
void yaz_check_term1(void)
{
/* summary */
if (test_failed)
{
- if (test_verbose >= 1)
- fprintf(get_file(), "%d out of %d tests failed for program %s\n",
+ if (test_verbose >= 1) {
+ if (test_todo)
+ fprintf(get_file(), "%d out of %d tests failed for program %s"
+ " (%d TODO's remaining)\n",
+ test_failed, test_total, test_prog,test_todo);
+ else
+ fprintf(get_file(), "%d out of %d tests failed for program %s\n",
test_failed, test_total, test_prog);
+ }
}
else
{
- if (test_verbose >= 2)
- fprintf(get_file(), "%d tests passed for program %s\n",
+ if (test_verbose >= 2) {
+ if (test_todo)
+ fprintf(get_file(), "%d tests passed for program %s"
+ " (%d TODO's remaining)\n",
+ test_total, test_prog,test_todo);
+ else
+ fprintf(get_file(), "%d tests passed for program %s\n",
test_total, test_prog);
+ }
}
if (test_fout)
fclose(test_fout);
{
char formstr[2048];
- if (type==YAZ_TEST_TYPE_OK)
+ if (type == YAZ_TEST_TYPE_OK)
sprintf(formstr, "%.500s == %.500s ", left, right);
else
sprintf(formstr, "%.500s != %.500s\n %d != %d", left, right, lval,rval);
const char *expr)
{
const char *msg = "unknown";
- int printit=1;
+ int printit = 1;
test_total++;
switch(type)
test_failed++;
msg = "FAILED";
if (test_verbose < 1)
- printit=0;
+ printit = 0;
break;
case YAZ_TEST_TYPE_OK:
msg = "ok";
if (test_verbose < 3)
- printit=0;
+ printit = 0;
break;
}
- if (printit) {
- fprintf(get_file(), "%s:%d %s: ", file, line, msg);
+ if (printit)
+ {
+ fprintf(get_file(), "%s:%d: %s: ", file, line, msg);
fprintf(get_file(), "%s\n", expr);
}
- if (log_tests) {
+ if (log_tests)
+ {
yaz_log(YLOG_LOG, "%s:%d %s: ", file, line, msg);
- yaz_log(YLOG_LOG, "%s\n", expr);
+ yaz_log(YLOG_LOG, "%s", expr);
}
}
-int yaz_test_get_verbosity(){
+int yaz_test_get_verbosity()
+{
return test_verbose;
}
/*
* Local variables:
* c-basic-offset: 4
+ * c-file-style: "Stroustrup"
* indent-tabs-mode: nil
* End:
* vim: shiftwidth=4 tabstop=8 expandtab