TPCCLIB
Loading...
Searching...
No Matches
libtpcift.c
1/******************************************************************************
2 * This file is not compiled into the library, but it contains main()
3 * which is compiled to an executable, used to test the library functions.
4 *****************************************************************************/
5
6/*****************************************************************************/
7#include "tpcclibConfig.h"
8/*****************************************************************************/
9#include <stdio.h>
10#include <stdlib.h>
11#include <math.h>
12#include <time.h>
13#include <string.h>
14#include <ctype.h>
15#include <unistd.h>
16/*****************************************************************************/
17#include "tpcextensions.h"
18/*****************************************************************************/
19#include "tpcift.h"
20#include "test_tpcift.h"
21/*****************************************************************************/
22
23/*****************************************************************************/
24static char *info[] = {
25 "Usage: @P [options]",
26 " ",
27 "Options:",
28 " -stdoptions", // List standard options like --help, -v, etc
29 " -t, --test",
30 " Run all tests for library functions.",
31 0};
32/*****************************************************************************/
33
34/*****************************************************************************/
39int main(
41 int argc,
43 char *argv[ ]
44) {
45 int i, help=0, version=0, verbose=1, error=0, test=0;
46 int ret;
47 char *cptr;
48
49 if(argc==1) {tpcPrintUsage(argv[0], info, stdout); return(0);}
50 for(i=1; i<argc; i++) {
51 if(tpcProcessStdOptions(argv[i], &help, &version, &verbose)==0) continue;
52 cptr=argv[i]; if(*cptr=='-') cptr++; if(*cptr=='-') cptr++;
53 if(strncasecmp(cptr, "TEST", 1)==0) {
54 test=1; continue;
55 } else {
56 error++; break;
57 }
58 }
59 if(error>0) {
60 fprintf(stderr, "Error: specify --help for usage.\n");
61 return(1);
62 }
63 /* Print help or version? */
64 if(help) {tpcPrintUsage(argv[0], info, stdout); return(0);}
65 if(version) {tpcPrintBuild(argv[0], stdout); return(0);}
66
67 if(test==0) return(0);
68
69 if(verbose>0) printf("running tests for library functions...\n");
70 i=10;
71 /* ift */
72 i++; if((ret=test_iftInit(verbose))!=0) {
73 fprintf(stderr, "failed (%d).\n", ret); return(i);}
74 i++; if((ret=test_iftFree(verbose))!=0) {
75 fprintf(stderr, "failed (%d).\n", ret); return(i);}
76 i++; if((ret=test_iftPut(verbose))!=0) {
77 fprintf(stderr, "failed (%d).\n", ret); return(i);}
78 i++; if((ret=test_iftPutDouble(verbose))!=0) {
79 fprintf(stderr, "failed (%d).\n", ret); return(i);}
80 i++; if((ret=test_iftPutInt(verbose))!=0) {
81 fprintf(stderr, "failed (%d).\n", ret); return(i);}
82 i++; if((ret=test_iftPutUInt(verbose))!=0) {
83 fprintf(stderr, "failed (%d).\n", ret); return(i);}
84 i++; if((ret=test_iftDelete(verbose))!=0) {
85 fprintf(stderr, "failed (%d).\n", ret); return(i);}
86 i++; if((ret=test_iftDuplicate(verbose))!=0) {
87 fprintf(stderr, "failed (%d).\n", ret); return(i);}
88 i++; if((ret=test_iftReplaceValue(verbose))!=0) {
89 fprintf(stderr, "failed (%d).\n", ret); return(i);}
90 i++; if((ret=test_iftReplaceKey(verbose))!=0) {
91 fprintf(stderr, "failed (%d).\n", ret); return(i);}
92 i++; if((ret=test_iftDeleteDuplicateKeys(verbose))!=0) {
93 fprintf(stderr, "failed (%d).\n", ret); return(i);}
94 i++; if((ret=test_iftCopyItems(verbose))!=0) {
95 fprintf(stderr, "failed (%d).\n", ret); return(i);}
96 /* iftio */
97 i++; if((ret=test_iftWriteItem(verbose))!=0) {
98 fprintf(stderr, "failed (%d).\n", ret); return(i);}
99 i++; if((ret=test_iftWrite(verbose))!=0) {
100 fprintf(stderr, "failed (%d).\n", ret); return(i);}
101 i++; if((ret=test_iftRead(verbose))!=0) {
102 fprintf(stderr, "failed (%d).\n", ret); return(i);}
103 /* iftfind */
104 i++; if((ret=test_iftFindKey(verbose))!=0) {
105 fprintf(stderr, "failed (%d).\n", ret); return(i);}
106 i++; if((ret=test_iftFindPair(verbose))!=0) {
107 fprintf(stderr, "failed (%d).\n", ret); return(i);}
108 i++; if((ret=test_iftSearchKey(verbose))!=0) {
109 fprintf(stderr, "failed (%d).\n", ret); return(i);}
110 i++; if((ret=test_iftSearchValue(verbose))!=0) {
111 fprintf(stderr, "failed (%d).\n", ret); return(i);}
112 i++; if((ret=test_iftFindNrOfKeys(verbose))!=0) {
113 fprintf(stderr, "failed (%d).\n", ret); return(i);}
114 i++; if((ret=test_iftDeleteKey(verbose))!=0) {
115 fprintf(stderr, "failed (%d).\n", ret); return(i);}
116 i++; if((ret=test_iftGetDoubleValue(verbose))!=0) {
117 fprintf(stderr, "failed (%d).\n", ret); return(i);}
118 /* iftget */
119 i++; if((ret=test_iftGetFloat(verbose))!=0) {
120 fprintf(stderr, "failed (%d).\n", ret); return(i);}
121 i++; if((ret=test_iftGetDouble(verbose))!=0) {
122 fprintf(stderr, "failed (%d).\n", ret); return(i);}
123 i++; if((ret=test_iftGetInt(verbose))!=0) {
124 fprintf(stderr, "failed (%d).\n", ret); return(i);}
125 i++; if((ret=test_iftGetUInt(verbose))!=0) {
126 fprintf(stderr, "failed (%d).\n", ret); return(i);}
127 i++; if((ret=test_iftGetDoubleWithUnit(verbose))!=0) {
128 fprintf(stderr, "failed (%d).\n", ret); return(i);}
129
130 if(verbose>0) printf("\nAll tests passed.\n\n");
131 return(0);
132}
133/*****************************************************************************/
134
135/*****************************************************************************/
int tpcProcessStdOptions(const char *s, int *print_usage, int *print_version, int *verbose_level)
Definition proginfo.c:47
void tpcPrintBuild(const char *program, FILE *fp)
Definition proginfo.c:339
void tpcPrintUsage(const char *program, char *text[], FILE *fp)
Definition proginfo.c:114
Header file for library libtpcextensions.
Header file for library libtpcift.