TEST_F(ResourceOffersTest, Request) { TestAllocator<master::allocator::HierarchicalDRFAllocator> allocator; EXPECT_CALL(allocator, initialize(_, _, _, _)) .Times(1); Try<PID<Master>> master = StartMaster(&allocator); ASSERT_SOME(master); MockScheduler sched; MesosSchedulerDriver driver( &sched, DEFAULT_FRAMEWORK_INFO, master.get(), DEFAULT_CREDENTIAL); EXPECT_CALL(allocator, addFramework(_, _, _)) .Times(1); Future<Nothing> registered; EXPECT_CALL(sched, registered(&driver, _, _)) .WillOnce(FutureSatisfy(®istered)); driver.start(); AWAIT_READY(registered); vector<Request> sent; Request request; request.mutable_slave_id()->set_value("test"); sent.push_back(request); Future<vector<Request>> received; EXPECT_CALL(allocator, requestResources(_, _)) .WillOnce(FutureArg<1>(&received)); driver.requestResources(sent); AWAIT_READY(received); EXPECT_EQ(sent.size(), received.get().size()); EXPECT_NE(0u, received.get().size()); EXPECT_EQ(request.slave_id(), received.get()[0].slave_id()); driver.stop(); driver.join(); Shutdown(); }
int main(int argc, char **argv) { if (argc != 4) syserr("Wrong number of parameters"); pid_t myPid = getpid(), otherPid; type = myPid; int k = atoi(argv[1]); int n = atoi(argv[2]); int s = atoi(argv[3]); getIPCs(); sendBeginProtocol(myPid); requestResources(k, n); otherPid = getResources(); report(k, n, myPid, otherPid); work(s); sendEndProtocol(); reportFinish(myPid); return 0; }
// Actual allocation is done by an instance of real allocator, // which is specified by the template parameter. TestAllocator() : real(createAllocator<T>()) { // We use 'ON_CALL' and 'WillByDefault' here to specify the // default actions (call in to the real allocator). This allows // the tests to leverage the 'DoDefault' action. // However, 'ON_CALL' results in a "Uninteresting mock function // call" warning unless each test puts expectations in place. // As a result, we also use 'EXPECT_CALL' and 'WillRepeatedly' // to get the best of both worlds: the ability to use 'DoDefault' // and no warnings when expectations are not explicit. ON_CALL(*this, initialize(_, _, _)) .WillByDefault(InvokeInitialize(this)); EXPECT_CALL(*this, initialize(_, _, _)) .WillRepeatedly(DoDefault()); ON_CALL(*this, recover(_, _)) .WillByDefault(InvokeRecover(this)); EXPECT_CALL(*this, recover(_, _)) .WillRepeatedly(DoDefault()); ON_CALL(*this, addFramework(_, _, _, _, _)) .WillByDefault(InvokeAddFramework(this)); EXPECT_CALL(*this, addFramework(_, _, _, _, _)) .WillRepeatedly(DoDefault()); ON_CALL(*this, removeFramework(_)) .WillByDefault(InvokeRemoveFramework(this)); EXPECT_CALL(*this, removeFramework(_)) .WillRepeatedly(DoDefault()); ON_CALL(*this, activateFramework(_)) .WillByDefault(InvokeActivateFramework(this)); EXPECT_CALL(*this, activateFramework(_)) .WillRepeatedly(DoDefault()); ON_CALL(*this, deactivateFramework(_)) .WillByDefault(InvokeDeactivateFramework(this)); EXPECT_CALL(*this, deactivateFramework(_)) .WillRepeatedly(DoDefault()); ON_CALL(*this, updateFramework(_, _, _)) .WillByDefault(InvokeUpdateFramework(this)); EXPECT_CALL(*this, updateFramework(_, _, _)) .WillRepeatedly(DoDefault()); ON_CALL(*this, addSlave(_, _, _, _, _, _)) .WillByDefault(InvokeAddSlave(this)); EXPECT_CALL(*this, addSlave(_, _, _, _, _, _)) .WillRepeatedly(DoDefault()); ON_CALL(*this, removeSlave(_)) .WillByDefault(InvokeRemoveSlave(this)); EXPECT_CALL(*this, removeSlave(_)) .WillRepeatedly(DoDefault()); ON_CALL(*this, updateSlave(_, _, _, _)) .WillByDefault(InvokeUpdateSlave(this)); EXPECT_CALL(*this, updateSlave(_, _, _, _)) .WillRepeatedly(DoDefault()); ON_CALL(*this, addResourceProvider(_, _, _)) .WillByDefault(InvokeAddResourceProvider(this)); EXPECT_CALL(*this, addResourceProvider(_, _, _)) .WillRepeatedly(DoDefault()); ON_CALL(*this, activateSlave(_)) .WillByDefault(InvokeActivateSlave(this)); EXPECT_CALL(*this, activateSlave(_)) .WillRepeatedly(DoDefault()); ON_CALL(*this, deactivateSlave(_)) .WillByDefault(InvokeDeactivateSlave(this)); EXPECT_CALL(*this, deactivateSlave(_)) .WillRepeatedly(DoDefault()); ON_CALL(*this, updateWhitelist(_)) .WillByDefault(InvokeUpdateWhitelist(this)); EXPECT_CALL(*this, updateWhitelist(_)) .WillRepeatedly(DoDefault()); ON_CALL(*this, requestResources(_, _)) .WillByDefault(InvokeRequestResources(this)); EXPECT_CALL(*this, requestResources(_, _)) .WillRepeatedly(DoDefault()); ON_CALL(*this, updateAllocation(_, _, _, _)) .WillByDefault(InvokeUpdateAllocation(this)); EXPECT_CALL(*this, updateAllocation(_, _, _, _)) .WillRepeatedly(DoDefault()); ON_CALL(*this, updateAvailable(_, _)) .WillByDefault(InvokeUpdateAvailable(this)); EXPECT_CALL(*this, updateAvailable(_, _)) .WillRepeatedly(DoDefault()); ON_CALL(*this, updateUnavailability(_, _)) .WillByDefault(InvokeUpdateUnavailability(this)); EXPECT_CALL(*this, updateUnavailability(_, _)) .WillRepeatedly(DoDefault()); ON_CALL(*this, updateInverseOffer(_, _, _, _, _)) .WillByDefault(InvokeUpdateInverseOffer(this)); EXPECT_CALL(*this, updateInverseOffer(_, _, _, _, _)) .WillRepeatedly(DoDefault()); ON_CALL(*this, getInverseOfferStatuses()) .WillByDefault(InvokeGetInverseOfferStatuses(this)); EXPECT_CALL(*this, getInverseOfferStatuses()) .WillRepeatedly(DoDefault()); ON_CALL(*this, recoverResources(_, _, _, _)) .WillByDefault(InvokeRecoverResources(this)); EXPECT_CALL(*this, recoverResources(_, _, _, _)) .WillRepeatedly(DoDefault()); ON_CALL(*this, suppressOffers(_, _)) .WillByDefault(InvokeSuppressOffers(this)); EXPECT_CALL(*this, suppressOffers(_, _)) .WillRepeatedly(DoDefault()); ON_CALL(*this, reviveOffers(_, _)) .WillByDefault(InvokeReviveOffers(this)); EXPECT_CALL(*this, reviveOffers(_, _)) .WillRepeatedly(DoDefault()); ON_CALL(*this, setQuota(_, _)) .WillByDefault(InvokeSetQuota(this)); EXPECT_CALL(*this, setQuota(_, _)) .WillRepeatedly(DoDefault()); ON_CALL(*this, removeQuota(_)) .WillByDefault(InvokeRemoveQuota(this)); EXPECT_CALL(*this, removeQuota(_)) .WillRepeatedly(DoDefault()); ON_CALL(*this, updateWeights(_)) .WillByDefault(InvokeUpdateWeights(this)); EXPECT_CALL(*this, updateWeights(_)) .WillRepeatedly(DoDefault()); ON_CALL(*this, pause()) .WillByDefault(InvokePause(this)); EXPECT_CALL(*this, pause()) .WillRepeatedly(DoDefault()); ON_CALL(*this, resume()) .WillByDefault(InvokeResume(this)); EXPECT_CALL(*this, resume()) .WillRepeatedly(DoDefault()); }
ListRenders::ListRenders( QWidget* parent): ListNodes( parent, "renders") { m_ctrl_sf = new CtrlSortFilter( this, &ms_SortType1, &ms_SortAscending1, &ms_SortType2, &ms_SortAscending2, &ms_FilterType, &ms_FilterInclude, &ms_FilterMatch, &ms_FilterString ); m_ctrl_sf->addSortType( CtrlSortFilter::TNONE); m_ctrl_sf->addSortType( CtrlSortFilter::TPRIORITY); m_ctrl_sf->addSortType( CtrlSortFilter::TCAPACITY); m_ctrl_sf->addSortType( CtrlSortFilter::TELDERTASKTIME); m_ctrl_sf->addSortType( CtrlSortFilter::TTIMELAUNCHED); m_ctrl_sf->addSortType( CtrlSortFilter::TTIMEREGISTERED); m_ctrl_sf->addSortType( CtrlSortFilter::TNAME); m_ctrl_sf->addSortType( CtrlSortFilter::TTASKUSER); m_ctrl_sf->addSortType( CtrlSortFilter::TUSERNAME); m_ctrl_sf->addSortType( CtrlSortFilter::TENGINE); m_ctrl_sf->addSortType( CtrlSortFilter::TADDRESS); m_ctrl_sf->addFilterType( CtrlSortFilter::TNONE); m_ctrl_sf->addFilterType( CtrlSortFilter::TNAME); m_ctrl_sf->addFilterType( CtrlSortFilter::TUSERNAME); m_ctrl_sf->addFilterType( CtrlSortFilter::TTASKUSER); m_ctrl_sf->addFilterType( CtrlSortFilter::TENGINE); m_ctrl_sf->addFilterType( CtrlSortFilter::TADDRESS); initSortFilterCtrl(); CtrlRenders * control = new CtrlRenders( m_ctrl_sf, this); m_ctrl_sf->getLayout()->addWidget( control); // Add left panel buttons: ButtonPanel * bp; bp = addButtonPanel("LOG","renders_log","Show render log."); connect( bp, SIGNAL( sigClicked()), this, SLOT( actRequestLog())); bp = addButtonPanel("TLG","renders_tasks_log","Show tasks log."); connect( bp, SIGNAL( sigClicked()), this, SLOT( actRequestTasksLog())); bp = addButtonPanel("nim","renders_nimby","Set nimby.","M"); connect( bp, SIGNAL( sigClicked()), this, SLOT( actNimby())); bp = addButtonPanel("NIM","renders_NIMBY","Set NIMBY.","N"); connect( bp, SIGNAL( sigClicked()), this, SLOT( actNIMBY())); bp = addButtonPanel("FRE","renders_free","Set free.","F"); connect( bp, SIGNAL( sigClicked()), this, SLOT( actFree())); bp = addButtonPanel("EJA","renders_eject_all","Eject all tasks.","", true); connect( bp, SIGNAL( sigClicked()), this, SLOT( actEjectTasks())); bp = addButtonPanel("EJN","renders_eject_notmy","Eject mot my tasks.","", true); connect( bp, SIGNAL( sigClicked()), this, SLOT( actEjectNotMyTasks())); timer = new QTimer( this); connect(timer, SIGNAL(timeout()), this, SLOT( requestResources())); timer->start( 990 * af::Environment::getRenderHeartbeatSec() * af::Environment::getRenderUpResourcesPeriod()); m_parentWindow->setWindowTitle("Renders"); init(); connect( (ModelNodes*)m_model, SIGNAL( nodeAdded( ItemNode *, const QModelIndex &)), this, SLOT( renderAdded( ItemNode *, const QModelIndex &))); if( false == af::Environment::VISOR()) connect( m_view->selectionModel(), SIGNAL( selectionChanged( const QItemSelection &, const QItemSelection &)), this, SLOT( selectionChanged( const QItemSelection &, const QItemSelection &))); setSpacing(); QTimer * timer = new QTimer(this); timer->start( 1900 * af::Environment::getWatchRefreshGuiSec()); connect( timer, SIGNAL( timeout()), this, SLOT( repaintItems())); }