From dc22a4a4e3eab915f585e6e70dcda8b0f06f595f Mon Sep 17 00:00:00 2001 From: Michael Davidsaver Date: Tue, 22 Jun 2021 07:46:47 -0700 Subject: [PATCH] fix tests wrt. userTag --- testApp/testpdb.cpp | 26 +++++++++++++++++++++--- testApp/testpvif.cpp | 48 ++++++++++++++++++++++++++++++++++---------- 2 files changed, 60 insertions(+), 14 deletions(-) diff --git a/testApp/testpdb.cpp b/testApp/testpdb.cpp index b7eed2f..024563c 100644 --- a/testApp/testpdb.cpp +++ b/testApp/testpdb.cpp @@ -144,6 +144,12 @@ void testSingleMonitor(pvac::ClientProvider& client) if(!mon.poll()) testAbort("Data event w/o data"); +#ifdef HAVE_UTAG + testTrue(mon.changed.get(mon.root->getSubFieldT("timeStamp.userTag")->getFieldOffset())); + mon.changed.clear(mon.root->getSubFieldT("timeStamp.userTag")->getFieldOffset()); +#else + testSkip(1, "!HAVE_UTAG"); +#endif testEqual(mon.changed, pvd::BitSet() .set(mon.root->getSubFieldT("value")->getFieldOffset()) .set(mon.root->getSubFieldT("alarm.severity")->getFieldOffset()) @@ -214,6 +220,12 @@ void testGroupMonitor(pvac::ClientProvider& client) if(!mon.poll()) testAbort("Data event w/o data"); +#ifdef HAVE_UTAG + testTrue(mon.changed.get(mon.root->getSubFieldT("fld1.timeStamp.userTag")->getFieldOffset())); + mon.changed.clear(mon.root->getSubFieldT("fld1.timeStamp.userTag")->getFieldOffset()); +#else + testSkip(1, "!HAVE_UTAG"); +#endif testEqual(mon.changed, pvd::BitSet() .set(mon.root->getSubFieldT("fld1.value")->getFieldOffset()) .set(mon.root->getSubFieldT("fld1.alarm.severity")->getFieldOffset()) @@ -224,7 +236,7 @@ void testGroupMonitor(pvac::ClientProvider& client) testFieldEqual(mon.root, "fld1.value", 32.0); #else - testSkip(20, "No multilock"); + testSkip(21, "No multilock"); #endif } @@ -266,6 +278,14 @@ void testGroupMonitorTriggers(pvac::ClientProvider& client) testShow()<getSubFieldT(NAME)->getFieldOffset() +#ifdef HAVE_UTAG + testTrue(mon.changed.get(OFF("fld1.timeStamp.userTag"))); + mon.changed.clear(OFF("fld1.timeStamp.userTag")); + testTrue(mon.changed.get(OFF("fld2.timeStamp.userTag"))); + mon.changed.clear(OFF("fld2.timeStamp.userTag")); +#else + testSkip(2, "!HAVE_UTAG"); +#endif testEqual(mon.changed, pvd::BitSet() .set(OFF("fld1.value")) .set(OFF("fld1.alarm.severity")) @@ -288,7 +308,7 @@ void testGroupMonitorTriggers(pvac::ClientProvider& client) testOk1(!mon.poll()); #else - testSkip(19, "No multilock"); + testSkip(21, "No multilock"); #endif } @@ -338,7 +358,7 @@ void p2pTestIoc_registerRecordDeviceDriver(struct dbBase *); MAIN(testpdb) { - testPlan(95); + testPlan(99); try{ QSRVRegistrar_counters(); epics::RefSnapshot ref_before; diff --git a/testApp/testpvif.cpp b/testApp/testpvif.cpp index 9427877..df0b609 100644 --- a/testApp/testpvif.cpp +++ b/testApp/testpvif.cpp @@ -72,6 +72,8 @@ void testScalar() testEqual(dbChannelFinalFieldType(chan_mbbi), DBR_ENUM); #ifdef USE_INT64 testEqual(dbChannelFinalFieldType(chan_i64), DBR_INT64); +#else + testSkip(1, "!USE_INT64"); #endif pvd::PVStructurePtr root; @@ -136,6 +138,12 @@ void testScalar() dbScanUnlock((dbCommon*)prec_li); #define OFF(NAME) (epicsUInt32)root->getSubFieldT(NAME)->getFieldOffset() +#ifdef HAVE_UTAG + testTrue(mask.get(OFF("li.timeStamp.userTag"))); + mask.clear(OFF("li.timeStamp.userTag")); +#else + testSkip(1, "!HAVE_UTAG"); +#endif testEqual(mask, pvd::BitSet() .set(OFF("li.value")) .set(OFF("li.alarm.severity")) @@ -168,6 +176,12 @@ void testScalar() dbScanUnlock((dbCommon*)prec_i64); #define OFF(NAME) (epicsUInt32)root->getSubFieldT(NAME)->getFieldOffset() +#ifdef HAVE_UTAG + testTrue(mask.get(OFF("i64.timeStamp.userTag"))); + mask.clear(OFF("i64.timeStamp.userTag")); +#else + testSkip(1, "!HAVE_UTAG"); +#endif testEqual(mask, pvd::BitSet() .set(OFF("i64.value")) .set(OFF("i64.alarm.severity")) @@ -191,7 +205,10 @@ void testScalar() #undef OFF mask.clear(); -#endif +#else // !USE_INT64 + testSkip(2, "!USE_INT64"); + +#endif // USE_INT64 dbScanLock((dbCommon*)prec_si); prec_si->time.secPastEpoch = 0x12345678; @@ -200,6 +217,12 @@ void testScalar() dbScanUnlock((dbCommon*)prec_si); #define OFF(NAME) (epicsUInt32)root->getSubFieldT(NAME)->getFieldOffset() +#ifdef HAVE_UTAG + testTrue(mask.get(OFF("si.timeStamp.userTag"))); + mask.clear(OFF("si.timeStamp.userTag")); +#else + testSkip(1, "!HAVE_UTAG"); +#endif testEqual(mask, pvd::BitSet() .set(OFF("si.value")) .set(OFF("si.alarm.severity")) @@ -207,7 +230,6 @@ void testScalar() .set(OFF("si.alarm.message")) .set(OFF("si.timeStamp.secondsPastEpoch")) .set(OFF("si.timeStamp.nanoseconds")) - //.set(OFF("si.timeStamp.userTag")) .set(OFF("si.display.limitHigh")) .set(OFF("si.display.limitLow")) .set(OFF("si.display.description")) @@ -228,6 +250,14 @@ void testScalar() dbScanUnlock((dbCommon*)prec_ai); #define OFF(NAME) (epicsUInt32)root->getSubFieldT(NAME)->getFieldOffset() +#ifdef HAVE_UTAG + testTrue(mask.get(OFF("ai.timeStamp.userTag"))); + mask.clear(OFF("ai.timeStamp.userTag")); + testTrue(mask.get(OFF("ai_rval.timeStamp.userTag"))); + mask.clear(OFF("ai_rval.timeStamp.userTag")); +#else + testSkip(2, "!HAVE_UTAG"); +#endif testEqual(mask, pvd::BitSet() .set(OFF("ai.value")) .set(OFF("ai.alarm.severity")) @@ -235,7 +265,6 @@ void testScalar() .set(OFF("ai.alarm.message")) .set(OFF("ai.timeStamp.secondsPastEpoch")) .set(OFF("ai.timeStamp.nanoseconds")) - //.set(OFF("ai.timeStamp.userTag")) .set(OFF("ai.display.limitHigh")) .set(OFF("ai.display.limitLow")) .set(OFF("ai.display.description")) @@ -254,7 +283,6 @@ void testScalar() .set(OFF("ai_rval.alarm.message")) .set(OFF("ai_rval.timeStamp.secondsPastEpoch")) .set(OFF("ai_rval.timeStamp.nanoseconds")) - //.set(OFF("ai_rval.timeStamp.userTag")) .set(OFF("ai_rval.display.limitHigh")) .set(OFF("ai_rval.display.limitLow")) .set(OFF("ai_rval.display.description")) @@ -315,6 +343,8 @@ void testScalar() testFieldEqual(root, "i64.display.units", "arb"); testTodoEnd(); testFieldEqual(root, "i64.display.precision", 0); +#else + testSkip(9, "!USE_INT64"); #endif testFieldEqual(root, "si.value", "hello"); @@ -380,15 +410,15 @@ void testScalar() pvif_i64->get(mask); testEqual(prec_i64->val, epicsInt64(-0x8000000000000000LL)); dbScanUnlock((dbCommon*)prec_i64); -#endif -#ifdef USE_INT64 dbScanLock((dbCommon*)prec_i64); mask.clear(); mask.set(root->getSubFieldT("i64.value")->getFieldOffset()); pvif_i64->get(mask); testEqual(prec_i64->val, epicsInt64(-0x8000000000000000LL)); dbScanUnlock((dbCommon*)prec_i64); +#else + testSkip(2, "!USE_INT64"); #endif dbScanLock((dbCommon*)prec_si); @@ -612,11 +642,7 @@ void testFilters() MAIN(testpvif) { - testPlan(80 -#ifdef USE_INT64 - +13 -#endif - ); + testPlan(98); #ifdef USE_INT64 testDiag("Testing of 64-bit field access"); #else