package uhf import ( "testing" "time" ) func TestTCPReaderIsConnectedDoesNotWaitForIOLock(t *testing.T) { reader := NewTCPReader("127.0.0.1", 9000) reader.connected.Store(true) reader.ioMu.Lock() defer reader.ioMu.Unlock() done := make(chan bool, 1) go func() { done <- reader.IsConnected() }() select { case connected := <-done: if !connected { t.Fatal("expected TCP reader to report connected") } case <-time.After(100 * time.Millisecond): t.Fatal("TCP connection status waited for the I/O lock") } } func TestSerialReaderIsConnectedDoesNotWaitForIOLock(t *testing.T) { reader := NewSerialReader("COM1", 115200) reader.connected.Store(true) reader.ioMu.Lock() defer reader.ioMu.Unlock() done := make(chan bool, 1) go func() { done <- reader.IsConnected() }() select { case connected := <-done: if !connected { t.Fatal("expected serial reader to report connected") } case <-time.After(100 * time.Millisecond): t.Fatal("serial connection status waited for the I/O lock") } }