diff --git a/modules/database/test/ioc/db/Makefile b/modules/database/test/ioc/db/Makefile index ad1d3d9b7..f66d3db32 100644 --- a/modules/database/test/ioc/db/Makefile +++ b/modules/database/test/ioc/db/Makefile @@ -183,6 +183,7 @@ testHarness_SRCS += dbStaticTest.c TESTFILES += ../dbStaticTest.db TESTFILES += ../dbStaticTestAlias1.db TESTFILES += ../dbStaticTestAlias2.db +TESTFILES += ../dbStaticTestRemove.db TESTS += dbStaticTest # This runs all the test programs in a known working order: diff --git a/modules/database/test/ioc/db/dbStaticTest.c b/modules/database/test/ioc/db/dbStaticTest.c index d118c790a..6bc836aae 100644 --- a/modules/database/test/ioc/db/dbStaticTest.c +++ b/modules/database/test/ioc/db/dbStaticTest.c @@ -14,6 +14,35 @@ #include #include + +static void testEntryRemoved(const char *pv) +{ + DBENTRY entry; + + testDiag("testEntryRemoved(\"%s\")", pv); + + dbInitEntry(pdbbase, &entry); + + testOk(dbFindRecord(&entry, pv)==S_dbLib_recNotFound, + "Record '%s' not present", pv); + + dbFinishEntry(&entry); +} + +static void testEntryPresent(const char *pv) +{ + DBENTRY entry; + + testDiag("testEntryPresent(\"%s\")", pv); + + dbInitEntry(pdbbase, &entry); + + testOk(dbFindRecord(&entry, pv)==0, + "Record '%s' present", pv); + + dbFinishEntry(&entry); +} + static void testEntry(const char *pv) { DBENTRY entry; @@ -310,7 +339,7 @@ MAIN(dbStaticTest) const char *ldir; FILE *fp = NULL; - testPlan(312); + testPlan(338); testdbPrepare(); testdbReadDatabase("dbTestIoc.dbd", NULL, NULL); @@ -325,6 +354,16 @@ MAIN(dbStaticTest) ldir, OSI_PATH_LIST_SEPARATOR); } + dbPath(pdbbase,"." OSI_PATH_LIST_SEPARATOR ".."); + ldir = dbOpenFile(pdbbase, "dbStaticTestRemove.db", &fp); + if(!fp) { + testAbort("Unable to read dbStaticTestRemove.db"); + } + if(dbReadDatabaseFP(&pdbbase, fp, NULL, NULL)) { + testAbort("Unable to load %s%sdbStaticTestRemove.db", + ldir, OSI_PATH_LIST_SEPARATOR); + } + testWrongAliasRecord("dbStaticTestAlias1.db"); testWrongAliasRecord("dbStaticTestAlias2.db"); @@ -341,6 +380,20 @@ MAIN(dbStaticTest) testRec2Entry("testalias2"); testRec2Entry("testalias3"); + testEntryPresent("testdelrec"); + testEntryPresent("testdelrec6"); + testEntryPresent("testdelalias66"); + testEntryRemoved("testdelrec1"); + testEntryRemoved("testdelrec2"); + testEntryRemoved("testdelrec3"); + testEntryRemoved("testdelrec4"); + testEntryRemoved("testdelrec5"); + testEntryRemoved("testdelalias6"); + testEntryRemoved("testdelrec7"); + testEntryRemoved("testdelalias7"); + testEntryRemoved("testdelalias77"); + testEntryRemoved("testdelrec8"); + eltc(0); testIocInitOk(); eltc(1); @@ -358,6 +411,20 @@ MAIN(dbStaticTest) testRec2Entry("testalias2"); testRec2Entry("testalias3"); + testEntryPresent("testdelrec"); + testEntryPresent("testdelrec6"); + testEntryPresent("testdelalias66"); + testEntryRemoved("testdelrec1"); + testEntryRemoved("testdelrec2"); + testEntryRemoved("testdelrec3"); + testEntryRemoved("testdelrec4"); + testEntryRemoved("testdelrec5"); + testEntryRemoved("testdelalias6"); + testEntryRemoved("testdelrec7"); + testEntryRemoved("testdelalias7"); + testEntryRemoved("testdelalias77"); + testEntryRemoved("testdelrec8"); + testDbVerify("testrec"); testIocShutdownOk(); diff --git a/modules/database/test/ioc/db/dbStaticTestRemove.db b/modules/database/test/ioc/db/dbStaticTestRemove.db new file mode 100644 index 000000000..cd5f76bc1 --- /dev/null +++ b/modules/database/test/ioc/db/dbStaticTestRemove.db @@ -0,0 +1,45 @@ +record(x, "testdelrec") { } + +record(x, "testdelrec1") { } + +record(x, "testdelrec2") { + field("INP", "foobar") +} + +record(x, "testdelrec3") { + info("foo", "bar") +} + +record(x, "testdelrec4") { + field("INP", "testdelrec.VAL") +} + +record(x, "testdelrec5") { + field("FLNK", "testdelrec.VAL") +} + +record(x, "testdelrec6") { } + +alias("testdelrec6", "testdelalias6") +alias("testdelrec6", "testdelalias66") + + +record(x, "testdelrec7") { } + +alias("testdelrec7", "testdelalias7") +alias("testdelrec7", "testdelalias77") + + +record(x, "testdelrec8") { + field("INP", "{z:{good:1}}") +} + +record("#", "testdelrec1") { } +record("#", "testdelrec2") { } +record("#", "testdelrec3") { } +record("#", "testdelrec4") { } +record("#", "testdelrec5") { } +record("#", "testdelalias6") { } +record("#", "testdelrec7") { } +record("#", "testdelrec8") { } +