+// Copyright (C) The Arvados Authors. All rights reserved.
+//
+// SPDX-License-Identifier: Apache-2.0
+
package dispatch
import (
- "git.curoverse.com/arvados.git/sdk/go/arvados"
- "git.curoverse.com/arvados.git/sdk/go/arvadosclient"
- "git.curoverse.com/arvados.git/sdk/go/arvadostest"
- "os/exec"
+ "time"
+ "git.arvados.org/arvados.git/sdk/go/arvados"
+ "git.arvados.org/arvados.git/sdk/go/arvadosclient"
+ "git.arvados.org/arvados.git/sdk/go/arvadostest"
. "gopkg.in/check.v1"
)
// Gocheck boilerplate
-var _ = Suite(&DispatchTestSuite{})
-
-type DispatchTestSuite struct{}
+var _ = Suite(&suite{})
-func (s *DispatchTestSuite) SetUpSuite(c *C) {
- arvadostest.StartAPI()
-}
+type suite struct{}
-func (s *DispatchTestSuite) TearDownSuite(c *C) {
- arvadostest.StopAPI()
-}
-
-func (s *DispatchTestSuite) TestTrackContainer(c *C) {
+func (s *suite) TestTrackContainer(c *C) {
arv, err := arvadosclient.MakeArvadosClient()
c.Assert(err, Equals, nil)
-
- runContainer := func(d *Dispatcher, ctr arvados.Container) *exec.Cmd { return exec.Command("echo") }
- d := &Dispatcher{Arv: arv, RunContainer: func(dsp *Dispatcher, ctr arvados.Container, status <-chan arvados.Container) {
- go runContainer(dsp, ctr)
- }}
- d.trackers = make(map[string]*runTracker)
-
- d.TrackContainer(arvadostest.QueuedContainerUuid)
- _, tracking := d.trackers[arvadostest.QueuedContainerUuid]
- c.Assert(tracking, Equals, true)
+ arv.ApiToken = arvadostest.Dispatch1Token
+
+ done := make(chan bool, 1)
+ time.AfterFunc(10*time.Second, func() { done <- false })
+ d := &Dispatcher{
+ Arv: arv,
+ RunContainer: func(dsp *Dispatcher, ctr arvados.Container, status <-chan arvados.Container) error {
+ for ctr := range status {
+ c.Logf("%#v", ctr)
+ }
+ done <- true
+ return nil
+ },
+ }
+ d.TrackContainer(arvadostest.QueuedContainerUUID)
+ c.Assert(<-done, Equals, true)
}