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