make test commands more crash resistant

This commit is contained in:
Marty Kraimer
2004-04-06 13:26:56 +00:00
parent 31c88f6044
commit 5f08b2170a
2 changed files with 54 additions and 11 deletions
+48 -11
View File
@@ -76,9 +76,17 @@ long epicsShareAPI dba(char*pname)
DBADDR addr;
long status;
if (pname==0 || *pname==0) {
printf("\nusage \"pv name\"\n");
return(1);
}
status=dbNameToAddr(pname,&addr);
if(status) {
printf("dbNameToAddr failed\n");
return 0;
}
printDbAddr(status,&addr);
return(status);
return 0;
}
long epicsShareAPI dbl(char *precordTypename,char *filename,char *fields)
@@ -258,6 +266,10 @@ long epicsShareAPI dbgrep(char *pmask)
long status;
char *pname;
if (pmask==0 || *pmask==0 ) {
printf("\nusage \"reg\"\n");
return(1);
}
if(!pdbbase) {
fprintf(stderr,"no database has been loaded\n");
return(0);
@@ -291,6 +303,10 @@ long epicsShareAPI dbgf(char *pname)
int tab_size;
tab_size = 10;
if (pname==0 || *pname==0) {
printf("\nusage \"pv name\"\n");
return(1);
}
status=dbNameToAddr(pname,&addr);
if(status) {
errMessage(status," dbNameToAddr failed");
@@ -320,6 +336,10 @@ long epicsShareAPI dbpf(char *pname,char *pvalue)
DBADDR addr;
long status;
if (pname==0 || *pname==0) {
printf("\nusage \"pv name\" \"value\"\n");
return(1);
}
/* make sure value was passed*/
if(pvalue==0) {
errMessage(0L,"No value was specified");
@@ -358,8 +378,15 @@ long epicsShareAPI dbpr(char *pname,int interest_level)
char *pmsg;
int tab_size;
if (pname == NULL)
return(0);
if (pname==0 || *pname==0) {
printf("\nusage \"pv name\"\n");
return(1);
}
status=dbNameToAddr(pname,&addr);
if(status) {
printf("dbNameToAddr failed\n");
return 0;
}
pmsg = pMsgBuff->message;
tab_size = 20;
@@ -381,12 +408,14 @@ long epicsShareAPI dbtr(char *pname)
long status;
struct dbCommon *precord;
if(pname == NULL)
return 0;
if (pname==0 || *pname==0) {
printf("\nusage \"pv name\"\n");
return(1);
}
status=dbNameToAddr(pname,&addr);
if(status) {
errMessage(status," dbNameToAddr failed");
return(status);
printf("dbNameToAddr failed\n");
return 0;
}
precord=(struct dbCommon*)(addr.precord);
if (precord->pact) {
@@ -421,10 +450,14 @@ long epicsShareAPI dbtgf(char *pname)
tab_size = 10;
if (pname==0 || *pname==0) {
printf("\nusage \"pv name\"\n");
return(1);
}
status=dbNameToAddr(pname,&addr);
if(status) {
errMessage(status," dbNameToAddr failed");
return(status);
printf("dbNameToAddr failed\n");
return 0;
}
/* try all options first */
req_options=0xffffffff;
@@ -504,10 +537,14 @@ long epicsShareAPI dbtpf(char *pname,char *pvalue)
tab_size = 10;
if (pname==0 || *pname==0) {
printf("\nusage \"pv name\"\n");
return(1);
}
status=dbNameToAddr(pname,&addr);
if(status) {
errMessage(status," dbNameToAddr failed");
return(status);
printf("dbNameToAddr failed\n");
return 0;
}
/* DBR_STRING */
status=dbPutField(&addr,DBR_STRING,pvalue,1L);
+6
View File
@@ -657,6 +657,12 @@ int epicsShareAPI tpn(char *pname,char *pvalue)
char *psavevalue;
int len;
if (pname==0 || pvalue==0
|| ((*pname < ' ') || (*pname > 'z'))
|| ((*pvalue < ' ') || (*pvalue > 'z'))){
printf("\nusage \"pv name\",\"value\"\n");
return(1);
}
len = strlen(pvalue);
/*allocate space for value immediately following DBADDR*/
pdbaddr = calloc(1,sizeof(struct dbAddr) + len+1);