[tor-commits] [goptlib/master] Add tests for sendSocks4aResponse.
dcf at torproject.org
dcf at torproject.org
Mon Dec 9 02:49:51 UTC 2013
commit 8821313485f1da2281b7763991a8042303630cbd
Author: David Fifield <david at bamsoftware.com>
Date: Sat Dec 7 21:25:34 2013 -0800
Add tests for sendSocks4aResponse.
---
socks_test.go | 37 +++++++++++++++++++++++++++++++++++++
1 file changed, 37 insertions(+)
diff --git a/socks_test.go b/socks_test.go
index bb638b5..2fb8a8c 100644
--- a/socks_test.go
+++ b/socks_test.go
@@ -107,3 +107,40 @@ func TestReadSocks4aConnect(t *testing.T) {
}
}
}
+
+func TestSendSocks4aResponse(t *testing.T) {
+ tests := [...]struct {
+ code byte
+ addr net.TCPAddr
+ expected []byte
+ }{
+ {
+ socksRequestGranted,
+ net.TCPAddr{IP: net.ParseIP("1.2.3.4"), Port: 0x1234},
+ []byte("\x00\x5a\x12\x34\x01\x02\x03\x04"),
+ },
+ {
+ socksRequestRejected,
+ net.TCPAddr{IP: net.ParseIP("1:2::3:4"), Port: 0x1234},
+ []byte("\x00\x5b\x12\x34\x00\x00\x00\x00"),
+ },
+ }
+
+ for _, test := range tests {
+ var buf bytes.Buffer
+ err := sendSocks4aResponse(&buf, test.code, &test.addr)
+ if err != nil {
+ t.Errorf("0x%02x %s unexpectedly returned an error: %s", test.code, test.addr, err)
+ }
+ p := make([]byte, 1024)
+ n, err := buf.Read(p)
+ if err != nil {
+ t.Fatal(err)
+ }
+ output := p[:n]
+ if !bytes.Equal(output, test.expected) {
+ t.Errorf("0x%02x %s â %v (expected %v)",
+ test.code, test.addr, output, test.expected)
+ }
+ }
+}
More information about the tor-commits
mailing list