chiark / gitweb /
Script to transform CVS sources into buildable source tree.
[mLib] / testrig.h
CommitLineData
0875b58f 1/* -*-c-*-
2 *
c846879c 3 * $Id: testrig.h,v 1.2 1999/05/05 18:50:31 mdw Exp $
0875b58f 4 *
5 * Generic test driver
6 *
7 * (c) 1998 Straylight/Edgeware
8 */
9
10/*----- Licensing notice --------------------------------------------------*
11 *
12 * This file is part of the mLib utilities library.
13 *
14 * mLib is free software; you can redistribute it and/or modify
c846879c 15 * it under the terms of the GNU Library General Public License as
16 * published by the Free Software Foundation; either version 2 of the
17 * License, or (at your option) any later version.
0875b58f 18 *
19 * mLib is distributed in the hope that it will be useful,
20 * but WITHOUT ANY WARRANTY; without even the implied warranty of
21 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
c846879c 22 * GNU Library General Public License for more details.
0875b58f 23 *
c846879c 24 * You should have received a copy of the GNU Library General Public
25 * License along with mLib; if not, write to the Free Software
26 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
0875b58f 27 */
28
29/*----- Revision history --------------------------------------------------*
30 *
31 * $Log: testrig.h,v $
c846879c 32 * Revision 1.2 1999/05/05 18:50:31 mdw
33 * Change licensing conditions to LGPL.
34 *
35 * Revision 1.1.1.1 1998/06/17 23:44:42 mdw
36 * Initial version of mLib
0875b58f 37 *
38 */
39
40#ifndef TESTER_H
41#define TESTER_H
42
43#ifdef __cplusplus
44 extern "C" {
45#endif
46
47/*----- Header files ------------------------------------------------------*/
48
49#include <stddef.h>
50
51#include "dstr.h"
52
53/*----- Magical numbers ---------------------------------------------------*/
54
55#define TEST_FIELDMAX 16 /* Maximum fields in a line */
56
57/*----- Data structures ---------------------------------------------------*/
58
59/* --- Test field definition --- */
60
61typedef struct test_type {
62 void (*cvt)(const char *buf, dstr *d); /* Conversion function */
63 void (*dump)(dstr *d, FILE *fp); /* Dump function */
64} test_type;
65
66/* --- Test chunk definition --- */
67
68typedef struct test_chunk {
69 const char *name; /* Name of this chunk */
70 int (*test)(dstr dv[]); /* Test verification function */
71 test_type *f[TEST_FIELDMAX]; /* Field definitions */
72} test_chunk;
73
74/*----- Predefined data types ---------------------------------------------*/
75
76extern test_type type_hex;
77extern test_type type_string;
78extern test_type type_int;
79
80/*----- Functions provided ------------------------------------------------*/
81
82/* --- @test_run@ --- *
83 *
84 * Arguments: @int argc@ = number of command line arguments
85 * @char *argv[]@ = pointer to command line arguments
86 * @const test_chunk chunk[]@ = pointer to chunk definitions
87 * @const char *def@ = name of default test vector file
88 *
89 * Returns: Doesn't.
90 *
91 * Use: Runs a set of test vectors to ensure that a component is
92 * working properly.
93 */
94
95extern void test_run(int /*argc*/, char */*argv*/[],
96 const test_chunk /*chunk*/[],
97 const char */*def*/);
98
99/*----- That's all, folks -------------------------------------------------*/
100
101#ifdef __cplusplus
102 }
103#endif
104
105#endif