...
This commit is contained in:
		| @@ -6,6 +6,7 @@ import ( | ||||
| 	"fmt" | ||||
| 	"log" | ||||
| 	"os" | ||||
| 	"strconv" | ||||
| 	"strings" | ||||
| 	"sync" | ||||
| 	"time" | ||||
| @@ -16,7 +17,7 @@ import ( | ||||
|  | ||||
| func main() { | ||||
| 	// Parse command line flags | ||||
| 	tcpPort := flag.String("tcp-port", "7777", "Redis server TCP port") | ||||
| 	tcpPortStr := flag.String("tcp-port", "7777", "Redis server TCP port") | ||||
| 	unixSocket := flag.String("unix-socket", "/tmp/redis-test.sock", "Redis server Unix domain socket path") | ||||
| 	username := flag.String("user", "jan", "Username to check") | ||||
| 	mailbox := flag.String("mailbox", "inbox", "Mailbox to check") | ||||
| @@ -24,8 +25,13 @@ func main() { | ||||
| 	dbNum := flag.Int("db", 0, "Redis database number") | ||||
| 	flag.Parse() | ||||
|  | ||||
| 	tcpPort, err := strconv.Atoi(*tcpPortStr) | ||||
| 	if err != nil { | ||||
| 		log.Fatalf("Invalid TCP port: %v", err) | ||||
| 	} | ||||
|  | ||||
| 	// Start Redis server in a goroutine | ||||
| 	log.Printf("Starting Redis server on TCP port %s and Unix socket %s", *tcpPort, *unixSocket) | ||||
| 	log.Printf("Starting Redis server on TCP port %d and Unix socket %s", tcpPort, *unixSocket) | ||||
|  | ||||
| 	// Create a wait group to ensure the server is started before testing | ||||
| 	var wg sync.WaitGroup | ||||
| @@ -44,7 +50,7 @@ func main() { | ||||
| 	// Start the Redis server in a goroutine | ||||
| 	go func() { | ||||
| 		// Create a new server instance | ||||
| 		_ = redisserver.NewServer(redisserver.ServerConfig{TCPPort: *tcpPort, UnixSocketPath: *unixSocket}) | ||||
| 		_ = redisserver.NewServer(redisserver.ServerConfig{TCPPort: tcpPort, UnixSocketPath: *unixSocket}) | ||||
|  | ||||
| 		// Signal that the server is ready | ||||
| 		wg.Done() | ||||
| @@ -61,7 +67,7 @@ func main() { | ||||
|  | ||||
| 	// Test TCP connection | ||||
| 	log.Println("Testing TCP connection") | ||||
| 	tcpAddr := fmt.Sprintf("localhost:%s", *tcpPort) | ||||
| 	tcpAddr := fmt.Sprintf("localhost:%d", tcpPort) | ||||
| 	testRedisConnection(tcpAddr, username, mailbox, debug, dbNum) | ||||
|  | ||||
| 	// Test Unix socket connection if supported | ||||
|   | ||||
| @@ -62,14 +62,19 @@ func (ts *TestSuite) PrintResults() { | ||||
|  | ||||
| func main() { | ||||
| 	// Parse command line flags | ||||
| 	tcpPort := flag.String("tcp-port", "7777", "Redis server TCP port") | ||||
| 	tcpPortStr := flag.String("tcp-port", "7777", "Redis server TCP port") | ||||
| 	unixSocket := flag.String("unix-socket", "/tmp/redis-test.sock", "Redis server Unix domain socket path") | ||||
| 	debug := flag.Bool("debug", false, "Enable debug output") | ||||
| 	dbNum := flag.Int("db", 0, "Redis database number") | ||||
| 	flag.Parse() | ||||
|  | ||||
| 	tcpPortInt, err := strconv.Atoi(*tcpPortStr) | ||||
| 	if err != nil { | ||||
| 		log.Fatalf("Invalid TCP port: %v", err) | ||||
| 	} | ||||
|  | ||||
| 	// Start Redis server in a goroutine | ||||
| 	log.Printf("Starting Redis server on TCP port %s and Unix socket %s", *tcpPort, *unixSocket) | ||||
| 	log.Printf("Starting Redis server on TCP port %d and Unix socket %s", tcpPortInt, *unixSocket) | ||||
|  | ||||
| 	// Create a wait group to ensure the server is started before testing | ||||
| 	var wg sync.WaitGroup | ||||
| @@ -88,7 +93,7 @@ func main() { | ||||
| 	// Start the Redis server in a goroutine | ||||
| 	go func() { | ||||
| 		// Create a new server instance | ||||
| 		_ = redisserver.NewServer(redisserver.ServerConfig{TCPPort: *tcpPort, UnixSocketPath: *unixSocket}) | ||||
| 		_ = redisserver.NewServer(redisserver.ServerConfig{TCPPort: tcpPortInt, UnixSocketPath: *unixSocket}) | ||||
|  | ||||
| 		// Signal that the server is ready | ||||
| 		wg.Done() | ||||
| @@ -105,7 +110,7 @@ func main() { | ||||
|  | ||||
| 	// Test TCP connection | ||||
| 	log.Println("Testing TCP connection") | ||||
| 	tcpAddr := fmt.Sprintf("localhost:%s", *tcpPort) | ||||
| 	tcpAddr := fmt.Sprintf("localhost:%d", tcpPortInt) | ||||
| 	runTests(tcpAddr, *debug, *dbNum) | ||||
|  | ||||
| 	// Test Unix socket connection if supported | ||||
|   | ||||
| @@ -1,6 +1,7 @@ | ||||
| package redisserver | ||||
|  | ||||
| import ( | ||||
| 	"strconv" | ||||
| 	"sync" | ||||
| 	"time" | ||||
| ) | ||||
| @@ -20,7 +21,7 @@ type Server struct { | ||||
| } | ||||
|  | ||||
| type ServerConfig struct { | ||||
| 	TCPPort        string | ||||
| 	TCPPort        int | ||||
| 	UnixSocketPath string | ||||
| } | ||||
|  | ||||
| @@ -38,8 +39,8 @@ func NewServer(config ServerConfig) *Server { | ||||
| 	go s.cleanupExpiredKeys() | ||||
|  | ||||
| 	// Start TCP server if port is provided | ||||
| 	if config.TCPPort != "" { | ||||
| 		tcpAddr := ":" + config.TCPPort | ||||
| 	if config.TCPPort != 0 { | ||||
| 		tcpAddr := ":" + strconv.Itoa(config.TCPPort) | ||||
| 		go s.startRedisServer(tcpAddr, "") | ||||
| 	} | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user