github.com/anth0d/nomad@v0.0.0-20221214183521-ae3a0a2cad06/drivers/docker/utils_unix_test.go (about) 1 //go:build darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris 2 3 package docker 4 5 import ( 6 "path/filepath" 7 "testing" 8 9 "github.com/hashicorp/nomad/ci" 10 "github.com/stretchr/testify/require" 11 ) 12 13 func TestValidateCgroupPermission(t *testing.T) { 14 ci.Parallel(t) 15 16 positiveCases := []string{ 17 "r", 18 "rw", 19 "rwm", 20 "mr", 21 "mrw", 22 "", 23 } 24 25 for _, c := range positiveCases { 26 t.Run("positive case: "+c, func(t *testing.T) { 27 require.True(t, validateCgroupPermission(c)) 28 }) 29 } 30 31 negativeCases := []string{ 32 "q", 33 "asdf", 34 "rq", 35 } 36 37 for _, c := range negativeCases { 38 t.Run("negative case: "+c, func(t *testing.T) { 39 require.False(t, validateCgroupPermission(c)) 40 }) 41 } 42 } 43 44 func TestExpandPath(t *testing.T) { 45 ci.Parallel(t) 46 47 cases := []struct { 48 base string 49 target string 50 expected string 51 }{ 52 {"/tmp/alloc/task", ".", "/tmp/alloc/task"}, 53 {"/tmp/alloc/task", "..", "/tmp/alloc"}, 54 55 {"/tmp/alloc/task", "d1/d2", "/tmp/alloc/task/d1/d2"}, 56 {"/tmp/alloc/task", "../d1/d2", "/tmp/alloc/d1/d2"}, 57 {"/tmp/alloc/task", "../../d1/d2", "/tmp/d1/d2"}, 58 59 {"/tmp/alloc/task", "/home/user", "/home/user"}, 60 {"/tmp/alloc/task", "/home/user/..", "/home"}, 61 } 62 63 for _, c := range cases { 64 t.Run(c.expected, func(t *testing.T) { 65 require.Equal(t, c.expected, filepath.ToSlash(expandPath(c.base, c.target))) 66 }) 67 } 68 }