| 1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- 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")
- }
- }
|