1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
|
package modbus
import (
"bytes"
"io"
"testing"
"time"
)
type nopCloser struct {
io.ReadWriter
closed bool
}
func (n *nopCloser) Close() error {
n.closed = true
return nil
}
func TestSerialCloseIdle(t *testing.T) {
port := &nopCloser{
ReadWriter: &bytes.Buffer{},
}
s := serialPort{
port: port,
IdleTimeout: 100 * time.Millisecond,
}
s.lastActivity = time.Now()
s.startCloseTimer()
time.Sleep(150 * time.Millisecond)
if !port.closed || s.port != nil {
t.Fatalf("serial port is not closed when inactivity: %+v", port)
}
}
|