2022-05-18 21:03:51 +08:00
|
|
|
|
package utils_test
|
2020-10-08 15:06:42 +08:00
|
|
|
|
|
|
|
|
|
|
import (
|
2024-07-27 15:42:50 +08:00
|
|
|
|
"strings"
|
|
|
|
|
|
"testing"
|
|
|
|
|
|
|
2022-05-18 21:03:51 +08:00
|
|
|
|
"github.com/TeaOSLab/EdgeNode/internal/utils"
|
|
|
|
|
|
"github.com/iwind/TeaGo/assert"
|
2023-03-03 14:28:58 +08:00
|
|
|
|
"github.com/iwind/TeaGo/types"
|
2020-10-08 15:06:42 +08:00
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
func TestBytesToString(t *testing.T) {
|
2022-05-18 21:03:51 +08:00
|
|
|
|
t.Log(utils.UnsafeBytesToString([]byte("Hello,World")))
|
2020-10-08 15:06:42 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
func TestStringToBytes(t *testing.T) {
|
2022-05-18 21:03:51 +08:00
|
|
|
|
t.Log(string(utils.UnsafeStringToBytes("Hello,World")))
|
2020-10-08 15:06:42 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
func BenchmarkBytesToString(b *testing.B) {
|
2022-05-18 21:03:51 +08:00
|
|
|
|
var data = []byte("Hello,World")
|
2020-10-08 15:06:42 +08:00
|
|
|
|
for i := 0; i < b.N; i++ {
|
2022-05-18 21:03:51 +08:00
|
|
|
|
_ = utils.UnsafeBytesToString(data)
|
2020-10-08 15:06:42 +08:00
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
func BenchmarkBytesToString2(b *testing.B) {
|
2022-05-18 21:03:51 +08:00
|
|
|
|
var data = []byte("Hello,World")
|
2020-10-08 15:06:42 +08:00
|
|
|
|
for i := 0; i < b.N; i++ {
|
|
|
|
|
|
_ = string(data)
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
func BenchmarkStringToBytes(b *testing.B) {
|
2022-05-18 21:03:51 +08:00
|
|
|
|
var s = strings.Repeat("Hello,World", 1024)
|
2020-10-08 15:06:42 +08:00
|
|
|
|
for i := 0; i < b.N; i++ {
|
2022-05-18 21:03:51 +08:00
|
|
|
|
_ = utils.UnsafeStringToBytes(s)
|
2020-10-08 15:06:42 +08:00
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
func BenchmarkStringToBytes2(b *testing.B) {
|
2022-05-18 21:03:51 +08:00
|
|
|
|
var s = strings.Repeat("Hello,World", 1024)
|
2020-10-08 15:06:42 +08:00
|
|
|
|
for i := 0; i < b.N; i++ {
|
|
|
|
|
|
_ = []byte(s)
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
func TestFormatAddress(t *testing.T) {
|
2022-05-18 21:03:51 +08:00
|
|
|
|
t.Log(utils.FormatAddress("127.0.0.1:1234"))
|
|
|
|
|
|
t.Log(utils.FormatAddress("127.0.0.1 : 1234"))
|
|
|
|
|
|
t.Log(utils.FormatAddress("127.0.0.1:1234"))
|
2020-10-08 15:06:42 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
func TestFormatAddressList(t *testing.T) {
|
2022-05-18 21:03:51 +08:00
|
|
|
|
t.Log(utils.FormatAddressList([]string{
|
2020-10-08 15:06:42 +08:00
|
|
|
|
"127.0.0.1:1234",
|
|
|
|
|
|
"127.0.0.1 : 1234",
|
|
|
|
|
|
"127.0.0.1:1234",
|
|
|
|
|
|
}))
|
|
|
|
|
|
}
|
2022-05-18 21:03:51 +08:00
|
|
|
|
|
|
|
|
|
|
func TestContainsSameStrings(t *testing.T) {
|
|
|
|
|
|
var a = assert.NewAssertion(t)
|
2022-11-21 19:55:28 +08:00
|
|
|
|
a.IsFalse(utils.EqualStrings([]string{"a"}, []string{"b"}))
|
|
|
|
|
|
a.IsFalse(utils.EqualStrings([]string{"a", "b"}, []string{"b"}))
|
|
|
|
|
|
a.IsFalse(utils.EqualStrings([]string{"a", "b"}, []string{"a", "b", "c"}))
|
|
|
|
|
|
a.IsTrue(utils.EqualStrings([]string{"a", "b"}, []string{"a", "b"}))
|
|
|
|
|
|
a.IsTrue(utils.EqualStrings([]string{"a", "b"}, []string{"b", "a"}))
|
2022-05-18 21:03:51 +08:00
|
|
|
|
}
|
2023-03-03 14:28:58 +08:00
|
|
|
|
|
|
|
|
|
|
func TestToValidUTF8string(t *testing.T) {
|
|
|
|
|
|
for _, s := range []string{
|
|
|
|
|
|
"https://goedge.cn/",
|
|
|
|
|
|
"提升mysql数据表写入速度",
|
|
|
|
|
|
"😆",
|
|
|
|
|
|
string([]byte{'a', 'b', 130, 131, 132, 133, 134, 'c'}),
|
|
|
|
|
|
} {
|
|
|
|
|
|
var u = utils.ToValidUTF8string(s)
|
|
|
|
|
|
t.Log(s, "["+types.String(len(s))+"]", "=>", u, "["+types.String(len(u))+"]")
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|