From 5d2bff53615bcdb86950ed321595785fdc3929bb Mon Sep 17 00:00:00 2001 From: Clément Bénier Date: Thu, 19 Jul 2018 15:25:26 +0200 Subject: functionnal test: update and add tests MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - TestFolders: update - TestFoldersEmptyValues - TestFoldersPathMapConfig Change-Id: I04dcbcbe6d8fc80ed3ef2cabbcf5dfd2952d1635 Signed-off-by: Clément Bénier --- test/xdsserver_test.go | 140 ++++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 120 insertions(+), 20 deletions(-) diff --git a/test/xdsserver_test.go b/test/xdsserver_test.go index bab7f68..75f4f92 100644 --- a/test/xdsserver_test.go +++ b/test/xdsserver_test.go @@ -17,9 +17,11 @@ package xdsservertest import ( + "io/ioutil" "log" "net" "os" + "os/exec" "regexp" "strings" "testing" @@ -35,6 +37,11 @@ var HTTPCli *common.HTTPClient var logDir string func initEnv() { + cmd := exec.Command("killall", "-9", "xds-server") + if err := cmd.Start(); err != nil { + log.Fatal(err) + } + cmd.Wait() rootTestLog := "/tmp/xds-server-test" if err := os.Setenv(envRootCfgDir, rootTestLog); err != nil { log.Fatal(err) @@ -137,20 +144,20 @@ func TestVersion(t *testing.T) { } func TestConfig(t *testing.T) { - var datConfig map[string]interface{} - assert.Nil(t, HTTPCli.Get("/config", &datConfig)) + var cfg xsapiv1.APIConfig + assert.Nil(t, HTTPCli.Get("/config", &cfg)) - builder, present := datConfig["builder"].(map[string]interface{}) - assert.True(t, present) - ip, present := builder["ip"] + re := regexp.MustCompile("^[0-9a-z]+-[0-9a-z]+-[0-9a-z]+-[0-9a-z]+-[0-9a-z]+$") + assert.True(t, re.MatchString(cfg.ServerUID)) //ID + pathMap, present := cfg.SupportedSharing["PathMap"] assert.True(t, present) - assert.True(t, CheckIP(ip.(string))) + assert.True(t, pathMap) + assert.True(t, CheckIP(cfg.Builder.IP)) } func TestFolders(t *testing.T) { - var datFolder []interface{} - assert.Nil(t, HTTPCli.Get("/folders", &datFolder)) - t.Log(datFolder) - assert.Equal(t, len(datFolder), 0) + var cfgArray []xsapiv1.FolderConfig + assert.Nil(t, HTTPCli.Get("/folders", &cfgArray)) + assert.Equal(t, len(cfgArray), 0) fPrj := xsapiv1.FolderConfig{ Label: "testproject", @@ -164,7 +171,6 @@ func TestFolders(t *testing.T) { var cfg xsapiv1.FolderConfig assert.Nil(t, HTTPCli.Post("/folders", fPrj, &cfg)) assert.NotNil(t, cfg) - t.Log(cfg) isCfgPrjMatch := func(fPrj xsapiv1.FolderConfig, cfg xsapiv1.FolderConfig) { re := regexp.MustCompile("^[0-9a-z]+-[0-9a-z]+-[0-9a-z]+-[0-9a-z]+-[0-9a-z]+$") @@ -181,19 +187,113 @@ func TestFolders(t *testing.T) { isCfgPrjMatch(fPrj, cfg) var cfg2 xsapiv1.FolderConfig assert.Nil(t, HTTPCli.Get("/folders/"+cfg.ID, &cfg2)) - t.Log(cfg2) isCfgPrjMatch(fPrj, cfg2) + assert.Nil(t, HTTPCli.Get("/folders", &cfgArray)) + assert.Equal(t, len(cfgArray), 1) + //call with the same uid create error assert.NotNil(t, HTTPCli.Post("/folders", cfg, &cfg)) - //assert.Equal(t, cfg.DefaultSdk, "true") - //call with the same uid - //serverpath nil - //serverpath already exists + /*create/delete folders*/ + var cfgArrayBis []xsapiv1.FolderConfig + assert.Nil(t, HTTPCli.Post("/folders", fPrj, &cfg)) + assert.Nil(t, HTTPCli.Post("/folders", fPrj, &cfg)) + assert.Nil(t, HTTPCli.Get("/folders", &cfgArray)) + assert.Equal(t, len(cfgArray), 3) + assert.Nil(t, HTTPCli.Delete("/folders/"+cfgArray[1].ID, &cfg)) + assert.Equal(t, cfg, cfgArray[1]) + assert.Nil(t, HTTPCli.Get("/folders", &cfgArrayBis)) + assert.Equal(t, len(cfgArrayBis), 2) + assert.Nil(t, HTTPCli.Delete("/folders/"+cfgArray[0].ID, &cfg)) + assert.Equal(t, cfg, cfgArray[0]) + assert.Nil(t, HTTPCli.Get("/folders", &cfgArrayBis)) + assert.Equal(t, len(cfgArrayBis), 1) + assert.Nil(t, HTTPCli.Delete("/folders/"+cfgArray[2].ID, &cfg)) + assert.Equal(t, cfg, cfgArray[2]) + assert.Nil(t, HTTPCli.Get("/folders", &cfgArrayBis)) + assert.Equal(t, len(cfgArrayBis), 0) } -//func TestRegister(t *testing.T) { -// var client := common.HTTPClient -// client.Get("/folders", folders) -//} +func TestFoldersEmptyValues(t *testing.T) { + fPrj := xsapiv1.FolderConfig{ + Label: "testproject", + ClientPath: logDir + "testproject", + Type: xsapiv1.TypePathMap, + ClientData: "clientdatatest", + DataPathMap: xsapiv1.PathMapConfig{ + ServerPath: "", + }, + } + var cfg xsapiv1.FolderConfig + /*ServerPath is empty*/ + assert.NotNil(t, HTTPCli.Post("/folders", fPrj, &cfg)) + + fPrj.DataPathMap.ServerPath = logDir + "sameserverpath" + fPrj.ClientPath = "" + /*ClientPath is Empty*/ + assert.NotNil(t, HTTPCli.Post("/folders", fPrj, &cfg)) + + fPrj.ClientPath = "logDir" + fPrj.Type = "" + /*Type is empty*/ + assert.NotNil(t, HTTPCli.Post("/folders", fPrj, &cfg)) + + var cfgArray []xsapiv1.FolderConfig + assert.Nil(t, HTTPCli.Get("/folders", &cfgArray)) + assert.Equal(t, len(cfgArray), 0) +} + +func TestFoldersPathMapConfig(t *testing.T) { + fPrj := xsapiv1.FolderConfig{ + Label: "testproject", + ClientPath: logDir + "clientpathtest", + Type: xsapiv1.TypePathMap, + ClientData: "clientdatatest", + DataPathMap: xsapiv1.PathMapConfig{ + ServerPath: logDir + "serverpath", + CheckFile: "checkfile", + }, + } + var cfg xsapiv1.FolderConfig + /*file not present*/ + assert.NotNil(t, HTTPCli.Post("/folders", fPrj, &cfg)) + + var checkFileClient = fPrj.ClientPath + "/checkfile" + var checkFileServer = fPrj.DataPathMap.ServerPath + "/checkfile" + + /*create file*/ + os.MkdirAll(fPrj.ClientPath, 0755) + fPrj.DataPathMap.CheckFile = checkFileClient + fPrj.DataPathMap.CheckContent = "CheckContent From Client\n" + file, err := os.OpenFile(checkFileClient, os.O_CREATE|os.O_RDWR, 0644) + if err != nil { + t.Log(err) + } + if err := os.Symlink(checkFileClient, checkFileServer); err != nil { + t.Log(err) + } + /*file content differ*/ + assert.NotNil(t, HTTPCli.Post("/folders", fPrj, &cfg)) + + /*write same message*/ + if _, err := file.WriteString(fPrj.DataPathMap.CheckContent); err != nil { + t.Log(err) + } + assert.Nil(t, HTTPCli.Post("/folders", fPrj, &cfg)) + + /*check server msg: ServerUID needed*/ + var APIcfg xsapiv1.APIConfig + assert.Nil(t, HTTPCli.Get("/config", &APIcfg)) + msg := "Pathmap checked message written by xds-server ID: " + APIcfg.ServerUID + "\n" + data, err := ioutil.ReadAll(file) + if err != nil { + t.Log(err) + } + assert.Equal(t, msg, string(data)) + + assert.Nil(t, HTTPCli.Delete("/folders/"+cfg.ID, &cfg)) + var cfgArray []xsapiv1.FolderConfig + assert.Nil(t, HTTPCli.Get("/folders", &cfgArray)) + assert.Equal(t, len(cfgArray), 0) +} -- cgit 1.2.3-korg