github.com/laher/smoosh@v0.0.0-20180610101641-1e04c8740d38/main_test.go (about) 1 package main 2 3 import ( 4 "bytes" 5 "os" 6 "path/filepath" 7 "testing" 8 9 "github.com/laher/smoosh/run" 10 ) 11 12 func TestGood(t *testing.T) { 13 runner := run.NewRunner() 14 files, err := filepath.Glob("testdata/*.smoosh") 15 if err != nil { 16 t.Errorf("failed: %s", err) 17 t.FailNow() 18 } 19 pwd, _ := os.Getwd() 20 for _, f := range files { 21 t.Run(f, func(t *testing.T) { 22 //in case of directory changes in-script 23 _ = os.Chdir(pwd) 24 wbuf := bytes.NewBuffer([]byte{}) 25 ebuf := bytes.NewBuffer([]byte{}) 26 err := runner.RunFile(f, wbuf, ebuf) 27 if err != nil { 28 t.Errorf("Failed to run file: %v", err) 29 } 30 }) 31 } 32 } 33 34 func TestBad(t *testing.T) { 35 runner := run.NewRunner() 36 files, err := filepath.Glob("testdata/bad/*.smoosh") 37 if err != nil { 38 t.Errorf("failed: %s", err) 39 t.FailNow() 40 } 41 pwd, _ := os.Getwd() 42 for _, f := range files { 43 t.Run(f, func(t *testing.T) { 44 //in case of directory changes in-script 45 _ = os.Chdir(pwd) 46 wbuf := bytes.NewBuffer([]byte{}) 47 ebuf := bytes.NewBuffer([]byte{}) 48 err := runner.RunFile(f, wbuf, ebuf) 49 if err != nil { 50 t.Logf("Error as expected ... '%s'", err) 51 return 52 } 53 t.Errorf("File should have errored") 54 }) 55 } 56 }