From 330d6849a51ea6b47d90e9cd6f6ee43a7c2fb10e Mon Sep 17 00:00:00 2001 From: =?utf8?q?Cl=C3=A9ment=20B=C3=A9nier?= Date: Tue, 14 Aug 2018 16:44:47 +0200 Subject: [PATCH] test exec: waiting for events and timeout while building MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Change-Id: I4caf0dd3e59f920f602131638c58e11beb9f3e08 Signed-off-by: Clément Bénier --- test/exec_test.go | 21 +++++++++++++++++++-- 1 file 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")) -- 2.16.6