github.com/vonwenm/spdy@v0.0.0-20151107123324-431b911c6217/spdy_test.go (about) 1 package spdy 2 3 import ( 4 "bytes" 5 "io/ioutil" 6 "os" 7 "os/exec" 8 "path/filepath" 9 "testing" 10 ) 11 12 func TestExamples(t *testing.T) { 13 cwd, err := os.Getwd() 14 if err != nil { 15 t.Fatal(err) 16 } 17 18 examples, err := ioutil.ReadDir("examples") 19 if err != nil { 20 t.Fatal(err) 21 } 22 23 buf := new(bytes.Buffer) 24 25 for _, example := range examples { 26 err = os.Chdir(filepath.Join(cwd, "examples", example.Name())) 27 if err != nil { 28 t.Error(err) 29 continue 30 } 31 32 buf.Reset() 33 34 cmd := exec.Command("go", "build", "-o", "test") 35 cmd.Stderr = buf 36 if err = cmd.Run(); err != nil { 37 t.Errorf("Example %q failed to compile:\n%s", example.Name(), buf.String()) 38 continue 39 } 40 41 if err = os.Remove("test"); err != nil { 42 t.Error(err) 43 } 44 } 45 }