Apply .gitignore rules
This commit is contained in:
@@ -0,0 +1,86 @@
|
||||
package bytesSendUtil
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"io/ioutil"
|
||||
"net/http"
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
"goutil/debugUtil"
|
||||
)
|
||||
|
||||
// 保存接收的数据用于校验
|
||||
var http_recv_msg = make([]byte, 0)
|
||||
|
||||
func init() {
|
||||
debugUtil.SetDebug(true)
|
||||
}
|
||||
|
||||
type httpHandler struct {
|
||||
cnt int
|
||||
}
|
||||
|
||||
func (ctx *httpHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
|
||||
|
||||
defer r.Body.Close()
|
||||
result, _ := ioutil.ReadAll(r.Body)
|
||||
|
||||
if string(result) == "http-msg-failed" {
|
||||
http.NotFound(w, r)
|
||||
} else {
|
||||
ctx.cnt++
|
||||
// 模拟一次失败
|
||||
if ctx.cnt == 2 {
|
||||
http.NotFound(w, r)
|
||||
} else {
|
||||
http_recv_msg = append(http_recv_msg, result...)
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
func Test_http(t *testing.T) {
|
||||
http.Handle("/test", new(httpHandler))
|
||||
go http.ListenAndServe("127.0.0.1:9560", nil)
|
||||
|
||||
httpSender, err := NewHTTPSender("./test_http", "http://127.0.0.1:9560/test")
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
}
|
||||
|
||||
time.Sleep(time.Millisecond * 50)
|
||||
|
||||
// 第一次应该成功
|
||||
httpSender.Write([]byte("http-msg-1"))
|
||||
|
||||
time.Sleep(time.Millisecond)
|
||||
|
||||
// 发送消息,此数据会多次失败,被丢弃到giveup目录
|
||||
httpSender.Write([]byte("http-msg-failed"))
|
||||
|
||||
time.Sleep(time.Second * 4)
|
||||
|
||||
// 第二次应该失败
|
||||
httpSender.Write([]byte("http-msg-2"))
|
||||
|
||||
time.Sleep(time.Millisecond)
|
||||
|
||||
// 保存数据
|
||||
httpSender.Close()
|
||||
|
||||
// 重启之后应该会重发数据
|
||||
httpSender, err = NewHTTPSender("./test_http", "http://127.0.0.1:9560/test")
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
}
|
||||
time.Sleep(time.Second * 2)
|
||||
|
||||
httpSender.Close()
|
||||
|
||||
if string(http_recv_msg) != "http-msg-1http-msg-2" {
|
||||
t.Error("message error. got " + string(http_recv_msg))
|
||||
} else {
|
||||
fmt.Println("HTTP OK")
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user