X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;f=test%2Fxdsserver_test.go;h=5722d31025ac6d8f07a2bcff799f68827b3a5c4a;hb=db0df685e9dc40fdd53113caaac976d12fd73435;hp=bab7f682ac814fe04670c786882a7835982759dc;hpb=4121746213075b785adf24eec17eb0bdf49199c3;p=src%2Fxds%2Fxds-server.git diff --git a/test/xdsserver_test.go b/test/xdsserver_test.go index bab7f68..5722d31 100644 --- a/test/xdsserver_test.go +++ b/test/xdsserver_test.go @@ -18,31 +18,50 @@ package xdsservertest import ( "log" - "net" "os" - "regexp" - "strings" + "os/exec" "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 var HTTPCli *common.HTTPClient var logDir string +var sdkDir string -func initEnv() { +func initEnv(launchProcess bool) { + if launchProcess { + 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) } + sdkDir = rootTestLog + "/sdks/" + if err := os.Setenv(envXdtSdk, sdkDir); err != nil { + log.Fatal(err) + } + if err := os.Setenv(envXdsServerWorkspaceDir, rootTestLog); err != nil { + log.Fatal(err) + } + if err := os.Setenv(envXdsServerRootCfgDir, rootTestLog); err != nil { + log.Fatal(err) + } + if err := os.Setenv("XDS_LOG_SILLY", "1"); err != nil { + log.Fatal(err) + } os.RemoveAll(rootTestLog) os.MkdirAll(rootTestLog, 0755) logDir = rootTestLog + "/logs/" os.MkdirAll(logDir, 0755) + os.MkdirAll(sdkDir, 0755) } func launchXdsServer(proc **os.Process) *os.File { @@ -69,7 +88,7 @@ func getHTTPClient(lvl int) (*common.HTTPClient, *os.File) { } conf := common.HTTPClientConfig{ URLPrefix: "/api/v1", - HeaderClientKeyName: "Xds-Test-Sid", + HeaderClientKeyName: "Xds-Sid", CsrfDisable: true, LogOut: file, LogPrefix: "XDSSERVERTEST: ", @@ -77,123 +96,49 @@ func getHTTPClient(lvl int) (*common.HTTPClient, *os.File) { } cli, err := common.HTTPNewClient(prefixURL, conf) if err != nil { - log.Print(err) + log.Fatal(err) + } + log.Printf("HTTP session ID : %v", cli.GetClientID()) + var ver xsapiv1.Version + err = cli.Get("/version", &ver) + if err != nil { + log.Fatal(err) } return cli, file } func TestMain(m *testing.M) { - initEnv() + launchProcess := true + log.Printf("TestMain: launchProcess is %v", launchProcess) + initEnv(launchProcess) var proc *os.Process - fileXdsServer := launchXdsServer(&proc) - go func(p *os.Process) { - if status, err := p.Wait(); err != nil { - log.Fatalf("status=%v\n err=%v\n", status, err) - } - }(proc) + var fileXdsServer *os.File + if launchProcess { + fileXdsServer = launchXdsServer(&proc) + go func(p *os.Process) { + if status, err := p.Wait(); err != nil { + log.Fatalf("status=%v\n err=%v\n", status, err) + } + }(proc) + defer proc.Kill() + defer fileXdsServer.Close() + } time.Sleep(1 * time.Second) lvl := common.HTTPLogLevelDebug var fileHTTPClient *os.File HTTPCli, fileHTTPClient = getHTTPClient(lvl) + defer fileHTTPClient.Close() + + log.Printf("HTTPCli id is %v", HTTPCli.GetClientID()) if HTTPCli == nil { log.Fatal("HTTPCLi is nil") } res := m.Run() - proc.Kill() - fileXdsServer.Close() - fileHTTPClient.Close() - os.Exit(res) + defer os.Exit(res) } 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 datConfig map[string]interface{} - assert.Nil(t, HTTPCli.Get("/config", &datConfig)) - - builder, present := datConfig["builder"].(map[string]interface{}) - assert.True(t, present) - ip, present := builder["ip"] - assert.True(t, present) - assert.True(t, CheckIP(ip.(string))) -} -func TestFolders(t *testing.T) { - var datFolder []interface{} - assert.Nil(t, HTTPCli.Get("/folders", &datFolder)) - t.Log(datFolder) - assert.Equal(t, len(datFolder), 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) - 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]+$") - 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)) - t.Log(cfg2) - isCfgPrjMatch(fPrj, cfg2) - - //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 -} - -//func TestRegister(t *testing.T) { -// var client := common.HTTPClient -// client.Get("/folders", folders) -//}