aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorClément Bénier <clement.benier@iot.bzh>2018-07-19 19:33:43 +0200
committerClément Bénier <clement.benier@iot.bzh>2018-08-21 11:08:36 +0200
commitd3a41ad067e7752a835c71d9f91ddd7230cd648a (patch)
tree0feb62923df52ac867d3aba3e2888a7ac17ad537
parent59ecda69d26eeb6461a6b2f9e2e5ec13a1cec311 (diff)
functionnal test: separate tests into files
separate tests into files each file represent a entry in the XDS-SERVER API the created files are: - version - config - folders Change-Id: I32d24f5b277ab853f6c190a96433aca5b4fda1d5 Signed-off-by: Clément Bénier <clement.benier@iot.bzh>
-rw-r--r--test/config_test.go52
-rw-r--r--test/folders_test.go171
-rw-r--r--test/version_test.go36
-rw-r--r--test/xdsserver_test.go186
4 files changed, 259 insertions, 186 deletions
diff --git a/test/config_test.go b/test/config_test.go
new file mode 100644
index 0000000..ad6ea1b
--- /dev/null
+++ b/test/config_test.go
@@ -0,0 +1,52 @@
+/*
+ * Copyright (C) 2017-2018 "IoT.bzh"
+ * Author Clément Bénier <clement.benier@iot.bzh>
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package xdsservertest
+
+import (
+ "net"
+ "regexp"
+ "strings"
+ "testing"
+
+ "gerrit.automotivelinux.org/gerrit/src/xds/xds-server/lib/xsapiv1"
+ "github.com/stretchr/testify/assert"
+)
+
+func CheckIP(ipconfig string) bool {
+ ifaces, _ := net.Interfaces()
+ for _, i := range ifaces {
+ addrs, _ := i.Addrs()
+ for _, addr := range addrs {
+ if strings.HasPrefix(addr.String(), ipconfig) {
+ return true
+ }
+ }
+ }
+ return false
+}
+
+func TestConfig(t *testing.T) {
+ var cfg xsapiv1.APIConfig
+ assert.Nil(t, HTTPCli.Get("/config", &cfg))
+
+ 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, pathMap)
+ assert.True(t, CheckIP(cfg.Builder.IP))
+}
diff --git a/test/folders_test.go b/test/folders_test.go
new file mode 100644
index 0000000..42db7c2
--- /dev/null
+++ b/test/folders_test.go
@@ -0,0 +1,171 @@
+/*
+ * Copyright (C) 2017-2018 "IoT.bzh"
+ * Author Clément Bénier <clement.benier@iot.bzh>
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package xdsservertest
+
+import (
+ "io/ioutil"
+ "os"
+ "regexp"
+ "testing"
+
+ "gerrit.automotivelinux.org/gerrit/src/xds/xds-server/lib/xsapiv1"
+ "github.com/stretchr/testify/assert"
+)
+
+func TestFolders(t *testing.T) {
+ var cfgArray []xsapiv1.FolderConfig
+ assert.Nil(t, HTTPCli.Get("/folders", &cfgArray))
+ assert.Equal(t, len(cfgArray), 0)
+
+ fPrj := xsapiv1.FolderConfig{
+ Label: "testproject",
+ ClientPath: logDir + "testproject",
+ Type: xsapiv1.TypePathMap,
+ ClientData: "clientdatatest",
+ DataPathMap: xsapiv1.PathMapConfig{
+ ServerPath: logDir + "testserverpath",
+ },
+ }
+ var cfg xsapiv1.FolderConfig
+ assert.Nil(t, HTTPCli.Post("/folders", fPrj, &cfg))
+ assert.NotNil(t, 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]+$")
+ assert.True(t, re.MatchString(cfg.ID)) //ID
+ assert.Equal(t, cfg.Label, fPrj.Label) //Label
+ assert.Equal(t, cfg.ClientPath, fPrj.ClientPath)
+ assert.Equal(t, cfg.Type, fPrj.Type)
+ assert.Equal(t, cfg.Status, "Enable")
+ assert.Equal(t, cfg.IsInSync, true)
+ assert.Equal(t, len(cfg.DefaultSdk), 0)
+ assert.Equal(t, fPrj.ClientData, cfg.ClientData)
+ assert.Equal(t, fPrj.DataPathMap.ServerPath, cfg.DataPathMap.ServerPath)
+ }
+ isCfgPrjMatch(fPrj, cfg)
+ var cfg2 xsapiv1.FolderConfig
+ assert.Nil(t, HTTPCli.Get("/folders/"+cfg.ID, &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))
+
+ /*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 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)
+}
diff --git a/test/version_test.go b/test/version_test.go
new file mode 100644
index 0000000..275480b
--- /dev/null
+++ b/test/version_test.go
@@ -0,0 +1,36 @@
+/*
+ * Copyright (C) 2017-2018 "IoT.bzh"
+ * Author Clément Bénier <clement.benier@iot.bzh>
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package xdsservertest
+
+import (
+ "regexp"
+ "testing"
+
+ "github.com/stretchr/testify/assert"
+)
+
+func TestVersion(t *testing.T) {
+ var datVersion map[string]interface{}
+ assert.Nil(t, HTTPCli.Get("/version", &datVersion))
+ t.Log(datVersion)
+
+ ver, present := datVersion["version"]
+ assert.True(t, present)
+ t.Logf("version is %s", ver.(string))
+ re := regexp.MustCompile("^v*[0-9]+.[0-9]+.[0-9]+$")
+ assert.True(t, re.MatchString(ver.(string)))
+}
diff --git a/test/xdsserver_test.go b/test/xdsserver_test.go
index 75f4f92..f2b4d9d 100644
--- a/test/xdsserver_test.go
+++ b/test/xdsserver_test.go
@@ -17,19 +17,13 @@
package xdsservertest
import (
- "io/ioutil"
"log"
- "net"
"os"
"os/exec"
- "regexp"
- "strings"
"testing"
"time"
common "gerrit.automotivelinux.org/gerrit/src/xds/xds-common.git/golib"
- "gerrit.automotivelinux.org/gerrit/src/xds/xds-server/lib/xsapiv1"
- "github.com/stretchr/testify/assert"
)
//global client
@@ -117,183 +111,3 @@ func TestMain(m *testing.M) {
func init() {
}
-
-func CheckIP(ipconfig string) bool {
- ifaces, _ := net.Interfaces()
- for _, i := range ifaces {
- addrs, _ := i.Addrs()
- for _, addr := range addrs {
- if strings.HasPrefix(addr.String(), ipconfig) {
- return true
- }
- }
- }
- return false
-}
-
-func TestVersion(t *testing.T) {
- var datVersion map[string]interface{}
- assert.Nil(t, HTTPCli.Get("/version", &datVersion))
- t.Log(datVersion)
-
- ver, present := datVersion["version"]
- assert.True(t, present)
- t.Logf("version is %s", ver.(string))
- re := regexp.MustCompile("^v*[0-9]+.[0-9]+.[0-9]+$")
- assert.True(t, re.MatchString(ver.(string)))
-}
-
-func TestConfig(t *testing.T) {
- var cfg xsapiv1.APIConfig
- assert.Nil(t, HTTPCli.Get("/config", &cfg))
-
- 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, pathMap)
- assert.True(t, CheckIP(cfg.Builder.IP))
-}
-func TestFolders(t *testing.T) {
- var cfgArray []xsapiv1.FolderConfig
- assert.Nil(t, HTTPCli.Get("/folders", &cfgArray))
- assert.Equal(t, len(cfgArray), 0)
-
- fPrj := xsapiv1.FolderConfig{
- Label: "testproject",
- ClientPath: logDir + "testproject",
- Type: xsapiv1.TypePathMap,
- ClientData: "clientdatatest",
- DataPathMap: xsapiv1.PathMapConfig{
- ServerPath: logDir + "testserverpath",
- },
- }
- var cfg xsapiv1.FolderConfig
- assert.Nil(t, HTTPCli.Post("/folders", fPrj, &cfg))
- assert.NotNil(t, 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]+$")
- assert.True(t, re.MatchString(cfg.ID)) //ID
- assert.Equal(t, cfg.Label, fPrj.Label) //Label
- assert.Equal(t, cfg.ClientPath, fPrj.ClientPath)
- assert.Equal(t, cfg.Type, fPrj.Type)
- assert.Equal(t, cfg.Status, "Enable")
- assert.Equal(t, cfg.IsInSync, true)
- assert.Equal(t, len(cfg.DefaultSdk), 0)
- assert.Equal(t, fPrj.ClientData, cfg.ClientData)
- assert.Equal(t, fPrj.DataPathMap.ServerPath, cfg.DataPathMap.ServerPath)
- }
- isCfgPrjMatch(fPrj, cfg)
- var cfg2 xsapiv1.FolderConfig
- assert.Nil(t, HTTPCli.Get("/folders/"+cfg.ID, &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))
-
- /*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 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)
-}