github.com/NeowayLabs/nash@v0.2.2-0.20200127205349-a227041ffd50/internal/sh/util_test.go (about) 1 package sh 2 3 import ( 4 "sort" 5 "testing" 6 7 "github.com/madlambda/nash/sh" 8 ) 9 10 func TestBuildEnv(t *testing.T) { 11 env := Env{ 12 "teste": nil, 13 } 14 15 penv := buildenv(env) 16 if len(penv) != 0 { 17 t.Errorf("Invalid env length") 18 return 19 } 20 21 env = Env{ 22 "PATH": sh.NewStrObj("/bin:/usr/bin"), 23 } 24 25 penv = buildenv(env) 26 27 if len(penv) != 1 { 28 t.Errorf("Invalid env length") 29 return 30 } 31 32 if penv[0] != "PATH=/bin:/usr/bin" { 33 t.Errorf("Invalid env value: %s", penv[0]) 34 return 35 } 36 37 env = Env{ 38 "PATH": sh.NewListObj([]sh.Obj{ 39 sh.NewStrObj("/bin"), 40 sh.NewStrObj("/usr/bin"), 41 }), 42 } 43 44 penv = buildenv(env) 45 46 if len(penv) != 1 { 47 t.Errorf("Invalid env length") 48 return 49 } 50 51 if penv[0] != "PATH=(/bin /usr/bin)" { 52 t.Errorf("Invalid env value: %s", penv[0]) 53 return 54 } 55 56 env = Env{ 57 "PATH": sh.NewListObj([]sh.Obj{ 58 sh.NewStrObj("/bin"), 59 sh.NewStrObj("/usr/bin"), 60 }), 61 "path": sh.NewStrObj("abracadabra"), 62 } 63 64 penv = buildenv(env) 65 66 if len(penv) != 2 { 67 t.Errorf("Invalid env length") 68 return 69 } 70 71 sort.Strings(penv) 72 73 if penv[0] != "PATH=(/bin /usr/bin)" { 74 t.Errorf("Invalid env value: '%s'", penv[0]) 75 return 76 } 77 78 if penv[1] != "path=abracadabra" { 79 t.Errorf("Invalid env value: '%s'", penv[1]) 80 return 81 } 82 }