8015: Don't use Docker logging driver. Attach stdout/stderr before starting container.
[arvados.git] / services / crunch-dispatch-local / crunch-dispatch-local_test.go
index 997c63a003285b03cbe2dfba987a41d842f52dfd..3ec1e2ec6b41c4759bd6f75e6cddc847254633ab 100644 (file)
@@ -10,6 +10,7 @@ import (
        "net/http/httptest"
        "os"
        "strings"
+       "syscall"
        "testing"
        "time"
 
@@ -63,16 +64,13 @@ func (s *TestSuite) Test_doMain(c *C) {
        os.Args = append(os.Args, args...)
 
        go func() {
-               time.Sleep(2 * time.Second)
-               doneProcessing <- true
+               time.Sleep(5 * time.Second)
+               sigChan <- syscall.SIGINT
        }()
 
        err := doMain()
        c.Check(err, IsNil)
 
-       // Give some time for run goroutine to complete
-       time.Sleep(1 * time.Second)
-
        // There should be no queued containers now
        params := arvadosclient.Dict{
                "filters": [][]string{[]string{"state", "=", "Queued"}},
@@ -147,14 +145,14 @@ func testWithServerStub(c *C, apiStubResponses map[string]arvadostest.StubRespon
        log.SetOutput(tempfile)
 
        go func() {
-               time.Sleep(1 * time.Second)
-               doneProcessing <- true
+               time.Sleep(2 * time.Second)
+               sigChan <- syscall.SIGTERM
        }()
 
        runQueuedContainers(1, 1, crunchCmd)
 
-       // Give some time for run goroutine to complete
-       time.Sleep(5 * time.Second)
+       // Wait for all running crunch jobs to complete / terminate
+       waitGroup.Wait()
 
        buf, _ := ioutil.ReadFile(tempfile.Name())
        c.Check(strings.Contains(string(buf), expected), Equals, true)