TPCCLIB
Loading...
Searching...
No Matches
libtpcbfm.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#include "tpctac.h"
19#include "tpccm.h"
20/*****************************************************************************/
21#include "tpcbfm.h"
22#include "test_tpcbfm.h"
23/*****************************************************************************/
24
25/*****************************************************************************/
26static char *info[] = {
27 "Usage: @P [options]",
28 " ",
29 "Options:",
30 " -stdoptions", // List standard options like --help, -v, etc
31 " -t, --test",
32 " Run all tests for library functions.",
33 0};
34/*****************************************************************************/
35
36/*****************************************************************************/
41int main(
43 int argc,
45 char *argv[ ]
46) {
47 int i, help=0, version=0, verbose=1, error=0, test=0;
48 int ret;
49 char *cptr;
50
51 if(argc==1) {tpcPrintUsage(argv[0], info, stdout); return(0);}
52 for(i=1; i<argc; i++) {
53 if(tpcProcessStdOptions(argv[i], &help, &version, &verbose)==0) continue;
54 cptr=argv[i]; if(*cptr=='-') cptr++; if(*cptr=='-') cptr++;
55 if(strncasecmp(cptr, "TEST", 1)==0) {
56 test=1; continue;
57 } else {
58 error++; break;
59 }
60 }
61 if(error>0) {
62 fprintf(stderr, "Error: specify --help for usage.\n");
63 return(1);
64 }
65 /* Print help or version? */
66 if(help) {tpcPrintUsage(argv[0], info, stdout); return(0);}
67 if(version) {tpcPrintBuild(argv[0], stdout); return(0);}
68
69 if(test==0) return(0);
70
71 if(verbose>0) printf("running tests for library functions...\n");
72 TPCSTATUS status; statusInit(&status); status.verbose=verbose;
73 statusSet(&status, __func__, __FILE__, __LINE__, 0);
74 i=10;
75 /* bf_dexp */
76 i++; if((ret=test_spectralDExp(&status))!=0) {
77 fprintf(stderr, "failed (%d).\n", ret);
78 statusPrint(stderr, &status); statusFree(&status);
79 return(i);
80 }
81 i++; if((ret=test_spectralKRange(&status))!=0) {
82 fprintf(stderr, "failed (%d).\n", ret);
83 statusPrint(stderr, &status); statusFree(&status);
84 return(i);
85 }
86 i++; if((ret=test_spectralBFNr(&status))!=0) {
87 fprintf(stderr, "failed (%d).\n", ret);
88 statusPrint(stderr, &status); statusFree(&status);
89 return(i);
90 }
91 i++; if((ret=test_spectralBFExtract(&status))!=0) {
92 fprintf(stderr, "failed (%d).\n", ret);
93 statusPrint(stderr, &status); statusFree(&status);
94 return(i);
95 }
96 /* bf_dms */
97 i++; if((ret=test_spectralDMSurge(&status))!=0) {
98 fprintf(stderr, "failed (%d).\n", ret);
99 statusPrint(stderr, &status); statusFree(&status);
100 return(i);
101 }
102 /* bf_1tcm */
103 i++; if((ret=test_bf_1tcm(&status))!=0) {
104 fprintf(stderr, "failed (%d).\n", ret);
105 statusPrint(stderr, &status); statusFree(&status);
106 return(i);
107 }
108 /* bf_srtm */
109 i++; if((ret=test_bf_srtm(&status))!=0) {
110 fprintf(stderr, "failed (%d).\n", ret);
111 statusPrint(stderr, &status); statusFree(&status);
112 return(i);
113 }
114
115 if(verbose>0) printf("\nAll tests passed.\n\n");
116 statusFree(&status);
117 return(0);
118}
119/*****************************************************************************/
120
121/*****************************************************************************/
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
void statusPrint(FILE *fp, TPCSTATUS *s)
Definition statusmsg.c:82
void statusInit(TPCSTATUS *s)
Definition statusmsg.c:104
void statusSet(TPCSTATUS *s, const char *func, const char *srcfile, int srcline, tpcerror error)
Definition statusmsg.c:142
void statusFree(TPCSTATUS *s)
Definition statusmsg.c:126
int verbose
Verbose level, used by statusPrint() etc.
Header file for libtpcbfm.
Header file for libtpccm.
Header file for library libtpcextensions.
Header file for library libtpctac.