aboutsummaryrefslogtreecommitdiff
path: root/internal/encoding/ssh/filexfer/extensions_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'internal/encoding/ssh/filexfer/extensions_test.go')
-rw-r--r--internal/encoding/ssh/filexfer/extensions_test.go49
1 files changed, 49 insertions, 0 deletions
diff --git a/internal/encoding/ssh/filexfer/extensions_test.go b/internal/encoding/ssh/filexfer/extensions_test.go
new file mode 100644
index 0000000..453265b
--- /dev/null
+++ b/internal/encoding/ssh/filexfer/extensions_test.go
@@ -0,0 +1,49 @@
+package filexfer
+
+import (
+ "bytes"
+ "testing"
+)
+
+func TestExtensionPair(t *testing.T) {
+ const (
+ name = "foo"
+ data = "1"
+ )
+
+ pair := &ExtensionPair{
+ Name: name,
+ Data: data,
+ }
+
+ buf, err := pair.MarshalBinary()
+ if err != nil {
+ t.Fatal("unexpected error:", err)
+ }
+
+ want := []byte{
+ 0x00, 0x00, 0x00, 3,
+ 'f', 'o', 'o',
+ 0x00, 0x00, 0x00, 1,
+ '1',
+ }
+
+ if !bytes.Equal(buf, want) {
+ t.Errorf("ExtensionPair.MarshalBinary() = %X, but wanted %X", buf, want)
+ }
+
+ *pair = ExtensionPair{}
+
+ if err := pair.UnmarshalBinary(buf); err != nil {
+ t.Fatal("unexpected error:", err)
+ }
+
+ if pair.Name != name {
+ t.Errorf("ExtensionPair.UnmarshalBinary(): Name was %q, but expected %q", pair.Name, name)
+ }
+
+ if pair.Data != data {
+ t.Errorf("RawPacket.UnmarshalBinary(): Data was %q, but expected %q", pair.Data, data)
+ }
+
+}