github.com/alejandroesc/spdy@v0.0.0-20200317064415-01a02f0eb389/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  }