RPRO/PUTF also handle self link case
This commit is contained in:
@@ -40,7 +40,7 @@ void asyncproctest_registerRecordDeviceDriver(struct dbBase *);
|
||||
|
||||
MAIN(asyncproctest)
|
||||
{
|
||||
testPlan(25);
|
||||
testPlan(27);
|
||||
|
||||
done = epicsEventMustCreate(epicsEventEmpty);
|
||||
|
||||
@@ -125,6 +125,22 @@ MAIN(asyncproctest)
|
||||
testdbGetFieldEqual("chain4_lim", DBF_SHORT, 1);
|
||||
}
|
||||
|
||||
testDiag("===== Chain 5 ======");
|
||||
|
||||
{
|
||||
dbCommon *dummy=testdbRecordPtr("chain4_dummy");
|
||||
|
||||
testdbPutFieldOk("chain5_cnt.PROC", DBF_LONG, 0);
|
||||
|
||||
/* sync once queue to wait for any queued RPRO */
|
||||
scanOnceCallback(dummy, dummydone, NULL);
|
||||
|
||||
if (epicsEventWaitWithTimeout(done, 10.0) != epicsEventOK)
|
||||
testAbort("Processing timed out");
|
||||
|
||||
testdbGetFieldEqual("chain5_cnt", DBF_SHORT, 1);
|
||||
}
|
||||
|
||||
testIocShutdownOk();
|
||||
|
||||
testdbCleanup();
|
||||
|
||||
@@ -80,3 +80,11 @@ record(calc,"chain4_lim") {
|
||||
record(bo, "chain4_dummy") {
|
||||
field(TPRO, "$(TPRO=)")
|
||||
}
|
||||
|
||||
# loop breaking regression part 2
|
||||
# selft link should _not_ RPRO
|
||||
record(calcout,"chain5_cnt") {
|
||||
field(CALC, "E:=E+1;E")
|
||||
field(OUT,"chain5_cnt.A PP")
|
||||
field(TPRO, "$(TPRO=)")
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user