use verify instead of assert

This commit is contained in:
Jeff Hill
2009-08-24 17:04:40 +00:00
parent 794811b95a
commit 4921187178
+157 -154
View File
@@ -55,6 +55,9 @@ static epicsTimeStamp showProgressBeginTime;
static const double timeoutToPendIO = 1e20;
#define verify(exp) ((exp) ? (void)0 : \
epicsAssert(__FILE__, __LINE__, #exp, epicsAssertAuthor))
void showProgressBegin ( const char *pTestName, unsigned interestLevel )
{
@@ -133,7 +136,7 @@ void monitorSubscriptionFirstUpdateTest ( const char *pName, chid chan, unsigned
epicsThreadSleep ( 0.1 );
ca_poll (); /* emulate typical GUI */
}
assert ( eventCount > 0 );
verify ( eventCount > 0 );
/* clear any knowledge of old gets */
ca_pend_io ( 1e-5 );
@@ -167,7 +170,7 @@ void monitorSubscriptionFirstUpdateTest ( const char *pName, chid chan, unsigned
epicsThreadSleep ( 0.1 );
ca_poll (); /* emulate typical GUI */
}
assert ( eventCount > 0 );
verify ( eventCount > 0 );
status = ca_clear_event ( id );
SEVCHK (status, 0);
@@ -193,7 +196,7 @@ void monitorSubscriptionFirstUpdateTest ( const char *pName, chid chan, unsigned
epicsThreadSleep ( 0.1 );
ca_poll (); /* emulate typical GUI */
}
assert ( eventCount > 0 );
verify ( eventCount > 0 );
/* verify that a ca_put() produces an update, but */
/* this may fail if there is an unusual deadband */
@@ -224,7 +227,7 @@ void monitorSubscriptionFirstUpdateTest ( const char *pName, chid chan, unsigned
epicsThreadSleep ( 0.1 );
ca_poll (); /* emulate typical GUI */
}
assert ( eventCount > 0 );
verify ( eventCount > 0 );
/* clean up */
status = ca_clear_channel ( chan2 );
@@ -282,7 +285,7 @@ void verifyMonitorSubscriptionFlushIO ( chid chan, unsigned interestLevel )
epicsThreadSleep ( 0.1 );
ca_poll (); /* emulate typical GUI */
}
assert ( eventCount > 0 );
verify ( eventCount > 0 );
status = ca_clear_event ( id );
SEVCHK (status, 0);
@@ -293,9 +296,9 @@ void accessRightsStateChange ( struct access_rights_handler_args args )
{
appChan *pChan = (appChan *) ca_puser ( args.chid );
assert ( pChan->channel == args.chid );
assert ( args.ar.read_access == ca_read_access ( args.chid ) );
assert ( args.ar.write_access == ca_write_access ( args.chid ) );
verify ( pChan->channel == args.chid );
verify ( args.ar.read_access == ca_read_access ( args.chid ) );
verify ( args.ar.write_access == ca_write_access ( args.chid ) );
accessUpdateCount++;
pChan->accessUpdateCount++;
}
@@ -304,12 +307,12 @@ void getCallbackStateChange ( struct event_handler_args args )
{
appChan *pChan = (appChan *) args.usr;
assert ( pChan->channel == args.chid );
assert ( pChan->connected );
verify ( pChan->channel == args.chid );
verify ( pChan->connected );
if ( args.status != ECA_NORMAL ) {
printf ( "getCallbackStateChange abnormal status was \"%s\"\n",
ca_message ( args.status ) );
assert ( args.status == ECA_NORMAL );
verify ( args.status == ECA_NORMAL );
}
getCallbackCount++;
@@ -322,25 +325,25 @@ void connectionStateChange ( struct connection_handler_args args )
appChan *pChan = (appChan *) ca_puser ( args.chid );
assert ( pChan->channel == args.chid );
verify ( pChan->channel == args.chid );
if ( args.op == CA_OP_CONN_UP ) {
if ( pChan->accessRightsHandlerInstalled ) {
assert ( pChan->accessUpdateCount > 0u );
verify ( pChan->accessUpdateCount > 0u );
}
assert ( ! pChan->connected );
verify ( ! pChan->connected );
pChan->connected = 1;
status = ca_get_callback ( DBR_STS_STRING, args.chid, getCallbackStateChange, pChan );
SEVCHK (status, 0);
}
else if ( args.op == CA_OP_CONN_DOWN ) {
assert ( pChan->connected );
verify ( pChan->connected );
pChan->connected = 0u;
assert ( ! ca_read_access ( args.chid ) );
assert ( ! ca_write_access ( args.chid ) );
verify ( ! ca_read_access ( args.chid ) );
verify ( ! ca_write_access ( args.chid ) );
}
else {
assert ( 0 );
verify ( 0 );
}
pChan->connectionUpdateCount++;
connectionUpdateCount++;
@@ -351,11 +354,11 @@ void subscriptionStateChange ( struct event_handler_args args )
struct dbr_sts_string * pdbrgs = ( struct dbr_sts_string * ) args.dbr;
appChan *pChan = (appChan *) args.usr;
assert ( args.status == ECA_NORMAL );
assert ( pChan->channel == args.chid );
assert ( pChan->connected );
assert ( args.type == DBR_STS_STRING );
assert ( strlen ( pdbrgs->value ) <= MAX_STRING_SIZE );
verify ( args.status == ECA_NORMAL );
verify ( pChan->channel == args.chid );
verify ( pChan->connected );
verify ( args.type == DBR_STS_STRING );
verify ( strlen ( pdbrgs->value ) <= MAX_STRING_SIZE );
pChan->subscriptionUpdateCount++;
subscriptionUpdateCount++;
}
@@ -422,7 +425,7 @@ void verifyConnectionHandlerConnect ( appChan *pChans, unsigned chanCount,
subscriptionStateChange, &pChans[j], &pChans[j].subscription );
SEVCHK ( status, NULL );
assert ( ca_test_io () == ECA_IODONE );
verify ( ca_test_io () == ECA_IODONE );
}
ca_flush_io ();
@@ -436,13 +439,13 @@ void verifyConnectionHandlerConnect ( appChan *pChans, unsigned chanCount,
}
for ( j = 0u; j < chanCount; j++ ) {
assert ( pChans[j].getCallbackCount == 1u);
assert ( pChans[j].connectionUpdateCount > 0 );
verify ( pChans[j].getCallbackCount == 1u);
verify ( pChans[j].connectionUpdateCount > 0 );
if ( pChans[j].connectionUpdateCount > 1u ) {
printf ("Unusual connection activity count = %u on channel %s?\n",
pChans[j].connectionUpdateCount, pChans[j].name );
}
assert ( pChans[j].accessUpdateCount > 0 );
verify ( pChans[j].accessUpdateCount > 0 );
if ( pChans[j].accessUpdateCount > 1u ) {
printf ("Unusual access rights activity count = %u on channel %s?\n",
pChans[j].connectionUpdateCount, pChans[j].name );
@@ -515,7 +518,7 @@ void verifyBlockingConnect ( appChan *pChans, unsigned chanCount,
i = 0;
while ( backgroundConnCount > 1u ) {
backgroundConnCount = ca_get_ioc_connection_count ();
assert ( i++ < 10 );
verify ( i++ < 10 );
printf ( "Z" );
fflush ( stdout );
epicsThreadSleep ( 1.0 );
@@ -535,11 +538,11 @@ void verifyBlockingConnect ( appChan *pChans, unsigned chanCount,
SEVCHK ( status, NULL );
if ( ca_state ( pChans[j].channel ) == cs_conn ) {
assert ( VALID_DB_REQ ( ca_field_type ( pChans[j].channel ) ) );
verify ( VALID_DB_REQ ( ca_field_type ( pChans[j].channel ) ) );
}
else {
assert ( INVALID_DB_REQ ( ca_field_type ( pChans[j].channel ) ) );
assert ( ca_test_io () == ECA_IOINPROGRESS );
verify ( INVALID_DB_REQ ( ca_field_type ( pChans[j].channel ) ) );
verify ( ca_test_io () == ECA_IOINPROGRESS );
}
status = ca_replace_access_rights_event (
@@ -577,14 +580,14 @@ void verifyBlockingConnect ( appChan *pChans, unsigned chanCount,
showProgress ( interestLevel );
assert ( ca_test_io () == ECA_IODONE );
verify ( ca_test_io () == ECA_IODONE );
connections = ca_get_ioc_connection_count ();
assert ( connections == backgroundConnCount );
verify ( connections == backgroundConnCount );
for ( j = 0u; j < chanCount; j++ ) {
assert ( VALID_DB_REQ ( ca_field_type ( pChans[j].channel ) ) );
assert ( ca_state ( pChans[j].channel ) == cs_conn );
verify ( VALID_DB_REQ ( ca_field_type ( pChans[j].channel ) ) );
verify ( ca_state ( pChans[j].channel ) == cs_conn );
SEVCHK ( ca_clear_channel ( pChans[j].channel ), NULL );
}
@@ -605,7 +608,7 @@ void verifyBlockingConnect ( appChan *pChans, unsigned chanCount,
while ( ca_get_ioc_connection_count () != backgroundConnCount ) {
epicsThreadSleep ( 0.1 );
ca_poll (); /* emulate typical GUI */
assert ( ++j < 100 );
verify ( ++j < 100 );
}
}
showProgress ( interestLevel );
@@ -621,7 +624,7 @@ void verifyBlockingConnect ( appChan *pChans, unsigned chanCount,
SEVCHK ( status, NULL );
}
assert ( ca_test_io () == ECA_IODONE );
verify ( ca_test_io () == ECA_IODONE );
/*
* verify ca_pend_io() does not see old search requests
@@ -650,13 +653,13 @@ void verifyBlockingConnect ( appChan *pChans, unsigned chanCount,
SEVCHK ( status, NULL );
status = ca_pend_io ( 1e-16 );
if ( status != ECA_TIMEOUT ) {
assert ( ca_state ( pChans[1].channel ) == cs_conn );
verify ( ca_state ( pChans[1].channel ) == cs_conn );
}
status = ca_clear_channel ( pChans[1].channel );
SEVCHK ( status, NULL );
}
else {
assert ( ca_state( pChans[0].channel ) == cs_conn );
verify ( ca_state( pChans[0].channel ) == cs_conn );
}
}
status = ca_clear_channel( pChans[0].channel );
@@ -721,9 +724,9 @@ void grEnumTest ( chid chan, unsigned interestLevel )
SEVCHK (status, "DBR_GR_ENUM ca_get()");
status = ca_pend_io (timeoutToPendIO);
assert (status == ECA_NORMAL);
verify (status == ECA_NORMAL);
assert ( ge.no_str >= 0 && ge.no_str < NELEMENTS(ge.strs) );
verify ( ge.no_str >= 0 && ge.no_str < NELEMENTS(ge.strs) );
if ( ge.no_str > 0 ) {
printf ("Enum state str = {");
count = (unsigned) ge.no_str;
@@ -763,7 +766,7 @@ void ctrlDoubleTest ( chid chan, unsigned interestLevel )
size = sizeof (*pDbl)*ca_element_count(chan);
pDbl = malloc (size);
assert (pDbl!=NULL);
verify (pDbl!=NULL);
/*
* initialize the array
@@ -782,7 +785,7 @@ void ctrlDoubleTest ( chid chan, unsigned interestLevel )
size = dbr_size_n(DBR_CTRL_DOUBLE, ca_element_count(chan));
pCtrlDbl = (struct dbr_ctrl_double *) malloc (size);
assert (pCtrlDbl!=NULL);
verify (pCtrlDbl!=NULL);
/*
* read the array from the PV
@@ -792,14 +795,14 @@ void ctrlDoubleTest ( chid chan, unsigned interestLevel )
chan, pCtrlDbl);
SEVCHK (status, "ctrlDoubleTest, ca_array_get");
status = ca_pend_io ( timeoutToPendIO );
assert (status==ECA_NORMAL);
verify (status==ECA_NORMAL);
/*
* verify the result
*/
for (i=0; i<nElem; i++) {
double diff = pDbl[i] - sin (i*slice);
assert (fabs(diff) < DBL_EPSILON*4);
verify (fabs(diff) < DBL_EPSILON*4);
}
free (pCtrlDbl);
@@ -830,7 +833,7 @@ void verifyBlockInPendIO ( chid chan, unsigned interestLevel )
"get block test failed - val written %d\n", req );
printf (
"get block test failed - val read %d\n", resp );
assert ( 0 );
verify ( 0 );
}
}
else if ( resp != -100 ) {
@@ -847,7 +850,7 @@ void verifyBlockInPendIO ( chid chan, unsigned interestLevel )
"get block test failed - val written %d\n", req);
printf (
"get block test failed - val read %d\n", resp);
assert(0);
verify (0);
}
showProgressEnd ( interestLevel );
}
@@ -879,7 +882,7 @@ void floatTest ( chid chan, dbr_float_t beginValue, dbr_float_t increment,
if ( fabs ( fval - fretval ) > epsilon ) {
printf ( "float test failed val written %f\n", fval );
printf ( "float test failed val read %f\n", fretval );
assert (0);
verify (0);
}
fval += increment;
}
@@ -909,7 +912,7 @@ void doubleTest ( chid chan, dbr_double_t beginValue,
if ( fabs ( fval - fretval ) > epsilon ) {
printf ( "double test failed val written %f\n", fval );
printf ( "double test failed val read %f\n", fretval );
assert ( 0 );
verify ( 0 );
}
fval += increment;
}
@@ -960,7 +963,7 @@ void verifyAnalogIO ( chid chan, int dataType, double min, double max,
(dbr_double_t) epsil, iter );
}
else {
assert ( 0 );
verify ( 0 );
}
}
base = max;
@@ -981,7 +984,7 @@ void verifyAnalogIO ( chid chan, int dataType, double min, double max,
(dbr_double_t) epsil, iter );
}
else {
assert ( 0 );
verify ( 0 );
}
}
base = - max;
@@ -1002,7 +1005,7 @@ void verifyAnalogIO ( chid chan, int dataType, double min, double max,
(dbr_double_t) epsil, iter );
}
else {
assert ( 0 );
verify ( 0 );
}
}
showProgressEnd ( interestLevel );
@@ -1042,7 +1045,7 @@ void verifyLongIO ( chid chan, unsigned interestLevel )
ca_get ( DBR_LONG, chan, &rdbk );
status = ca_pend_io ( timeoutToPendIO );
SEVCHK ( status, "get pend failed\n" );
assert ( iter == rdbk );
verify ( iter == rdbk );
}
showProgressEnd ( interestLevel );
}
@@ -1087,7 +1090,7 @@ void verifyShortIO ( chid chan, unsigned interestLevel )
ca_get ( DBR_SHORT, chan, &rdbk );
status = ca_pend_io ( timeoutToPendIO );
SEVCHK ( status, "get pend failed\n" );
assert ( iter == rdbk );
verify ( iter == rdbk );
}
showProgressEnd ( interestLevel );
}
@@ -1198,7 +1201,7 @@ void verifyHighThroughputWriteCallback ( chid chan, unsigned interestLevel )
status = ca_pend_io ( timeoutToPendIO );
SEVCHK ( status,
"verifyHighThroughputWriteCallback, verification get pend" );
assert ( dval == i );
verify ( dval == i );
showProgressEnd ( interestLevel );
}
else {
@@ -1219,14 +1222,14 @@ void verifyBadString ( chid chan, unsigned interestLevel )
showProgressBegin ( "verifyBadString", interestLevel );
memset (stimStr, 'a', sizeof (stimStr) );
status = ca_array_put ( DBR_STRING, 1u, chan, stimStr );
assert ( status != ECA_NORMAL );
verify ( status != ECA_NORMAL );
sprintf ( stimStr, "%u", 8u );
status = ca_array_put ( DBR_STRING, 1u, chan, stimStr );
assert ( status == ECA_NORMAL );
verify ( status == ECA_NORMAL );
status = ca_array_get ( DBR_STRING, 1u, chan, respStr );
assert ( status == ECA_NORMAL );
verify ( status == ECA_NORMAL );
status = ca_pend_io ( timeoutToPendIO );
assert ( status == ECA_NORMAL );
verify ( status == ECA_NORMAL );
if ( strcmp ( stimStr, respStr ) ) {
printf (
"Test fails if stim \"%s\" isnt roughly equiv to resp \"%s\"\n",
@@ -1473,7 +1476,7 @@ void channelClearWithEventTrafficTest ( const char *pName, unsigned interestLeve
CA_PRIORITY_DEFAULT, &chan );
status = ca_pend_io ( timeoutToPendIO );
SEVCHK ( status, "channelClearWithEventTrafficTest: channel connect failed" );
assert ( status == ECA_NORMAL );
verify ( status == ECA_NORMAL );
count = 0u;
SEVCHK ( ca_add_event ( DBR_GR_FLOAT, chan, noopSubscriptionStateChange,
@@ -1516,7 +1519,7 @@ void selfDeleteEvent ( struct event_handler_args args )
{
int status;
status = ca_clear_event ( globalEventID );
assert ( status == ECA_NORMAL );
verify ( status == ECA_NORMAL );
}
void eventClearTest ( chid chan )
@@ -1601,7 +1604,7 @@ void exceptionTest ( chid chan, unsigned interestLevel )
SEVCHK ( status, "exception notify install failed" );
pRS = malloc ( ca_element_count (chan) * sizeof (*pRS) );
assert ( pRS );
verify ( pRS );
status = ca_array_get ( DBR_PUT_ACKT,
ca_element_count (chan), chan, pRS );
SEVCHK ( status, "array read request failed" );
@@ -1627,7 +1630,7 @@ void exceptionTest ( chid chan, unsigned interestLevel )
status = ca_array_get_callback ( DBR_PUT_ACKT,
ca_element_count (chan), chan, arrayEventExceptionNotify, 0 );
if ( status != ECA_NORMAL ) {
assert ( status == ECA_BADTYPE || status == ECA_GETFAIL );
verify ( status == ECA_BADTYPE || status == ECA_GETFAIL );
arrayEventExceptionNotifyComplete = 1;
}
ca_flush_io ();
@@ -1651,7 +1654,7 @@ void exceptionTest ( chid chan, unsigned interestLevel )
status = ca_add_array_event ( DBR_PUT_ACKT, ca_element_count ( chan ),
chan, arrayEventExceptionNotify, 0, 0.0, 0.0, 0.0, &id );
if ( status != ECA_NORMAL ) {
assert ( status == ECA_BADTYPE || status == ECA_GETFAIL );
verify ( status == ECA_BADTYPE || status == ECA_GETFAIL );
arrayEventExceptionNotifyComplete = 1;
}
ca_flush_io ();
@@ -1679,14 +1682,14 @@ void exceptionTest ( chid chan, unsigned interestLevel )
SEVCHK ( status, "exception notify install failed" );
pWS = malloc ( ca_element_count (chan) * MAX_STRING_SIZE );
assert ( pWS );
verify ( pWS );
for ( i = 0; i < ca_element_count (chan); i++ ) {
strcpy ( pWS[i], "@#$%" );
}
status = ca_array_put ( DBR_STRING,
ca_element_count (chan), chan, pWS );
if ( status != ECA_NORMAL ) {
assert ( status == ECA_BADTYPE || status == ECA_PUTFAIL );
verify ( status == ECA_BADTYPE || status == ECA_PUTFAIL );
acctstExceptionCount++; /* local PV case */
}
ca_flush_io ();
@@ -1711,7 +1714,7 @@ void exceptionTest ( chid chan, unsigned interestLevel )
unsigned i;
pWS = malloc ( ca_element_count (chan) * MAX_STRING_SIZE );
assert ( pWS );
verify ( pWS );
for ( i = 0; i < ca_element_count (chan); i++ ) {
strcpy ( pWS[i], "@#$%" );
}
@@ -1751,7 +1754,7 @@ void arrayReadNotify ( struct event_handler_args args )
dbr_double_t *pRF = ( dbr_double_t * ) ( args.dbr );
int i;
for ( i = 0; i < args.count; i++ ) {
assert ( pWF[i] == pRF[i] );
verify ( pWF[i] == pRF[i] );
}
arrayReadNotifyComplete = 1;
}
@@ -1781,10 +1784,10 @@ void arrayTest ( chid chan, unsigned maxArrayBytes, unsigned interestLevel )
showProgressBegin ( "arrayTest", interestLevel );
pRF = (dbr_double_t *) calloc ( ca_element_count (chan), sizeof (*pRF) );
assert ( pRF != NULL );
verify ( pRF != NULL );
pWF = (dbr_double_t *) calloc ( ca_element_count (chan), sizeof (*pWF) );
assert ( pWF != NULL );
verify ( pWF != NULL );
/*
* write some random numbers into the array
@@ -1810,7 +1813,7 @@ void arrayTest ( chid chan, unsigned maxArrayBytes, unsigned interestLevel )
* verify read response matches values written
*/
for ( i = 0; i < ca_element_count ( chan ); i++ ) {
assert ( pWF[i] == pRF[i] );
verify ( pWF[i] == pRF[i] );
}
/*
@@ -1823,7 +1826,7 @@ void arrayTest ( chid chan, unsigned maxArrayBytes, unsigned interestLevel )
if ( size <= maxArrayBytes ) {
pRS = malloc ( ca_element_count (chan) * MAX_STRING_SIZE );
assert ( pRS );
verify ( pRS );
status = ca_array_get ( DBR_STRING,
ca_element_count (chan), chan, pRS );
SEVCHK ( status, "array read request failed" );
@@ -1897,7 +1900,7 @@ void arrayTest ( chid chan, unsigned maxArrayBytes, unsigned interestLevel )
}
}
else {
assert ( status == ECA_BADCOUNT );
verify ( status == ECA_BADCOUNT );
}
status = ca_add_exception_event ( 0, 0 );
SEVCHK ( status, "exception notify install failed" );
@@ -1926,54 +1929,54 @@ void unequalServerBufferSizeTest ( const char * pName, unsigned interestLevel )
/* this test must be run when no channels are connected */
connections = ca_get_ioc_connection_count ();
assert ( connections == 0u );
verify ( connections == 0u );
status = ca_create_channel ( pName, 0, 0, 0, & newChan );
assert ( status == ECA_NORMAL );
verify ( status == ECA_NORMAL );
status = ca_pend_io ( timeoutToPendIO );
assert ( status == ECA_NORMAL );
verify ( status == ECA_NORMAL );
showProgress ( interestLevel );
if ( ! ca_write_access ( newChan ) ) {
printf ( "skipping unequal buffer size test - no write access\n" );
status = ca_clear_channel ( newChan );
assert ( status == ECA_NORMAL );
verify ( status == ECA_NORMAL );
return;
}
pRF = (dbr_double_t *) calloc ( ca_element_count (newChan), sizeof (*pRF) );
assert ( pRF != NULL );
verify ( pRF != NULL );
pWF = (dbr_double_t *) calloc ( ca_element_count (newChan), sizeof (*pWF) );
assert ( pWF != NULL );
verify ( pWF != NULL );
status = ca_array_get ( DBR_DOUBLE, ca_element_count ( newChan ),
newChan, pRF );
status = ca_pend_io ( timeoutToPendIO );
assert ( status == ECA_NORMAL );
verify ( status == ECA_NORMAL );
status = ca_clear_channel ( newChan );
assert ( status == ECA_NORMAL );
verify ( status == ECA_NORMAL );
showProgress ( interestLevel );
status = ca_create_channel ( pName, 0, 0, 0, &newChan );
assert ( status == ECA_NORMAL );
verify ( status == ECA_NORMAL );
status = ca_pend_io ( timeoutToPendIO );
assert ( status == ECA_NORMAL );
verify ( status == ECA_NORMAL );
showProgress ( interestLevel );
status = ca_array_put ( DBR_DOUBLE, ca_element_count ( newChan ),
newChan, pWF );
assert ( status == ECA_NORMAL );
verify ( status == ECA_NORMAL );
status = ca_array_get ( DBR_DOUBLE, 1,
newChan, pRF );
assert ( status == ECA_NORMAL );
verify ( status == ECA_NORMAL );
status = ca_pend_io ( timeoutToPendIO );
assert ( status == ECA_NORMAL );
verify ( status == ECA_NORMAL );
status = ca_clear_channel ( newChan );
assert ( status == ECA_NORMAL );
verify ( status == ECA_NORMAL );
free ( pRF );
free ( pWF );
@@ -2002,7 +2005,7 @@ void pend_event_delay_test ( dbr_double_t request )
accuracy = 100.0*(delay-request)/request;
printf ( "CA pend event delay = %f sec results in error = %f %%\n",
request, accuracy );
assert ( fabs(accuracy) < 10.0 );
verify ( fabs(accuracy) < 10.0 );
}
void caTaskExitTest ( unsigned interestLevel )
@@ -2022,26 +2025,26 @@ void verifyDataTypeMacros (void)
int type;
type = dbf_type_to_DBR ( DBF_SHORT );
assert ( type == DBR_SHORT );
verify ( type == DBR_SHORT );
type = dbf_type_to_DBR_STS ( DBF_SHORT );
assert ( type == DBR_STS_SHORT );
verify ( type == DBR_STS_SHORT );
type = dbf_type_to_DBR_GR ( DBF_SHORT );
assert ( type == DBR_GR_SHORT );
verify ( type == DBR_GR_SHORT );
type = dbf_type_to_DBR_CTRL ( DBF_SHORT );
assert ( type == DBR_CTRL_SHORT );
verify ( type == DBR_CTRL_SHORT );
type = dbf_type_to_DBR_TIME ( DBF_SHORT );
assert ( type == DBR_TIME_SHORT );
assert ( strcmp ( dbr_type_to_text( DBR_SHORT ), "DBR_SHORT" ) == 0 );
assert ( strcmp ( dbf_type_to_text( DBF_SHORT ), "DBF_SHORT" ) == 0 );
assert ( dbr_type_is_SHORT ( DBR_SHORT ) );
assert ( dbr_type_is_valid ( DBR_SHORT ) );
assert ( dbf_type_is_valid ( DBF_SHORT ) );
verify ( type == DBR_TIME_SHORT );
verify ( strcmp ( dbr_type_to_text( DBR_SHORT ), "DBR_SHORT" ) == 0 );
verify ( strcmp ( dbf_type_to_text( DBF_SHORT ), "DBF_SHORT" ) == 0 );
verify ( dbr_type_is_SHORT ( DBR_SHORT ) );
verify ( dbr_type_is_valid ( DBR_SHORT ) );
verify ( dbf_type_is_valid ( DBF_SHORT ) );
{
int dataType = -1;
dbf_text_to_type ( "DBF_SHORT", dataType );
assert ( dataType == DBF_SHORT );
verify ( dataType == DBF_SHORT );
dbr_text_to_type ( "DBR_CLASS_NAME", dataType );
assert ( dataType == DBR_CLASS_NAME );
verify ( dataType == DBR_CLASS_NAME );
}
}
@@ -2084,7 +2087,7 @@ void clearChannelInGetCallbackTest ( const char *pName, unsigned level )
for ( i = 0; ca_get_ioc_connection_count () > 0 ; i++ ) {
ca_pend_event ( 0.1 );
assert ( i < 100 );
verify ( i < 100 );
}
status = ca_create_channel ( pName, 0, 0, 0, & chan );
@@ -2098,7 +2101,7 @@ void clearChannelInGetCallbackTest ( const char *pName, unsigned level )
for ( i = 0; ca_get_ioc_connection_count () > 0 ; i++ ) {
ca_pend_event ( 0.1 );
assert ( i < 100 );
verify ( i < 100 );
}
showProgressEnd ( level );
@@ -2115,7 +2118,7 @@ void clearChannelInPutCallbackTest ( const char *pName, unsigned level )
for ( i = 0; ca_get_ioc_connection_count () > 0 ; i++ ) {
ca_pend_event ( 0.1 );
assert ( i < 100 );
verify ( i < 100 );
}
status = ca_create_channel ( pName, 0, 0, 0, & chan );
@@ -2130,7 +2133,7 @@ void clearChannelInPutCallbackTest ( const char *pName, unsigned level )
for ( i = 0; ca_get_ioc_connection_count () > 0 ; i++ ) {
ca_pend_event ( 0.1 );
assert ( i < 100 );
verify ( i < 100 );
}
showProgressEnd ( level );
@@ -2146,7 +2149,7 @@ void clearChannelInSubscrCallbackTest ( const char *pName, unsigned level )
for ( i = 0; ca_get_ioc_connection_count () > 0 ; i++ ) {
ca_pend_event ( 0.1 );
assert ( i < 100 );
verify ( i < 100 );
}
status = ca_create_channel ( pName, 0, 0, 0, & chan );
@@ -2161,7 +2164,7 @@ void clearChannelInSubscrCallbackTest ( const char *pName, unsigned level )
for ( i = 0; ca_get_ioc_connection_count () > 0 ; i++ ) {
ca_pend_event ( 0.1 );
assert ( i < 100 );
verify ( i < 100 );
}
showProgressEnd ( level );
@@ -2172,7 +2175,7 @@ void monitorAddConnectionCallback ( struct connection_handler_args args )
if ( args.op == CA_OP_CONN_UP ) {
unsigned * pEventCount = ( unsigned * ) ca_puser ( args.chid );
int status;
assert ( *pEventCount == 0u );
verify ( *pEventCount == 0u );
(*pEventCount)++;
status = ca_create_subscription ( DBR_DOUBLE, 1,
args.chid, DBE_VALUE, nUpdatesTester, ca_puser ( args.chid ), 0 );
@@ -2201,7 +2204,7 @@ void monitorAddConnectionCallbackTest ( const char *pName, unsigned interestLeve
for ( i = 0; ca_get_ioc_connection_count () > 0 ; i++ ) {
ca_pend_event ( 0.1 );
assert ( i < 100 );
verify ( i < 100 );
}
status = ca_create_channel ( pName,
@@ -2211,15 +2214,15 @@ void monitorAddConnectionCallbackTest ( const char *pName, unsigned interestLeve
while ( eventCount < 2 ) {
ca_pend_event ( 0.1 );
}
assert ( eventCount == 2u );
verify ( eventCount == 2u );
status = ca_get_callback ( DBR_DOUBLE, chan, nUpdatesTester, &getCallbackCount );
SEVCHK ( status, "monitorAddConnectionCallback get callback" );
while ( getCallbackCount == 0 ) {
ca_pend_event ( 0.1 );
}
assert ( eventCount == 2u );
assert ( getCallbackCount == 1u );
verify ( eventCount == 2u );
verify ( getCallbackCount == 1u );
status = ca_clear_channel ( chan );
SEVCHK ( status, "monitorAddConnectionCallbackTest clear channel" );
@@ -2308,7 +2311,7 @@ void monitorUpdateTest ( chid chan, unsigned interestLevel )
}
printf ( "-" );
fflush ( stdout );
assert ( tries++ < 50 );
verify ( tries++ < 50 );
}
showProgress ( interestLevel );
@@ -2341,7 +2344,7 @@ void monitorUpdateTest ( chid chan, unsigned interestLevel )
if ( getResp != temp ) {
printf ( "getResp=%f, temp=%f\n", getResp, temp );
assert ( getResp == temp );
verify ( getResp == temp );
}
/*
@@ -2358,7 +2361,7 @@ void monitorUpdateTest ( chid chan, unsigned interestLevel )
* we shouldnt see old monitors because
* we resubscribed
*/
assert ( test[j].count <= i + 2 );
verify ( test[j].count <= i + 2 );
if ( test[j].lastValue == temp ) {
if ( test[j].count < i + 1 ) {
tmpFlowCtrlCount++;
@@ -2371,7 +2374,7 @@ void monitorUpdateTest ( chid chan, unsigned interestLevel )
break;
}
if ( passCount == prevPassCount ) {
assert ( tries++ < 500 );
verify ( tries++ < 500 );
if ( tries % 50 == 0 ) {
for ( j = 0; j <= i; j++ ) {
dbr_float_t pat = monitorUpdateTestPattern ( j );
@@ -2431,7 +2434,7 @@ void verifyReasonableBeaconPeriod ( chid chan, unsigned interestLevel )
ca_name ( chan ), beaconPeriod );
watchDogDelay = ca_receive_watchdog_delay ( chan );
assert ( watchDogDelay >= 0.0 );
verify ( watchDogDelay >= 0.0 );
printf ( "busy: receive watchdog for \"%s\" expires in %g sec.\n",
ca_name ( chan ), watchDogDelay );
@@ -2449,7 +2452,7 @@ void verifyReasonableBeaconPeriod ( chid chan, unsigned interestLevel )
}
watchDogDelay = ca_receive_watchdog_delay ( chan );
assert ( watchDogDelay >= 0.0 );
verify ( watchDogDelay >= 0.0 );
printf ( "inactive: receive watchdog for \"%s\" expires in %g sec.\n",
ca_name ( chan ), watchDogDelay );
@@ -2468,9 +2471,9 @@ void verifyOldPend ( unsigned interestLevel )
* verify that the old ca_pend() is in the symbol table
*/
status = ca_pend ( 100000.0, 1 );
assert ( status == ECA_NORMAL );
verify ( status == ECA_NORMAL );
status = ca_pend ( 1e-12, 0 );
assert ( status == ECA_TIMEOUT );
verify ( status == ECA_TIMEOUT );
showProgressEnd ( interestLevel );
}
@@ -2488,21 +2491,21 @@ void verifyTimeStamps ( chid chan, unsigned interestLevel )
showProgressBegin ( "verifyTimeStamps", interestLevel );
status = epicsTimeGetCurrent ( & localTime );
assert ( status >= 0 );
verify ( status >= 0 );
status = ca_get ( DBR_TIME_DOUBLE, chan, & first );
SEVCHK ( status, "fetch of dbr time double failed\n" );
status = ca_pend_io ( timeoutToPendIO );
assert ( status == ECA_NORMAL );
verify ( status == ECA_NORMAL );
status = ca_get ( DBR_TIME_DOUBLE, chan, & last );
SEVCHK ( status, "fetch of dbr time double failed\n" );
status = ca_pend_io ( timeoutToPendIO );
assert ( status == ECA_NORMAL );
verify ( status == ECA_NORMAL );
length = epicsTimeToStrftime ( buf, sizeof ( buf ),
"%a %b %d %Y %H:%M:%S.%f", & first.stamp );
assert ( length );
verify ( length );
printf ("Processing time of channel \"%s\" was \"%s\"\n",
ca_name ( chan ), buf );
@@ -2556,7 +2559,7 @@ void verifyChannelPriorities ( const char *pName, unsigned interestLevel )
status = ca_pend_io ( timeoutToPendIO );
SEVCHK ( status, "prioritized channel connect failed" );
assert ( status == ECA_NORMAL );
verify ( status == ECA_NORMAL );
value = i;
status = ca_put ( DBR_DOUBLE, chan0, &value );
@@ -2595,7 +2598,7 @@ void verifyTearDownWhenChannelConnected ( const char * pName,
double * const pValues = (double * const) calloc ( chanCount, sizeof ( *pValues ) );
unsigned i, j;
assert ( pChans && pValues );
verify ( pChans && pValues );
showProgressBegin ( "verifyTearDownWhenChannelConnected", interestLevel );
@@ -2609,7 +2612,7 @@ void verifyTearDownWhenChannelConnected ( const char * pName,
}
status = ca_pend_io ( timeoutToPendIO );
SEVCHK ( status, "immediate tear down channel connect failed" );
assert ( status == ECA_NORMAL );
verify ( status == ECA_NORMAL );
for ( j = 0; j < chanCount; j++ ) {
status = ca_get ( DBR_DOUBLE, pChans[j], &pValues[j] );
@@ -2649,7 +2652,7 @@ void verifyImmediateTearDown ( const char * pName,
SEVCHK ( status, "immediate tear down channel create failed" );
status = ca_pend_io ( timeoutToPendIO );
SEVCHK ( status, "immediate tear down channel connect failed" );
assert ( status == ECA_NORMAL );
verify ( status == ECA_NORMAL );
/*
* verify that puts pending when we call ca_task_exit()
* get flushed out
@@ -2662,7 +2665,7 @@ void verifyImmediateTearDown ( const char * pName,
SEVCHK ( status, "immediate tear down channel get failed" );
if ( currentValue != ( (i - 1) % 8 ) ) {
printf ( "currentValue = %i, i = %i\n", currentValue, i );
assert ( currentValue == ( (i - 1) % 8 ) );
verify ( currentValue == ( (i - 1) % 8 ) );
}
}
status = ca_put ( DBR_LONG, chan, & value );
@@ -2703,12 +2706,12 @@ void fdRegCB ( void * parg, int fd, int opened )
if ( opened ) {
status = fdmgr_add_callback (
mgrCtx, fd, fdi_read, fdcb, 0 );
assert ( status >= 0 );
verify ( status >= 0 );
}
else {
status = fdmgr_clear_callback (
mgrCtx, fd, fdi_read );
assert ( status >= 0 );
verify ( status >= 0 );
}
}
@@ -2723,46 +2726,46 @@ void fdManagerVerify ( const char * pName, unsigned interestLevel )
epicsTimeStamp begin, end;
mgrCtx = fdmgr_init ();
assert ( mgrCtx );
verify ( mgrCtx );
showProgressBegin ( "fdManagerVerify", interestLevel );
status = ca_add_fd_registration ( fdRegCB, mgrCtx );
assert ( status == ECA_NORMAL );
verify ( status == ECA_NORMAL );
status = ca_create_channel ( pName, 0, 0, 0, & newChan );
assert ( status == ECA_NORMAL );
verify ( status == ECA_NORMAL );
while ( ca_state ( newChan ) != cs_conn ) {
tmo.tv_sec = 6000;
tmo.tv_usec = 0;
status = fdmgr_pend_event ( mgrCtx, & tmo );
assert ( status >= 0 );
verify ( status >= 0 );
}
showProgress ( interestLevel );
status = ca_add_event ( DBR_FLOAT, newChan,
nUpdatesTester, & eventCount, & subscription );
assert ( status == ECA_NORMAL );
verify ( status == ECA_NORMAL );
status = ca_flush_io ();
assert ( status == ECA_NORMAL );
verify ( status == ECA_NORMAL );
while ( eventCount < 1 ) {
tmo.tv_sec = 6000;
tmo.tv_usec = 0;
status = fdmgr_pend_event ( mgrCtx, & tmo );
assert ( status >= 0 );
verify ( status >= 0 );
}
showProgress ( interestLevel );
status = ca_clear_event ( subscription );
assert ( status == ECA_NORMAL );
verify ( status == ECA_NORMAL );
status = ca_flush_io ();
assert ( status == ECA_NORMAL );
verify ( status == ECA_NORMAL );
/* look for infinite loop in fd manager schedualing */
epicsTimeGetCurrent ( & begin );
@@ -2772,25 +2775,25 @@ void fdManagerVerify ( const char * pName, unsigned interestLevel )
tmo.tv_sec = 1;
tmo.tv_usec = 0;
status = fdmgr_pend_event ( mgrCtx, & tmo );
assert ( status >= 0 );
verify ( status >= 0 );
epicsTimeGetCurrent ( & end );
delay = epicsTimeDiffInSeconds ( & end, & begin );
if ( delay >= 1.0 ) {
break;
}
assert ( eventCount++ < 100 );
verify ( eventCount++ < 100 );
}
showProgress ( interestLevel );
status = ca_clear_channel ( newChan );
assert ( status == ECA_NORMAL );
verify ( status == ECA_NORMAL );
status = ca_add_fd_registration ( 0, 0 );
assert ( status == ECA_NORMAL );
verify ( status == ECA_NORMAL );
status = fdmgr_delete ( mgrCtx );
assert ( status >= 0 );
verify ( status >= 0 );
showProgressEnd ( interestLevel );
}
@@ -2809,11 +2812,11 @@ void verifyConnectWithDisconnectedChannels (
char buf[256];
sprintf ( buf, "aChannelThatShouldNeverNeverNeverExist%u", i );
status = ca_create_channel ( buf, 0, 0, 0, & bogusChan[i] );
assert ( status == ECA_NORMAL );
verify ( status == ECA_NORMAL );
}
status = ca_pend_io ( 0.001 );
assert ( status == ECA_TIMEOUT );
verify ( status == ECA_TIMEOUT );
/* wait a long time for the search interval to increase */
for ( i= 0u; i < 10; i++ ) {
@@ -2822,7 +2825,7 @@ void verifyConnectWithDisconnectedChannels (
}
status = ca_create_channel ( pName, 0, 0, 0, & validChan );
assert ( status == ECA_NORMAL );
verify ( status == ECA_NORMAL );
/*
* we should be able to connect to a valid
@@ -2831,14 +2834,14 @@ void verifyConnectWithDisconnectedChannels (
* diasconnected channel
*/
status = ca_pend_io ( timeoutToPendIO );
assert ( status == ECA_NORMAL );
verify ( status == ECA_NORMAL );
status = ca_clear_channel ( validChan );
assert ( status == ECA_NORMAL );
verify ( status == ECA_NORMAL );
for ( i= 0u; i < NELEMENTS ( bogusChan ); i++ ) {
status = ca_clear_channel ( bogusChan[i] );
assert ( status == ECA_NORMAL );
verify ( status == ECA_NORMAL );
}
showProgressEnd ( interestLevel );
@@ -2991,7 +2994,7 @@ void verifyContextRundownFlush ( const char * pName, unsigned interestLevel )
status = ca_pend_io ( timeoutToPendIO );
SEVCHK ( status, "get, pend io failed" );
assert ( stim == resp );
verify ( stim == resp );
status = ca_clear_channel ( chan );
SEVCHK ( status, NULL );
@@ -3064,7 +3067,7 @@ int acctst ( const char * pName, unsigned interestLevel, unsigned channelCount,
verifyDataTypeMacros ();
connections = ca_get_ioc_connection_count ();
assert ( connections == 0u );
verify ( connections == 0u );
unequalServerBufferSizeTest ( pName, interestLevel );
clearChannelInGetCallbackTest ( pName, interestLevel );
clearChannelInPutCallbackTest ( pName, interestLevel );
@@ -3083,7 +3086,7 @@ int acctst ( const char * pName, unsigned interestLevel, unsigned channelCount,
ca_element_count ( chan ) );
connections = ca_get_ioc_connection_count ();
assert ( connections == 1u || connections == 0u );
verify ( connections == 1u || connections == 0u );
if ( connections == 0u ) {
printf ( "testing with a local channel\n" );
}
@@ -3135,7 +3138,7 @@ int acctst ( const char * pName, unsigned interestLevel, unsigned channelCount,
/* ca_client_status ( 6u ); info about each channel */
pChans = calloc ( channelCount, sizeof ( *pChans ) );
assert ( pChans );
verify ( pChans );
for ( i = 0; i < channelCount; i++ ) {
strncpy ( pChans[ i ].name, pName, sizeof ( pChans[ i ].name ) );