44 "bytes"
55 "os"
66 "testing"
7+
8+ "github.com/NeowayLabs/nash/sh"
79)
810
911// only testing the public API
@@ -33,19 +35,19 @@ func TestExecuteFile(t *testing.T) {
3335
3436 var out bytes.Buffer
3537
36- sh , err := New ()
38+ shell , err := New ()
3739
3840 if err != nil {
3941 t .Error (err )
4042 return
4143 }
4244
43- sh .SetNashdPath (nashdPath )
44- sh .SetStdout (& out )
45- sh .SetStderr (os .Stderr )
46- sh .SetStdin (os .Stdin )
45+ shell .SetNashdPath (nashdPath )
46+ shell .SetStdout (& out )
47+ shell .SetStderr (os .Stderr )
48+ shell .SetStdin (os .Stdin )
4749
48- err = sh .ExecuteFile (testfile )
50+ err = shell .ExecuteFile (testfile )
4951
5052 if err != nil {
5153 t .Error (err )
@@ -59,7 +61,7 @@ func TestExecuteFile(t *testing.T) {
5961}
6062
6163func TestExecuteString (t * testing.T ) {
62- sh , err := New ()
64+ shell , err := New ()
6365
6466 if err != nil {
6567 t .Error (err )
@@ -68,9 +70,9 @@ func TestExecuteString(t *testing.T) {
6870
6971 var out bytes.Buffer
7072
71- sh .SetStdout (& out )
73+ shell .SetStdout (& out )
7274
73- err = sh .ExecuteString ("-ínput-" , "echo -n AAA" )
75+ err = shell .ExecuteString ("-ínput-" , "echo -n AAA" )
7476
7577 if err != nil {
7678 t .Error (err )
@@ -84,7 +86,7 @@ func TestExecuteString(t *testing.T) {
8486
8587 out .Reset ()
8688
87- err = sh .ExecuteString ("-input-" , `
89+ err = shell .ExecuteString ("-input-" , `
8890 PROMPT="humpback> "
8991 setenv PROMPT
9092 ` )
@@ -94,7 +96,7 @@ func TestExecuteString(t *testing.T) {
9496 return
9597 }
9698
97- prompt := sh .Prompt ()
99+ prompt := shell .Prompt ()
98100
99101 if prompt != "humpback> " {
100102 t .Errorf ("Invalid prompt = %s" , prompt )
@@ -104,7 +106,7 @@ func TestExecuteString(t *testing.T) {
104106}
105107
106108func TestSetDotDir (t * testing.T ) {
107- sh , err := New ()
109+ shell , err := New ()
108110
109111 if err != nil {
110112 t .Error (err )
@@ -113,18 +115,18 @@ func TestSetDotDir(t *testing.T) {
113115
114116 var out bytes.Buffer
115117
116- sh .SetStdout (& out )
118+ shell .SetStdout (& out )
117119
118- sh .SetDotDir ("/tmp" )
120+ shell .SetDotDir ("/tmp" )
119121
120- dotDir := sh .DotDir ()
122+ dotDir := shell .DotDir ()
121123
122124 if dotDir != "/tmp" {
123125 t .Errorf ("Invalid .nash = %s" , dotDir )
124126 return
125127 }
126128
127- err = sh .ExecuteString ("-ínput-" , "echo -n $NASHPATH" )
129+ err = shell .ExecuteString ("-ínput-" , "echo -n $NASHPATH" )
128130
129131 if err != nil {
130132 t .Error (err )
@@ -136,3 +138,36 @@ func TestSetDotDir(t *testing.T) {
136138 return
137139 }
138140}
141+
142+ func TestSetvar (t * testing.T ) {
143+ shell , err := New ()
144+
145+ if err != nil {
146+ t .Error (err )
147+ return
148+ }
149+
150+ shell .Setvar ("__TEST__" , sh .NewStrObj ("something" ))
151+
152+ var out bytes.Buffer
153+ shell .SetStdout (& out )
154+
155+ err = shell .Exec ("TestSetvar" , `echo -n $__TEST__` )
156+
157+ if err != nil {
158+ t .Error (err )
159+ return
160+ }
161+
162+ if string (out .Bytes ()) != "something" {
163+ t .Errorf ("Value differ: '%s' != '%s'" , string (out .Bytes ()), "something" )
164+ return
165+ }
166+
167+ val , ok := shell .Getvar ("__TEST__" )
168+
169+ if ! ok || val .String () != "something" {
170+ t .Errorf ("Getvar doesn't work: '%s' != '%s'" , val , "something" )
171+ return
172+ }
173+ }
0 commit comments