summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/regress/lib/libtls/gotls/tls_test.go67
1 files changed, 67 insertions, 0 deletions
diff --git a/src/regress/lib/libtls/gotls/tls_test.go b/src/regress/lib/libtls/gotls/tls_test.go
index 2331ec0be6..3a430924a7 100644
--- a/src/regress/lib/libtls/gotls/tls_test.go
+++ b/src/regress/lib/libtls/gotls/tls_test.go
@@ -118,6 +118,73 @@ func TestTLSBasic(t *testing.T) {
118 } 118 }
119} 119}
120 120
121func TestTLSSingleByteReadWrite(t *testing.T) {
122 ts, u, caFile, err := newTestServer()
123 if err != nil {
124 t.Fatalf("Failed to start test server: %v", err)
125 }
126 defer os.Remove(caFile)
127 defer ts.Close()
128
129 if err := Init(); err != nil {
130 t.Fatal(err)
131 }
132
133 cfg, err := NewConfig()
134 if err != nil {
135 t.Fatal(err)
136 }
137 defer cfg.Free()
138 cfg.SetCAFile(caFile)
139
140 tls, err := NewClient(cfg)
141 if err != nil {
142 t.Fatal(err)
143 }
144 defer tls.Free()
145
146 t.Logf("Connecting to %s", u.Host)
147
148 if err := tls.Connect(u.Host, ""); err != nil {
149 t.Fatal(err)
150 }
151 defer func() {
152 if err := tls.Close(); err != nil {
153 t.Fatalf("Close failed: %v", err)
154 }
155 }()
156
157 for _, b := range []byte("GET / HTTP/1.0\n\n") {
158 n, err := tls.Write([]byte{b})
159 if err != nil {
160 t.Fatal(err)
161 }
162 if n != 1 {
163 t.Fatalf("Wrote byte %v, got length %d, want 1", b, n)
164 }
165 }
166
167 var body []byte
168 for {
169 buf := make([]byte, 1)
170 n, err := tls.Read(buf)
171 if err != nil {
172 t.Fatal(err)
173 }
174 if n == 0 {
175 break
176 }
177 if n != 1 {
178 t.Fatalf("Read single byte, got length %d, want 1", n)
179 }
180 body = append(body, buf...)
181 }
182
183 if !strings.Contains(string(body), httpContent) {
184 t.Errorf("Response does not contain %q", httpContent)
185 }
186}
187
121func TestTLSInfo(t *testing.T) { 188func TestTLSInfo(t *testing.T) {
122 ts, u, caFile, err := newTestServer() 189 ts, u, caFile, err := newTestServer()
123 if err != nil { 190 if err != nil {