You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
43 lines
772 B
Go
43 lines
772 B
Go
package request
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
)
|
|
|
|
func TestFrameHeader(t *testing.T) {
|
|
header := NewFrameHeader()
|
|
|
|
// 测试Set和Get
|
|
header.Set("key1", "value1")
|
|
val := header.Get("key1")
|
|
assert.Equal(t, "value1", val, "Expected value1")
|
|
|
|
// 测试不存在的key
|
|
val = header.Get("nonexistent")
|
|
assert.Nil(t, val, "Expected nil for nonexistent key")
|
|
}
|
|
|
|
func TestFrameHeaderConcurrent(t *testing.T) {
|
|
header := NewFrameHeader()
|
|
|
|
// 并发Set和Get
|
|
done := make(chan bool, 100)
|
|
for i := 0; i < 100; i++ {
|
|
go func(id int) {
|
|
key := string(rune(id))
|
|
header.Set(key, id)
|
|
val := header.Get(key)
|
|
assert.Equal(t, id, val)
|
|
done <- true
|
|
}(i)
|
|
}
|
|
|
|
// 等待所有goroutine完成
|
|
for i := 0; i < 100; i++ {
|
|
<-done
|
|
}
|
|
}
|
|
|