int FilterManagerTEST::T_applyFilterChain() { int fail = 0; logger->trace("=============================="); logger->trace("Testing applyFilterChain():"); logger->trace(" Creating FM under normal mode..."); FilterManager* fm = new FilterManager("fm"); logger->trace(" Using factory, making 4 random filters..."); Filter* f1,*f2,*f3,*f4; f1 = FilterFactory::createFilter(); f2 = FilterFactory::createNullImgFilter(); f3 = FilterFactory::createNullFPGAFilter(); f4 = FilterFactory::createFilter(); logger->trace(" Inserting f1 as \"task 3\" to FRONT..."); fm->insertFilter("task 3",f1,"FRONT"); logger->trace(" Inserting f2 as \"task 1\"..."); fm->insertFilter("task 1",f2,"task 3"); logger->trace(" Inserting f3 as \"task 2\" between f1,f2..."); fm->insertFilter("task 2",f3,"task 3"); logger->trace(" Inserting f4 as \"task 4\" to REAR..."); fm->insertFilter("task 4",f4); logger->trace(" Making img objs..."); cv::Mat img = cv::Mat::zeros(2,2,CV_8UC1); ImgData* data = new ImgData("input",img); logger->trace(" Applying all filters..."); int res = fm->applyFilterChain(data); logger->trace(" Checking data ID..."); logger->trace(" "+data->getID()); if (data->getID() == "fm") logger->trace(" ok"); else { logger->warn(" NOT ok, ID not set!"); fail++; } logger->trace(" "+data->getTrack()+"error code "+std::to_string(res)); if (data->getTrack() == "task 1; task 2-1; task 3; task 4; ") if (res == 1) logger->trace(" ok"); else { logger->warn(" NOT ok, error code incorrect"); } else { logger->warn(" NOT ok, track record not expected"); } img.release(); delete data; delete fm; logger->trace("Testing complete."); if (fail > 0) logger->warn(" TEST FAILED: applyFilterChain"); logger->trace("=============================="); return fail; }