installed some limited self test capabilities so that the hash tables

can be verified during regression testing
This commit is contained in:
Jeff Hill
2001-06-28 22:12:54 +00:00
parent 22abff43bf
commit 69545bc772
6 changed files with 59 additions and 18 deletions

View File

@@ -95,24 +95,27 @@ extern "C" int epicsShareAPI ca_context_create ( int preemptiveCallBackEnable )
{
oldCAC *pcac;
epicsThreadOnce ( &caClientContextIdOnce, ca_init_client_context, 0);
try {
epicsThreadOnce ( &caClientContextIdOnce, ca_init_client_context, 0);
if ( caClientContextId == 0 ) {
return ECA_ALLOCMEM;
}
if ( caClientContextId == 0 ) {
pcac = ( oldCAC * ) epicsThreadPrivateGet ( caClientContextId );
if ( pcac ) {
return ECA_NORMAL;
}
pcac = new oldCAC ( preemptiveCallBackEnable ? true : false );
if ( ! pcac ) {
return ECA_ALLOCMEM;
}
epicsThreadPrivateSet ( caClientContextId, (void *) pcac );
}
catch ( ... ) {
return ECA_ALLOCMEM;
}
pcac = ( oldCAC * ) epicsThreadPrivateGet ( caClientContextId );
if ( pcac ) {
return ECA_NORMAL;
}
pcac = new oldCAC ( preemptiveCallBackEnable ? true : false );
if ( ! pcac ) {
return ECA_ALLOCMEM;
}
epicsThreadPrivateSet ( caClientContextId, (void *) pcac );
return ECA_NORMAL;
}
@@ -963,9 +966,7 @@ extern "C" int epicsShareAPI ca_current_context ( caClientCtx *pCurrentContext )
*/
extern "C" int epicsShareAPI ca_attach_context ( caClientCtx context )
{
oldCAC *pcac;
pcac = (oldCAC *) epicsThreadPrivateGet ( caClientContextId );
oldCAC *pcac = (oldCAC *) epicsThreadPrivateGet ( caClientContextId );
if ( pcac && context != 0 ) {
return ECA_ISATTACHED;
}
@@ -973,6 +974,15 @@ extern "C" int epicsShareAPI ca_attach_context ( caClientCtx context )
return ECA_NORMAL;
}
extern "C" void epicsShareAPI ca_self_test ()
{
oldCAC *pcac = (oldCAC *) epicsThreadPrivateGet ( caClientContextId );
if ( ! pcac ) {
return;
}
pcac->selfTest ();
}
extern "C" epicsShareDef const int epicsTypeToDBR_XXXX [lastEpicsType+1] = {
DBR_SHORT, /* forces conversion fronm uint8 to int16 */
DBR_CHAR,