From 2825d73859f3a1431e18c286d260c01532182707 Mon Sep 17 00:00:00 2001 From: weihuanhuan Date: Mon, 15 Jul 2024 13:36:43 +0800 Subject: [PATCH] update httpserver_test log --- pkg/httpserver/httpserver_test.go | 179 +++++++++++++++++++++--------- 1 file changed, 126 insertions(+), 53 deletions(-) diff --git a/pkg/httpserver/httpserver_test.go b/pkg/httpserver/httpserver_test.go index 784613d..6d6205c 100644 --- a/pkg/httpserver/httpserver_test.go +++ b/pkg/httpserver/httpserver_test.go @@ -17,11 +17,9 @@ limitations under the License. package httpserver import ( - "nestos-kubernetes-deployer/pkg/constants" "net/http" - "os" + "net/http/httptest" "testing" - "time" ) func TestHTTPServer(t *testing.T) { @@ -39,73 +37,148 @@ func TestHTTPServer(t *testing.T) { } }) - t.Run("TestStartHTTPService", func(t *testing.T) { - go func() { - StartHTTPService(hs) - }() - time.Sleep(1 * time.Second) - if err := hs.Stop(); err != nil { - t.Log("test fail", err) - return - } + t.Run("StartHTTPService", func(t *testing.T) { + StartHTTPService(hs) }) - t.Run("TestStartStop", func(t *testing.T) { - hs.DirPath = "tmp" - go func() { - if err := hs.Stop(); err != nil { - t.Log("test fail", err) - return + t.Run("Start", func(t *testing.T) { + ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + if r.URL.Path == "/dir" { + // 根据您的预期响应设置响应头和响应体 + w.Header().Set("Content-Type", "application/json") + w.WriteHeader(http.StatusOK) + _, _ = w.Write([]byte(`{"message": "API endpoint success"}`)) + } else { + w.WriteHeader(http.StatusNotFound) } - if err := hs.Start(); err != nil { - t.Log("test fail", err) - return - } - }() - time.Sleep(1 * time.Second) - if err := hs.Stop(); err != nil { - t.Log("test fail", err) - return + })) + defer ts.Close() + //t.Log(ts.URL + "/dir") + //// 发送 HTTP 请求 + //client := &http.Client{} + //req, err := http.NewRequest("GET", ts.URL+"/dir", nil) + //if err != nil { + // t.Log(err) + //} + // + //resp, err := client.Do(req) + //if err != nil { + // t.Log(err) + //} + //defer resp.Body.Close() + //return + hs := &HTTPService{ + server: &http.Server{ + Addr: ts.URL[7:], + Handler: ts.Config.Handler, + }, } - }) - - t.Run("TestServer", func(t *testing.T) { - content := []byte("test content") - hs.AddFileToCache("/testfile", content) - - go func() { - if err := hs.Stop(); err != nil { - t.Log("test fail", err) - return - } - if err := hs.Start(); err != nil { - t.Log("test fail", err) - return - } - }() - time.Sleep(1 * time.Second) - - _, err := http.Get("http://localhost:1234/testfile") + err := hs.Start() if err != nil { - t.Log("test fail", err) + t.Log(err) return } - _, err = http.Get("http://localhost:1234/dir" + os.TempDir()) + t.Log("start success") + }) + + t.Run("stop", func(t *testing.T) { + err := hs.Stop() if err != nil { - t.Log("test fail", err) + t.Log(err) return } + t.Log("stop success") + }) - _, err = http.Get("http://localhost:1234" + constants.RpmPackageList) + t.Run("stop_runing", func(t *testing.T) { + hs.running = false + err := hs.Stop() if err != nil { - t.Log("test fail", err) + t.Log(err) return } + t.Log("stop success") + }) - if err := hs.Stop(); err != nil { - t.Log("test fail", err) + t.Run("stop_server_empty", func(t *testing.T) { + hs.running = true + hs.server = nil + err := hs.Stop() + if err != nil { + t.Log(err) return } + t.Log("stop success") }) + + //t.Run("TestStartHTTPService", func(t *testing.T) { + // go func() { + // StartHTTPService(hs) + // }() + // time.Sleep(1 * time.Second) + // if err := hs.Stop(); err != nil { + // t.Log("test fail", err) + // return + // } + //}) + // + //t.Run("TestStartStop", func(t *testing.T) { + // hs.DirPath = "tmp" + // go func() { + // if err := hs.Stop(); err != nil { + // t.Log("test fail", err) + // return + // } + // if err := hs.Start(); err != nil { + // t.Log("test fail", err) + // return + // } + // }() + // time.Sleep(1 * time.Second) + // if err := hs.Stop(); err != nil { + // t.Log("test fail", err) + // return + // } + //}) + // + //t.Run("TestServer", func(t *testing.T) { + // content := []byte("test content") + // hs.AddFileToCache("/testfile", content) + // + // go func() { + // if err := hs.Stop(); err != nil { + // t.Log("test fail", err) + // return + // } + // if err := hs.Start(); err != nil { + // t.Log("test fail", err) + // return + // } + // }() + // time.Sleep(1 * time.Second) + // + // _, err := http.Get("http://localhost:1234/testfile") + // if err != nil { + // t.Log("test fail", err) + // return + // } + // + // _, err = http.Get("http://localhost:1234/dir" + os.TempDir()) + // if err != nil { + // t.Log("test fail", err) + // return + // } + // + // _, err = http.Get("http://localhost:1234" + constants.RpmPackageList) + // if err != nil { + // t.Log("test fail", err) + // return + // } + // + // if err := hs.Stop(); err != nil { + // t.Log("test fail", err) + // return + // } + //}) } -- Gitee