github.com/rochacon/deis@v1.0.2-0.20150903015341-6839b592a1ff/mesos/pkg/confd/confd_test.go (about) 1 package confd 2 3 import ( 4 "os" 5 "os/exec" 6 "syscall" 7 "testing" 8 "time" 9 ) 10 11 const ( 12 confdError = "Apr 29 17:00:54 deis-1 sh: 2015-04-29T15:00:54Z fceb2accfbf5 confd[1484]: ERROR template: builder:59:47: executing \"builder\" at <getv \"/deis/registry...>: error calling getv: key does not exist" 13 ) 14 15 func TestReturnError(t *testing.T) { 16 signalChan := make(chan os.Signal, 1) 17 args := "while(true);do echo '" + confdError + "'; sleep 1;done" 18 cmd := exec.Command("/bin/bash", "-c", args) 19 20 stdout, err := cmd.StdoutPipe() 21 checkError(signalChan, err) 22 23 cmd.Start() 24 25 go checkNumberOfErrors(stdout, 1, 2*time.Second, signalChan) 26 27 for { 28 select { 29 case <-time.Tick(5 * time.Second): 30 return 31 case s := <-signalChan: 32 log.Debugf("Signal received: %v", s) 33 switch s { 34 case syscall.SIGKILL: 35 // we expect this 36 return 37 } 38 } 39 } 40 } 41 42 func TestReturnWithoutError(t *testing.T) { 43 signalChan := make(chan os.Signal, 1) 44 args := "while(true);do echo '" + confdError + "'; sleep 1;done" 45 cmd := exec.Command("/bin/bash", "-c", args) 46 47 stdout, err := cmd.StdoutPipe() 48 checkError(signalChan, err) 49 50 cmd.Start() 51 52 go checkNumberOfErrors(stdout, 2, 2*time.Second, signalChan) 53 54 for { 55 select { 56 case <-time.Tick(5 * time.Second): 57 return 58 case s := <-signalChan: 59 log.Debugf("Signal received: %v", s) 60 switch s { 61 case syscall.SIGKILL: 62 t.Fatal("Unexpected error received") 63 } 64 } 65 } 66 }