From c3cd33d459f4cdba093e76aa2fa425e15bb18b37 Mon Sep 17 00:00:00 2001 From: Aleksander Mistewicz Date: Wed, 29 Nov 2017 18:53:58 +0100 Subject: [PATCH] Implement Test with test Change-Id: Ic44cd543be463ef3434a23de679547c5e52e6fe9 Signed-off-by: Aleksander Mistewicz --- manager/dryad_job_runner.go | 25 ++++++++++++++++++++++--- manager/dryad_job_runner_test.go | 11 +++++++++++ 2 files changed, 33 insertions(+), 3 deletions(-) diff --git a/manager/dryad_job_runner.go b/manager/dryad_job_runner.go index 66875f4..2132b77 100644 --- a/manager/dryad_job_runner.go +++ b/manager/dryad_job_runner.go @@ -20,11 +20,17 @@ package manager import ( "context" + "strings" + "time" "git.tizen.org/tools/weles" "git.tizen.org/tools/weles/manager/dryad" ) +const ( + defaultDeviceExecTimeout = 2 * time.Minute +) + // dryadJobRunner implements DryadJobRunner interface. type dryadJobRunner struct { DryadJobRunner @@ -99,7 +105,20 @@ func (d *dryadJobRunner) Boot() (err error) { // Test is part of DryadJobRunner interface. func (d *dryadJobRunner) Test() error { - // TODO(amistewicz): implement. - _, _, err := d.rusalka.Exec([]string{"echo", "healthcheck"}) - return err + for _, testcase := range d.conf.Action.Test.TestCases { + for _, testaction := range testcase.TestActions { + switch action := testaction.(type) { + case weles.Push: + d.device.CopyFilesTo([]string{action.Path}, action.Dest) + case weles.Run: + // TODO: action.Name splot should smarter (shell-like) or avoided at all. + d.device.Exec(strings.Split(action.Name, " "), defaultDeviceExecTimeout) + case weles.Pull: + d.device.CopyFilesFrom([]string{action.Src}, action.Path) + default: + panic("unknown test action type") + } + } + } + return nil } diff --git a/manager/dryad_job_runner_test.go b/manager/dryad_job_runner_test.go index 15208e1..3f4140c 100644 --- a/manager/dryad_job_runner_test.go +++ b/manager/dryad_job_runner_test.go @@ -66,5 +66,16 @@ var _ = Describe("DryadJobRunner", func() { ) Expect(djr.Boot()).To(Succeed()) + + By("Test") + gomock.InOrder( + mockDevice.EXPECT().CopyFilesTo([]string{basicConfig.Action.Test.TestCases[0].TestActions[0].(weles.Push).Path}, + basicConfig.Action.Test.TestCases[0].TestActions[0].(weles.Push).Dest), + mockDevice.EXPECT().Exec([]string{"command", "to", "be", "run"}, defaultDeviceExecTimeout), + mockDevice.EXPECT().CopyFilesFrom([]string{basicConfig.Action.Test.TestCases[0].TestActions[2].(weles.Pull).Src}, + basicConfig.Action.Test.TestCases[0].TestActions[2].(weles.Pull).Path), + ) + + Expect(djr.Test()).To(Succeed()) }) }) -- 2.7.4