MojErr MojDbWatchTest::run() { MojDb db; MojErr err = db.open(MojDbTestDir); MojTestErrCheck(err); MojObject type; err = type.fromJson(MojKindStr); MojTestErrCheck(err); err = db.putKind(type); MojTestErrCheck(err); // eq err = eqTest(db); MojTestErrCheck(err); // gt err = gtTest(db); MojTestErrCheck(err); // lt err = ltTest(db); MojTestErrCheck(err); // cancel err = cancelTest(db); MojTestErrCheck(err); // range err = rangeTest(db); MojTestErrCheck(err); // pages err = pageTest(db); MojTestErrCheck(err); // make sure we're not hanging onto watcher references MojTestAssert(TestWatcher::s_instanceCount == 0); err = db.close(); MojTestErrCheck(err); return MojErrNone; }
static void workThread(threadInfo *pthreadInfo) { cmdInfo *pcmdInfo; asynUser *pasynUser; while(1) { epicsEventMustWait(pthreadInfo->work); pcmdInfo = pthreadInfo->pcmdInfo; pasynUser = pcmdInfo->pasynUser; if(pcmdInfo->test==quit) break; switch(pcmdInfo->test) { case connect: connectTest(pasynUser);break; case testBlock: blockTest(pasynUser); break; case testCancelRequest: cancelTest(pasynUser); break; default: fprintf(pcmdInfo->file,"%s workThread illegal test %d\n", pthreadInfo->threadName,pcmdInfo->test); } fprintf(pcmdInfo->file,"%s %s all done\n", pthreadInfo->threadName,pcmdInfo->message); epicsEventSignal(pthreadInfo->done); } epicsEventSignal(pthreadInfo->done); }