var logDir string
var sCli *IOSockClient
+// Debug function used to print debug logs
func Debug(t *testing.T, args ...interface{}) {
if os.Getenv("VERBOSE") != "" {
- t.Log(args)
+ t.Log(args...)
}
}
+// Debugf function used to print debug logs
func Debugf(t *testing.T, format string, args ...interface{}) {
if os.Getenv("VERBOSE") != "" {
- t.Logf(format, args)
+ t.Logf(format, args...)
}
}
+// Copy copies from src to dst until either EOF
func Copy(src, dst string) error {
in, err := os.Open(src)
if err != nil {
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*/
- cmd := exec.Command("killall", "-9", "xds-server")
+ cmd := exec.Command("pkill", "-9", "xds-server")
if err := cmd.Start(); err != nil {
log.Fatal(err)
}
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)
LogPrefix: "XDSSERVERTEST: ",
LogLevel: lvl,
}
- cli, err := common.HTTPNewClient(prefixURL, conf)
+ HTTPcli, err := common.HTTPNewClient(prefixURL, conf)
if err != nil {
log.Fatal(err)
}
- log.Printf("HTTP session ID : %v", cli.GetClientID())
+ log.Printf("HTTP session ID : %v", HTTPcli.GetClientID())
var ver xsapiv1.Version
- err = cli.Get("/version", &ver)
+ err = HTTPcli.Get("/version", &ver)
if err != nil {
log.Fatal(err)
}
- return cli, file
+ return HTTPcli, file
}
func NewIoSocketClient(url, clientID string) (*IOSockClient, error) {
})
sCli.Conn.On("disconnection", func(err error) {
- log.Printf("WS disconnection event with err: %v\n", err)
+ if err != nil {
+ log.Printf("WS disconnection event with err: %v\n", err)
+ }
sCli.Connected = false
})
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 separetly */
+ * it can be launch separately */
launchProcess := true
log.Printf("TestMain: launchProcess is %v, so launching xds-server", launchProcess)
initEnv(launchProcess)