diff --git a/modules/database/src/ioc/dbStatic/dbLexRoutines.c b/modules/database/src/ioc/dbStatic/dbLexRoutines.c index 3aac8e4b1..c2c794212 100644 --- a/modules/database/src/ioc/dbStatic/dbLexRoutines.c +++ b/modules/database/src/ioc/dbStatic/dbLexRoutines.c @@ -155,7 +155,7 @@ static void *getLastTemp(void) return(ptempListNode->item); } -static char *dbOpenFile(DBBASE *pdbbase,const char *filename,FILE **fp) +const char *dbOpenFile(DBBASE *pdbbase,const char *filename,FILE **fp) { ELLLIST *ppathList = (ELLLIST *)pdbbase->pathPvt; dbPathNode *pdbPathNode; diff --git a/modules/database/src/ioc/dbStatic/dbStaticPvt.h b/modules/database/src/ioc/dbStatic/dbStaticPvt.h index c949c6374..c6151994e 100644 --- a/modules/database/src/ioc/dbStatic/dbStaticPvt.h +++ b/modules/database/src/ioc/dbStatic/dbStaticPvt.h @@ -16,6 +16,7 @@ #ifndef INCdbStaticPvth #define INCdbStaticPvth 1 +#include "dbCoreAPI.h" #include "dbStaticLib.h" #ifdef __cplusplus @@ -42,6 +43,9 @@ void dbMsgPrint(DBENTRY *pdbentry, const char *fmt, ...) EPICS_PRINTF_STYLE(2,3) void dbPutStringSuggest(DBENTRY *pdbentry, const char *pstring); +DBCORE_API +const char *dbOpenFile(DBBASE *pdbbase,const char *filename,FILE **fp); + struct jlink; typedef struct dbLinkInfo { diff --git a/modules/database/test/ioc/db/dbStaticTest.c b/modules/database/test/ioc/db/dbStaticTest.c index 5dabc7555..7cba3cec0 100644 --- a/modules/database/test/ioc/db/dbStaticTest.c +++ b/modules/database/test/ioc/db/dbStaticTest.c @@ -7,6 +7,7 @@ #include #include +#include #include #include #include @@ -294,12 +295,22 @@ void dbTestIoc_registerRecordDeviceDriver(struct dbBase *); MAIN(dbStaticTest) { + const char *ldir; + FILE *fp = NULL; + testPlan(310); testdbPrepare(); testdbReadDatabase("dbTestIoc.dbd", NULL, NULL); dbTestIoc_registerRecordDeviceDriver(pdbbase); - testdbReadDatabase("dbStaticTest.db", NULL, NULL); + dbPath(pdbbase,"." OSI_PATH_LIST_SEPARATOR ".."); + if(!(ldir = dbOpenFile(pdbbase, "dbStaticTest.db", &fp))) { + testAbort("Unable to read dbStaticTest.db"); + } + if(dbReadDatabaseFP(&pdbbase, fp, NULL, NULL)) { + testAbort("Unable to load %s%sdbStaticTest.db", + ldir, OSI_PATH_LIST_SEPARATOR); + } testEntry("testrec.VAL"); testEntry("testalias.VAL");