Skip to content

Commit

Permalink
tests: minor fixes for some docker tests
Browse files Browse the repository at this point in the history
  • Loading branch information
shoenig committed May 25, 2022
1 parent 6d92e9b commit 830b1ff
Show file tree
Hide file tree
Showing 2 changed files with 27 additions and 27 deletions.
21 changes: 9 additions & 12 deletions drivers/docker/driver_linux_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@ import (
"path/filepath"
"strings"
"testing"
"time"

"github.com/hashicorp/nomad/ci"
"github.com/hashicorp/nomad/client/testutil"
Expand All @@ -21,6 +20,7 @@ import (

func TestDockerDriver_authFromHelper(t *testing.T) {
ci.Parallel(t)
testutil.DockerCompatible(t)

dir := t.TempDir()
helperPayload := "{\"Username\":\"hashi\",\"Secret\":\"nomad\"}"
Expand All @@ -31,11 +31,10 @@ func TestDockerDriver_authFromHelper(t *testing.T) {
require.NoError(t, err)

path := os.Getenv("PATH")
os.Setenv("PATH", fmt.Sprintf("%s:%s", path, dir))
defer os.Setenv("PATH", path)
t.Setenv("PATH", fmt.Sprintf("%s:%s", path, dir))

helper := authFromHelper("testnomad")
creds, err := helper("registry.local:5000/repo/image")
authHelper := authFromHelper("testnomad")
creds, err := authHelper("registry.local:5000/repo/image")
require.NoError(t, err)
require.NotNil(t, creds)
require.Equal(t, "hashi", creds.Username)
Expand All @@ -51,6 +50,7 @@ func TestDockerDriver_authFromHelper(t *testing.T) {

func TestDockerDriver_PluginConfig_PidsLimit(t *testing.T) {
ci.Parallel(t)
testutil.DockerCompatible(t)

dh := dockerDriverHarness(t, nil)
driver := dh.Impl().(*Driver)
Expand All @@ -74,22 +74,19 @@ func TestDockerDriver_PluginConfig_PidsLimit(t *testing.T) {

func TestDockerDriver_PidsLimit(t *testing.T) {
ci.Parallel(t)

testutil.DockerCompatible(t)
require := require.New(t)

task, cfg, ports := dockerTask(t)
defer freeport.Return(ports)

cfg.PidsLimit = 1
cfg.Command = "/bin/sh"
cfg.Args = []string{"-c", "sleep 5 & sleep 5 & sleep 5"}
require.NoError(task.EncodeConcreteDriverConfig(cfg))
require.NoError(t, task.EncodeConcreteDriverConfig(cfg))

_, driver, _, cleanup := dockerSetup(t, task, nil)
_, _, _, cleanup := dockerSetup(t, task, nil)
defer cleanup()

driver.WaitUntilStarted(task.ID, time.Duration(tu.TestMultiplier()*5)*time.Second)

// XXX Logging doesn't work on OSX so just test on Linux
// Check that data was written to the directory.
outputFile := filepath.Join(task.TaskDir().LogDir, "redis-demo.stderr.0")
Expand All @@ -104,6 +101,6 @@ func TestDockerDriver_PidsLimit(t *testing.T) {
}
return true, nil
}, func(err error) {
require.NoError(err)
require.NoError(t, err)
})
}
33 changes: 18 additions & 15 deletions drivers/docker/driver_unix_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -724,14 +724,17 @@ func TestDockerDriver_Start_Image_HTTPS(t *testing.T) {
}
require.NoError(t, task.EncodeConcreteDriverConfig(&taskCfg))

d := dockerDriverHarness(t, nil)
cleanup := d.MkAllocDir(task, true)
harness := dockerDriverHarness(t, nil)
cleanup := harness.MkAllocDir(task, true)
defer cleanup()

_, _, err := d.StartTask(task)
_, _, err := harness.StartTask(task)
require.NoError(t, err)

err = harness.WaitUntilStarted(task.ID, 1*time.Minute)
require.NoError(t, err)

d.DestroyTask(task.ID, true)
harness.DestroyTask(task.ID, true)
}

func newTaskConfig(variant string, command []string) TaskConfig {
Expand Down Expand Up @@ -787,11 +790,6 @@ func TestDocker_ExecTaskStreaming(t *testing.T) {
ci.Parallel(t)
testutil.DockerCompatible(t)

// todo(shoenig) these fail maybe 50% of the time on GHA, and the test cases
// are tricky to follow all the way through - maybe a decent candidate for
// a generics re-write.
ci.SkipSlow(t, "flaky on GHA; #12358")

taskCfg := newTaskConfig("", []string{"/bin/sleep", "1000"})
task := &drivers.TaskConfig{
ID: uuid.Generate(),
Expand All @@ -801,17 +799,20 @@ func TestDocker_ExecTaskStreaming(t *testing.T) {
}
require.NoError(t, task.EncodeConcreteDriverConfig(&taskCfg))

d := dockerDriverHarness(t, nil)
cleanup := d.MkAllocDir(task, true)
harness := dockerDriverHarness(t, nil)
cleanup := harness.MkAllocDir(task, true)
defer cleanup()
copyImage(t, task.TaskDir(), "busybox.tar")

_, _, err := d.StartTask(task)
_, _, err := harness.StartTask(task)
require.NoError(t, err)

defer d.DestroyTask(task.ID, true)
err = harness.WaitUntilStarted(task.ID, 1*time.Minute)
require.NoError(t, err)

defer harness.DestroyTask(task.ID, true)

dtestutil.ExecTaskStreamingConformanceTests(t, d, task.ID)
dtestutil.ExecTaskStreamingConformanceTests(t, harness, task.ID)

}

Expand Down Expand Up @@ -862,6 +863,9 @@ func Test_dnsConfig(t *testing.T) {
_, _, err := harness.StartTask(task)
require.NoError(t, err)

err = harness.WaitUntilStarted(task.ID, 1*time.Minute)
require.NoError(t, err)

dtestutil.TestTaskDNSConfig(t, harness, task.ID, c.cfg)

// cleanup immediately before the next test case
Expand All @@ -870,5 +874,4 @@ func Test_dnsConfig(t *testing.T) {
harness.Kill()
})
}

}

0 comments on commit 830b1ff

Please sign in to comment.