mirror of
https://github.com/mayswind/ezbookkeeping.git
synced 2026-05-16 16:07:33 +08:00
redesign the default request id generator, replace random number to client port
This commit is contained in:
@@ -10,7 +10,7 @@ import (
|
||||
|
||||
func TestNewDefaultRequestIdGenerator_Http(t *testing.T) {
|
||||
generator, _ := NewDefaultRequestIdGenerator(&settings.Config{HttpAddr: "123.234.123.234", HttpPort: 8080, SecretKey: "secretkey"})
|
||||
requestId := generator.GenerateRequestId("127.0.0.1")
|
||||
requestId := generator.GenerateRequestId("127.0.0.1", 20000)
|
||||
requestIdInfo := generator.parseRequestIdInfo(generator.parseRequestIdFromUuid(requestId))
|
||||
|
||||
expectedServerUniqId := uint16(0x2476) // crc32("123.234.123.234" + "_" + "secretkey") & 0xFFFF
|
||||
@@ -24,7 +24,7 @@ func TestNewDefaultRequestIdGenerator_Http(t *testing.T) {
|
||||
|
||||
func TestNewDefaultRequestIdGenerator_UnixSocket(t *testing.T) {
|
||||
generator, _ := NewDefaultRequestIdGenerator(&settings.Config{HttpAddr: "1.2.3.4", UnixSocketPath: "/var/lib/ezbookkeeping/ezbookkeeping.sock", Protocol: "socket", SecretKey: "secretkey"})
|
||||
requestId := generator.GenerateRequestId("127.0.0.1")
|
||||
requestId := generator.GenerateRequestId("127.0.0.1", 20000)
|
||||
requestIdInfo := generator.parseRequestIdInfo(generator.parseRequestIdFromUuid(requestId))
|
||||
|
||||
expectedServerUniqId := uint16(0x5bdb) // crc32("1.2.3.4" + "_" + "secretkey") & 0xFFFF
|
||||
@@ -38,7 +38,7 @@ func TestNewDefaultRequestIdGenerator_UnixSocket(t *testing.T) {
|
||||
|
||||
func TestNewDefaultRequestIdGenerator_ClientIpv4(t *testing.T) {
|
||||
generator, _ := NewDefaultRequestIdGenerator(&settings.Config{HttpAddr: "1.2.3.4", UnixSocketPath: "/var/lib/ezbookkeeping/ezbookkeeping.sock", Protocol: "socket", SecretKey: "secretkey"})
|
||||
requestId := generator.GenerateRequestId("127.0.0.1")
|
||||
requestId := generator.GenerateRequestId("127.0.0.1", 20000)
|
||||
requestIdInfo := generator.parseRequestIdInfo(generator.parseRequestIdFromUuid(requestId))
|
||||
|
||||
expectedClientIp := uint32(0x7f000001) // 127.0.0.1
|
||||
@@ -49,7 +49,7 @@ func TestNewDefaultRequestIdGenerator_ClientIpv4(t *testing.T) {
|
||||
actualClientIpv6 := requestIdInfo.IsClientIpv6
|
||||
assert.Equal(t, expectedClientIpv6, actualClientIpv6)
|
||||
|
||||
requestId = generator.GenerateRequestId("192.168.1.100")
|
||||
requestId = generator.GenerateRequestId("192.168.1.100", 20000)
|
||||
requestIdInfo = generator.parseRequestIdInfo(generator.parseRequestIdFromUuid(requestId))
|
||||
|
||||
expectedClientIp = uint32(0xc0a80164) // 192.168.1.100
|
||||
@@ -63,7 +63,7 @@ func TestNewDefaultRequestIdGenerator_ClientIpv4(t *testing.T) {
|
||||
|
||||
func TestNewDefaultRequestIdGenerator_ClientIpv6(t *testing.T) {
|
||||
generator, _ := NewDefaultRequestIdGenerator(&settings.Config{HttpAddr: "1.2.3.4", UnixSocketPath: "/var/lib/ezbookkeeping/ezbookkeeping.sock", Protocol: "socket", SecretKey: "secretkey"})
|
||||
requestId := generator.GenerateRequestId("2001:abc:def:1234::1")
|
||||
requestId := generator.GenerateRequestId("2001:abc:def:1234::1", 20000)
|
||||
requestIdInfo := generator.parseRequestIdInfo(generator.parseRequestIdFromUuid(requestId))
|
||||
|
||||
expectedClientIp := uint32(0x76fe1b98) // crc32("2001:abc:def:1234::1")
|
||||
@@ -74,7 +74,7 @@ func TestNewDefaultRequestIdGenerator_ClientIpv6(t *testing.T) {
|
||||
actualClientIpv6 := requestIdInfo.IsClientIpv6
|
||||
assert.Equal(t, expectedClientIpv6, actualClientIpv6)
|
||||
|
||||
requestId = generator.GenerateRequestId("2400:abcd:1234:1:56ef:ab78:c90d:1e2f")
|
||||
requestId = generator.GenerateRequestId("2400:abcd:1234:1:56ef:ab78:c90d:1e2f", 20000)
|
||||
requestIdInfo = generator.parseRequestIdInfo(generator.parseRequestIdFromUuid(requestId))
|
||||
|
||||
expectedClientIp = uint32(0xa0a25faa) // crc32("2400:abcd:1234:1:56ef:ab78:c90d:1e2f")
|
||||
@@ -86,11 +86,56 @@ func TestNewDefaultRequestIdGenerator_ClientIpv6(t *testing.T) {
|
||||
assert.Equal(t, expectedClientIpv6, actualClientIpv6)
|
||||
}
|
||||
|
||||
func TestNewDefaultRequestIdGenerator_ClientPort(t *testing.T) {
|
||||
generator, _ := NewDefaultRequestIdGenerator(&settings.Config{HttpAddr: "1.2.3.4", UnixSocketPath: "/var/lib/ezbookkeeping/ezbookkeeping.sock", Protocol: "socket", SecretKey: "secretkey"})
|
||||
requestId := generator.GenerateRequestId("127.0.0.1", 0)
|
||||
requestIdInfo := generator.parseRequestIdInfo(generator.parseRequestIdFromUuid(requestId))
|
||||
|
||||
expectedClientPort := uint16(0)
|
||||
actualClientPort := requestIdInfo.ClientPort
|
||||
assert.Equal(t, expectedClientPort, actualClientPort)
|
||||
|
||||
requestId = generator.GenerateRequestId("127.0.0.1", 12345)
|
||||
requestIdInfo = generator.parseRequestIdInfo(generator.parseRequestIdFromUuid(requestId))
|
||||
|
||||
expectedClientPort = uint16(12345)
|
||||
actualClientPort = requestIdInfo.ClientPort
|
||||
assert.Equal(t, expectedClientPort, actualClientPort)
|
||||
|
||||
requestId = generator.GenerateRequestId("127.0.0.1", 32767)
|
||||
requestIdInfo = generator.parseRequestIdInfo(generator.parseRequestIdFromUuid(requestId))
|
||||
|
||||
expectedClientPort = uint16(32767)
|
||||
actualClientPort = requestIdInfo.ClientPort
|
||||
assert.Equal(t, expectedClientPort, actualClientPort)
|
||||
|
||||
requestId = generator.GenerateRequestId("127.0.0.1", 32768)
|
||||
requestIdInfo = generator.parseRequestIdInfo(generator.parseRequestIdFromUuid(requestId))
|
||||
|
||||
expectedClientPort = uint16(32768)
|
||||
actualClientPort = requestIdInfo.ClientPort
|
||||
assert.Equal(t, expectedClientPort, actualClientPort)
|
||||
|
||||
requestId = generator.GenerateRequestId("127.0.0.1", 56789)
|
||||
requestIdInfo = generator.parseRequestIdInfo(generator.parseRequestIdFromUuid(requestId))
|
||||
|
||||
expectedClientPort = uint16(56789)
|
||||
actualClientPort = requestIdInfo.ClientPort
|
||||
assert.Equal(t, expectedClientPort, actualClientPort)
|
||||
|
||||
requestId = generator.GenerateRequestId("127.0.0.1", 65535)
|
||||
requestIdInfo = generator.parseRequestIdInfo(generator.parseRequestIdFromUuid(requestId))
|
||||
|
||||
expectedClientPort = uint16(65535)
|
||||
actualClientPort = requestIdInfo.ClientPort
|
||||
assert.Equal(t, expectedClientPort, actualClientPort)
|
||||
}
|
||||
|
||||
func TestGenerateRequestId_100Times(t *testing.T) {
|
||||
generator, _ := NewDefaultRequestIdGenerator(&settings.Config{HttpAddr: "1.2.3.4", HttpPort: 1234, SecretKey: "secretkey"})
|
||||
|
||||
for i := 1; i <= 100; i++ {
|
||||
requestId := generator.GenerateRequestId("127.0.0.1")
|
||||
requestId := generator.GenerateRequestId("127.0.0.1", 20000)
|
||||
requestIdInfo := generator.parseRequestIdInfo(generator.parseRequestIdFromUuid(requestId))
|
||||
|
||||
expectedRequestSeqId := uint32(i)
|
||||
|
||||
Reference in New Issue
Block a user