func TestSchedCacheContainsOffer(t *testing.T) { cache := newSchedCache() offer01 := createTestOffer("01") pid01, err := upid.Parse("[email protected]:5050") assert.NoError(t, err) offer02 := createTestOffer("02") pid02, err := upid.Parse("[email protected]:5050") assert.NoError(t, err) cache.putOffer(offer01, pid01) cache.putOffer(offer02, pid02) assert.True(t, cache.containsOffer(util.NewOfferID("test-offer-01"))) assert.True(t, cache.containsOffer(util.NewOfferID("test-offer-02"))) assert.False(t, cache.containsOffer(util.NewOfferID("test-offer-05"))) }
func createTestOffer(idSuffix string) *mesos.Offer { return util.NewOffer( util.NewOfferID("test-offer-"+idSuffix), util.NewFrameworkID("test-framework-"+idSuffix), util.NewSlaveID("test-slave-"+idSuffix), "localhost."+idSuffix, ) }
func TestSchedCacheGetOffer(t *testing.T) { cache := newSchedCache() offer01 := createTestOffer("01") pid01, err := upid.Parse("[email protected]:5050") assert.NoError(t, err) offer02 := createTestOffer("02") pid02, err := upid.Parse("[email protected]:5050") assert.NoError(t, err) cache.putOffer(offer01, pid01) cache.putOffer(offer02, pid02) cachedOffer01 := cache.getOffer(util.NewOfferID("test-offer-01")).offer cachedOffer02 := cache.getOffer(util.NewOfferID("test-offer-02")).offer assert.NotEqual(t, offer01, cachedOffer02) assert.Equal(t, offer01, cachedOffer01) assert.Equal(t, offer02, cachedOffer02) }
func (suite *SchedulerTestSuite) TestSchdulerDriverLaunchTasksWithError() { sched := NewMockScheduler() sched.On("StatusUpdate").Return(nil) sched.On("Error").Return() msgr := mockedMessenger() driver := newTestSchedulerDriver(suite.T(), driverConfigMessenger(sched, suite.framework, suite.master, nil, msgr)) driver.dispatch = func(_ context.Context, _ *upid.UPID, _ proto.Message) error { return fmt.Errorf("Unable to send message") } go func() { driver.Run() }() <-driver.started driver.setConnected(true) // simulated suite.True(driver.Running()) // setup an offer offer := util.NewOffer( util.NewOfferID("test-offer-001"), suite.framework.Id, util.NewSlaveID("test-slave-001"), "test-slave(1)@localhost:5050", ) pid, err := upid.Parse("test-slave(1)@localhost:5050") suite.NoError(err) driver.cache.putOffer(offer, pid) // launch task task := util.NewTaskInfo( "simple-task", util.NewTaskID("simpe-task-1"), util.NewSlaveID("test-slave-001"), []*mesos.Resource{util.NewScalarResource("mem", 400)}, ) task.Command = util.NewCommandInfo("pwd") task.Executor = util.NewExecutorInfo(util.NewExecutorID("test-exec"), task.Command) tasks := []*mesos.TaskInfo{task} stat, err := driver.LaunchTasks( []*mesos.OfferID{offer.Id}, tasks, &mesos.Filters{}, ) suite.Equal(mesos.Status_DRIVER_RUNNING, stat) suite.Error(err) }