|
@@ -69,7 +69,10 @@ func TestMenuConnection(t *testing.T) {
|
|
|
|
|
|
// pre-load unicode 90x40 response
|
|
// pre-load unicode 90x40 response
|
|
var buffer []byte = []byte("\x1b[1;1R\x1b[2;3R\x1b[40;90R")
|
|
var buffer []byte = []byte("\x1b[1;1R\x1b[2;3R\x1b[40;90R")
|
|
- server.Write(buffer)
|
|
|
|
|
|
+ _, err = server.Write(buffer)
|
|
|
|
+ if err != nil {
|
|
|
|
+ t.Error("server.Write:", err)
|
|
|
|
+ }
|
|
runtime.Gosched()
|
|
runtime.Gosched()
|
|
|
|
|
|
// Access Fd (File descriptor) of client for dropfile
|
|
// Access Fd (File descriptor) of client for dropfile
|
|
@@ -117,13 +120,19 @@ func TestMenuConnection(t *testing.T) {
|
|
|
|
|
|
// These are the commands sent to detect ... throw this all away.
|
|
// These are the commands sent to detect ... throw this all away.
|
|
buffer = make([]byte, 1024)
|
|
buffer = make([]byte, 1024)
|
|
- server.SetReadDeadline(time.Now().Add(time.Millisecond * 20))
|
|
|
|
|
|
+ err = server.SetReadDeadline(time.Now().Add(time.Millisecond * 20))
|
|
|
|
+ if err != nil {
|
|
|
|
+ t.Error("server.SetReadDeadLine:", err)
|
|
|
|
+ }
|
|
_, err = server.Read(buffer)
|
|
_, err = server.Read(buffer)
|
|
if err != nil {
|
|
if err != nil {
|
|
t.Errorf("server.Read: %s", err)
|
|
t.Errorf("server.Read: %s", err)
|
|
}
|
|
}
|
|
// t.Errorf("Buffer : %#v\n", buffer[:r])
|
|
// t.Errorf("Buffer : %#v\n", buffer[:r])
|
|
- server.SetReadDeadline(time.Time{})
|
|
|
|
|
|
+ err = server.SetReadDeadline(time.Time{})
|
|
|
|
+ if err != nil {
|
|
|
|
+ t.Error("server.SetReadDeadLine:", err)
|
|
|
|
+ }
|
|
|
|
|
|
// Ready to test!
|
|
// Ready to test!
|
|
var m Menu = Menu{Panel: Panel{Width: 10,
|
|
var m Menu = Menu{Panel: Panel{Width: 10,
|
|
@@ -149,7 +158,10 @@ func TestMenuConnection(t *testing.T) {
|
|
// preload the key buffer with commands
|
|
// preload the key buffer with commands
|
|
// BUG: I can't use \x1b[A because of the way extended codes work there.
|
|
// BUG: I can't use \x1b[A because of the way extended codes work there.
|
|
var keys string = "\x00\x50\x00\x50\r" // down, down, ENTER
|
|
var keys string = "\x00\x50\x00\x50\r" // down, down, ENTER
|
|
- server.Write([]byte(keys))
|
|
|
|
|
|
+ _, err = server.Write([]byte(keys))
|
|
|
|
+ if err != nil {
|
|
|
|
+ t.Error("server.Write:", err)
|
|
|
|
+ }
|
|
time.Sleep(time.Millisecond)
|
|
time.Sleep(time.Millisecond)
|
|
runtime.Gosched()
|
|
runtime.Gosched()
|
|
if d.Disconnect() {
|
|
if d.Disconnect() {
|
|
@@ -172,13 +184,19 @@ func TestMenuConnection(t *testing.T) {
|
|
}
|
|
}
|
|
|
|
|
|
// Read the display output
|
|
// Read the display output
|
|
- server.SetReadDeadline(time.Now().Add(time.Millisecond * 50))
|
|
|
|
|
|
+ err = server.SetReadDeadline(time.Now().Add(time.Millisecond * 50))
|
|
|
|
+ if err != nil {
|
|
|
|
+ t.Error("server.SetReadDeadLine:", err)
|
|
|
|
+ }
|
|
var r int
|
|
var r int
|
|
r, err = server.Read(buffer)
|
|
r, err = server.Read(buffer)
|
|
if err != nil {
|
|
if err != nil {
|
|
t.Errorf("server.Read: %s", err)
|
|
t.Errorf("server.Read: %s", err)
|
|
}
|
|
}
|
|
- server.SetReadDeadline(time.Time{})
|
|
|
|
|
|
+ err = server.SetReadDeadline(time.Time{})
|
|
|
|
+ if err != nil {
|
|
|
|
+ t.Error("server.SetReadDeadLine:", err)
|
|
|
|
+ }
|
|
output := string(buffer[:r])
|
|
output := string(buffer[:r])
|
|
// t.Errorf("OUTPUT: (len %d) %#v", r, output)
|
|
// t.Errorf("OUTPUT: (len %d) %#v", r, output)
|
|
|
|
|
|
@@ -216,12 +234,18 @@ func TestMenuConnection(t *testing.T) {
|
|
}
|
|
}
|
|
|
|
|
|
// Read the display output
|
|
// Read the display output
|
|
- server.SetReadDeadline(time.Now().Add(time.Millisecond * 50))
|
|
|
|
|
|
+ err = server.SetReadDeadline(time.Now().Add(time.Millisecond * 50))
|
|
|
|
+ if err != nil {
|
|
|
|
+ t.Error("server.SetReadDeadLine:", err)
|
|
|
|
+ }
|
|
_, err = server.Read(buffer)
|
|
_, err = server.Read(buffer)
|
|
if err != nil {
|
|
if err != nil {
|
|
t.Errorf("server.Read: %s", err)
|
|
t.Errorf("server.Read: %s", err)
|
|
}
|
|
}
|
|
- server.SetReadDeadline(time.Time{})
|
|
|
|
|
|
+ err = server.SetReadDeadline(time.Time{})
|
|
|
|
+ if err != nil {
|
|
|
|
+ t.Error("server.SetReadDeadLine:", err)
|
|
|
|
+ }
|
|
// TODO: Check Menu output and verify it is correct.
|
|
// TODO: Check Menu output and verify it is correct.
|
|
// output = string(buffer[:r])
|
|
// output = string(buffer[:r])
|
|
|
|
|
|
@@ -250,12 +274,18 @@ func TestMenuConnection(t *testing.T) {
|
|
}
|
|
}
|
|
|
|
|
|
// Read the display output
|
|
// Read the display output
|
|
- server.SetReadDeadline(time.Now().Add(time.Millisecond * 50))
|
|
|
|
|
|
+ err = server.SetReadDeadline(time.Now().Add(time.Millisecond * 50))
|
|
|
|
+ if err != nil {
|
|
|
|
+ t.Error("server.SetReadDeadLine:", err)
|
|
|
|
+ }
|
|
_, err = server.Read(buffer)
|
|
_, err = server.Read(buffer)
|
|
if err != nil {
|
|
if err != nil {
|
|
t.Errorf("server.Read: %s", err)
|
|
t.Errorf("server.Read: %s", err)
|
|
}
|
|
}
|
|
- server.SetReadDeadline(time.Time{})
|
|
|
|
|
|
+ err = server.SetReadDeadline(time.Time{})
|
|
|
|
+ if err != nil {
|
|
|
|
+ t.Error("server.SetReadDeadLine:", err)
|
|
|
|
+ }
|
|
// output = string(buffer[:r])
|
|
// output = string(buffer[:r])
|
|
|
|
|
|
keys = "\x00\x47\r" // HOME, ENTER
|
|
keys = "\x00\x47\r" // HOME, ENTER
|
|
@@ -277,12 +307,18 @@ func TestMenuConnection(t *testing.T) {
|
|
}
|
|
}
|
|
|
|
|
|
// Read the display output
|
|
// Read the display output
|
|
- server.SetReadDeadline(time.Now().Add(time.Millisecond * 50))
|
|
|
|
|
|
+ err = server.SetReadDeadline(time.Now().Add(time.Millisecond * 50))
|
|
|
|
+ if err != nil {
|
|
|
|
+ t.Error("server.SetReadDeadLine:", err)
|
|
|
|
+ }
|
|
_, err = server.Read(buffer)
|
|
_, err = server.Read(buffer)
|
|
if err != nil {
|
|
if err != nil {
|
|
t.Errorf("server.Read: %s", err)
|
|
t.Errorf("server.Read: %s", err)
|
|
}
|
|
}
|
|
- server.SetReadDeadline(time.Time{})
|
|
|
|
|
|
+ err = server.SetReadDeadline(time.Time{})
|
|
|
|
+ if err != nil {
|
|
|
|
+ t.Error("server.SetReadDeadLine:", err)
|
|
|
|
+ }
|
|
// output = string(buffer[:r])
|
|
// output = string(buffer[:r])
|
|
|
|
|
|
_, err = server.Write([]byte("B"))
|
|
_, err = server.Write([]byte("B"))
|
|
@@ -306,12 +342,18 @@ func TestMenuConnection(t *testing.T) {
|
|
// Read the display output
|
|
// Read the display output
|
|
|
|
|
|
// i/o timeout
|
|
// i/o timeout
|
|
- server.SetReadDeadline(time.Now().Add(time.Millisecond * 100))
|
|
|
|
|
|
+ err = server.SetReadDeadline(time.Now().Add(time.Millisecond * 100))
|
|
|
|
+ if err != nil {
|
|
|
|
+ t.Error("server.SetReadDeadLine:", err)
|
|
|
|
+ }
|
|
_, err = server.Read(buffer)
|
|
_, err = server.Read(buffer)
|
|
if err != nil {
|
|
if err != nil {
|
|
t.Errorf("server.Read: %s", err)
|
|
t.Errorf("server.Read: %s", err)
|
|
}
|
|
}
|
|
- server.SetReadDeadline(time.Time{})
|
|
|
|
|
|
+ err = server.SetReadDeadline(time.Time{})
|
|
|
|
+ if err != nil {
|
|
|
|
+ t.Error("server.SetReadDeadLine:", err)
|
|
|
|
+ }
|
|
// output = string(buffer[:r])
|
|
// output = string(buffer[:r])
|
|
|
|
|
|
keys = "2\r" // "Down", ENTER
|
|
keys = "2\r" // "Down", ENTER
|
|
@@ -334,12 +376,18 @@ func TestMenuConnection(t *testing.T) {
|
|
}
|
|
}
|
|
|
|
|
|
// Read the display output
|
|
// Read the display output
|
|
- server.SetReadDeadline(time.Now().Add(time.Millisecond * 50))
|
|
|
|
|
|
+ err = server.SetReadDeadline(time.Now().Add(time.Millisecond * 50))
|
|
|
|
+ if err != nil {
|
|
|
|
+ t.Error("server.SetReadDeadLine:", err)
|
|
|
|
+ }
|
|
_, err = server.Read(buffer)
|
|
_, err = server.Read(buffer)
|
|
if err != nil {
|
|
if err != nil {
|
|
t.Errorf("server.Read: %s", err)
|
|
t.Errorf("server.Read: %s", err)
|
|
}
|
|
}
|
|
- server.SetReadDeadline(time.Time{})
|
|
|
|
|
|
+ err = server.SetReadDeadline(time.Time{})
|
|
|
|
+ if err != nil {
|
|
|
|
+ t.Error("server.SetReadDeadLine:", err)
|
|
|
|
+ }
|
|
// output = string(buffer[:r])
|
|
// output = string(buffer[:r])
|
|
server.Close()
|
|
server.Close()
|
|
client.Close()
|
|
client.Close()
|