add unit tests for record deletion

This commit is contained in:
Hinko Kocevar
2024-06-18 17:55:32 +02:00
committed by Andrew Johnson
parent 535c9c2a06
commit 2f98251c9f
3 changed files with 114 additions and 1 deletions

View File

@ -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:

View File

@ -14,6 +14,35 @@
#include <dbUnitTest.h>
#include <testMain.h>
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();

View File

@ -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") { }