From fc8d4c2b5f3b50be57cdf002596469df8a42dcdc Mon Sep 17 00:00:00 2001 From: Michael Davidsaver Date: Tue, 4 Apr 2017 20:55:21 -0400 Subject: [PATCH] db/test: dbPutGetTest add test for lp:1678494 --- src/ioc/db/test/dbPutGetTest.c | 33 ++++++++++++++++++++++++++++++++- src/ioc/db/test/dbPutGetTest.db | 6 ++++++ 2 files changed, 38 insertions(+), 1 deletion(-) diff --git a/src/ioc/db/test/dbPutGetTest.c b/src/ioc/db/test/dbPutGetTest.c index 5c3bbf045..69cb09812 100644 --- a/src/ioc/db/test/dbPutGetTest.c +++ b/src/ioc/db/test/dbPutGetTest.c @@ -1,6 +1,7 @@ #include +#include #include #include #include @@ -58,11 +59,33 @@ void testStringMax(void) testdbGetStringEqual("recmax.DISA", "-1"); } +static +void testLongLink(void) +{ + testDiag("testLonkLink()"); + + testdbGetFieldEqual("lnktest.INP", DBR_STRING, "lnktarget NPP NMS"); + testdbGetFieldEqual("lnktest.INP$", DBR_STRING, "lnktarget NPP NMS"); + testDiag("dbGet() w/ nRequest==1 gets only trailing nil"); + testdbGetFieldEqual("lnktest.INP$", DBR_CHAR, '\0'); + testdbGetArrFieldEqual("lnktest.INP$", DBR_CHAR, 19, 18, "lnktarget NPP NMS"); + + testDiag("get w/ truncation"); + testdbGetArrFieldEqual("lnktest.INP$", DBR_CHAR, 0, 0, NULL); + testdbGetArrFieldEqual("lnktest.INP$", DBR_CHAR, 1, 1, ""); + testdbGetArrFieldEqual("lnktest.INP$", DBR_CHAR, 2, 2, "l"); + testdbGetArrFieldEqual("lnktest.INP$", DBR_CHAR, 3, 3, "ln"); + testdbGetArrFieldEqual("lnktest.INP$", DBR_CHAR, 17, 17, "lnktarget NPP NM"); + testdbGetArrFieldEqual("lnktest.INP$", DBR_CHAR, 18, 18, "lnktarget NPP NMS"); + + testdbGetArrFieldEqual("lnktest.INP", DBR_STRING, 2, 1, "lnktarget NPP NMS"); +} + void dbTestIoc_registerRecordDeviceDriver(struct dbBase *); MAIN(dbPutGet) { - testPlan(13); + testPlan(24); testdbPrepare(); testdbReadDatabase("dbTestIoc.dbd", NULL, NULL); @@ -73,6 +96,14 @@ MAIN(dbPutGet) testStringMax(); + eltc(0); + testIocInitOk(); + eltc(1); + + testLongLink(); + + testIocShutdownOk(); + testdbCleanup(); return testDone(); diff --git a/src/ioc/db/test/dbPutGetTest.db b/src/ioc/db/test/dbPutGetTest.db index 096dbe2e4..bacaa5638 100644 --- a/src/ioc/db/test/dbPutGetTest.db +++ b/src/ioc/db/test/dbPutGetTest.db @@ -33,3 +33,9 @@ record(x, "recoverwrite") { record(x, "recmax") { field(DISA, "0xffffffff") } + +record(x, "lnktarget") {} + +record(x, "lnktest") { + field(INP, "lnktarget NPP NMS") +}