diff options
Diffstat (limited to 'software/communication/data_link_test.go')
-rw-r--r-- | software/communication/data_link_test.go | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/software/communication/data_link_test.go b/software/communication/data_link_test.go new file mode 100644 index 0000000..91b941d --- /dev/null +++ b/software/communication/data_link_test.go @@ -0,0 +1,33 @@ +package communication + +import ( + "reflect" + "testing" +) + +func TestUnslip(t *testing.T) { + input := []byte{ + 0xFF, 0x12, SLIP_END, + } + + bytes := make(chan byte) + frames := make(chan []byte) + + go func() { + for _, v := range input { + bytes <- v + } + }() + + go func() { + for { + frames <- unslip(bytes) + } + }() + + frame := <-frames + expected := []byte{0xFF, 0x12} + if !reflect.DeepEqual(frame, expected) { + t.Fatalf("Frame '%v' does not match expected '%v'\n", frame, expected) + } +} |