aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorClément Bénier <clement.benier@iot.bzh>2018-08-14 16:44:47 +0200
committerClément Bénier <clement.benier@iot.bzh>2018-08-21 11:08:36 +0200
commit330d6849a51ea6b47d90e9cd6f6ee43a7c2fb10e (patch)
treef70770e42f2ea6b07569db027659d2a82c52c197
parente0e1d75c08ff6187acabca74261ebeb0e0893ede (diff)
test exec: waiting for events and timeout while building
Change-Id: I4caf0dd3e59f920f602131638c58e11beb9f3e08 Signed-off-by: Clément Bénier <clement.benier@iot.bzh>
-rw-r--r--test/exec_test.go21
1 files changed, 19 insertions, 2 deletions
diff --git a/test/exec_test.go b/test/exec_test.go
index abe23b5..5d4c106 100644
--- a/test/exec_test.go
+++ b/test/exec_test.go
@@ -28,6 +28,17 @@ import (
"github.com/stretchr/testify/assert"
)
+/*flush channel with timeout*/
+func flushChannelExec(channel chan xsapiv1.ExecOutMsg, ms time.Duration) {
+ timeoutB := false
+ for !timeoutB {
+ select {
+ case <-channel:
+ case <-time.After(ms * time.Millisecond):
+ timeoutB = true
+ }
+ }
+}
func TestExec(t *testing.T) {
cloneRepo := "https://github.com/iotbzh/helloworld-service.git"
cloneDir := path.Join(os.Getenv(envRootCfgDir), "testExec")
@@ -72,6 +83,12 @@ func TestExec(t *testing.T) {
assert.Nil(t, HTTPCli.Post("/folders", fPrj, &cfg))
assert.NotNil(t, cfg)
+ chExec := make(chan xsapiv1.ExecOutMsg)
+ defer close(chExec)
+ sCli.Conn.On(xsapiv1.ExecOutEvent, func(ev xsapiv1.ExecOutMsg) {
+ chExec <- ev
+ })
+
cmd := "export PKG_CONFIG_PATH=/usr/local/lib64/pkgconfig/"
cmd = cmd + " && "
cmd = cmd + "cd " + fPrj.ClientPath
@@ -88,7 +105,7 @@ func TestExec(t *testing.T) {
}
var execRes xsapiv1.ExecArgs
assert.Nil(t, HTTPCli.Post("/exec", exec, &execRes))
- time.Sleep(3 * time.Second) //maybe waiting for an event would be better
+ flushChannelExec(chExec, 1000)
cmd = "export PKG_CONFIG_PATH=/usr/local/lib64/pkgconfig/"
cmd = cmd + "&&"
@@ -99,7 +116,7 @@ func TestExec(t *testing.T) {
cmd = cmd + "make"
exec.Cmd = cmd
assert.Nil(t, HTTPCli.Post("/exec", exec, &execRes))
- time.Sleep(3 * time.Second) //maybe waiting for an event would be better
+ flushChannelExec(chExec, 1000)
/*check afb-helloworld.so exists*/
_, err = os.Stat(path.Join(fPrj.ClientPath, "build/helloworld-afb/afb-helloworld.so"))