12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- package streamproxy_test
- import (
- "testing"
- "time"
- "imuslab.com/zoraxy/mod/streamproxy"
- )
- func TestPort2Port(t *testing.T) {
- // Create a stopChan to control the loop
- stopChan := make(chan bool)
- // Create a ProxyRelayConfig with dummy values
- config := &streamproxy.ProxyRelayConfig{
- Timeout: 1,
- }
- // Run port2port in a separate goroutine
- t.Log("Starting go routine for proxy service")
- go func() {
- err := config.Port2host("8080", "124.244.86.40:8080", stopChan)
- if err != nil {
- t.Errorf("port2port returned an error: %v", err)
- }
- }()
- // Let the goroutine run for a while
- time.Sleep(20 * time.Second)
- // Send a stop signal to stopChan
- t.Log("Sending over stop signal")
- stopChan <- true
- // Allow some time for the goroutine to exit
- time.Sleep(1 * time.Second)
- // If the goroutine is still running, it means it did not stop as expected
- if config.IsRunning() {
- t.Errorf("port2port did not stop as expected")
- }
- }
|