diff options
author | Sebastien Douheret <sebastien.douheret@iot.bzh> | 2018-11-06 18:17:32 +0100 |
---|---|---|
committer | Sebastien Douheret <sebastien.douheret@iot.bzh> | 2018-11-06 18:17:32 +0100 |
commit | be47274f79eb0843da4d805cfc417fbf7921379c (patch) | |
tree | 9511f7109b4418cd845c8a1991e6d6b3d49caa94 /test/main_test.go | |
parent | 4b57ec13022e836bdd8cb7f02b3d77f1924d4c35 (diff) |
Check dependency tools before running testsguppy_6.99.2guppy_6.99.1guppy/6.99.2guppy/6.99.16.99.26.99.1
Add a check of all dependency tools before running tests in order to
report a clear error instead of a cryptic test failure.
Change-Id: I7b642428fb4ada7eec2de0c4c45f612ae6888b33
Signed-off-by: Sebastien Douheret <sebastien.douheret@iot.bzh>
Diffstat (limited to 'test/main_test.go')
-rw-r--r-- | test/main_test.go | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/test/main_test.go b/test/main_test.go index 273df09..bdea40c 100644 --- a/test/main_test.go +++ b/test/main_test.go @@ -82,6 +82,35 @@ func Copy(src, dst string) error { return out.Close() } +// init function will run once before execution of test functions begins. +func init() { + // Check dependency + err := checkTestDep() + if err != nil { + log.Fatal(err) + } +} + +// isCommandAvailable verify if a command/utility is available +func isCommandAvailable(name string) bool { + cmd := exec.Command("/bin/sh", "-c", "command -v "+name) + if err := cmd.Run(); err != nil { + return false + } + return true +} + +// checkTestDep checks if all dependency tools are available to be able to run tests +func checkTestDep() error { + for _, cmd := range dependency_tools { + if !isCommandAvailable(cmd) { + return fmt.Errorf(cmd + " is not installed and is mandatory to run tests") + } + } + return nil +} + +// initEnv func initEnv(launchProcess bool) { if launchProcess { /*kill xds-server if needed*/ @@ -133,6 +162,7 @@ func launchXdsServer(proc **os.Process) *os.File { return file } +// getHTTPClient func getHTTPClient(lvl int) (*common.HTTPClient, *os.File) { logFile := logDir + logFileClient file, err := os.OpenFile(logFile, os.O_CREATE|os.O_WRONLY, 0644) @@ -192,7 +222,10 @@ func NewIoSocketClient(url, clientID string) (*IOSockClient, error) { log.Printf("Connect websocket with url=%v clientId=%v\n", prefixURL, HTTPCli.GetClientID()) return sCli, nil } + +// TestMain is the main entry point of testsuite func TestMain(m *testing.M) { + /* useful for debugging, preventing from launching xds-server * it can be launch separately */ launchProcess := true |