aboutsummaryrefslogtreecommitdiff
path: root/format/sideband64k/helpers_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'format/sideband64k/helpers_test.go')
-rw-r--r--format/sideband64k/helpers_test.go44
1 files changed, 44 insertions, 0 deletions
diff --git a/format/sideband64k/helpers_test.go b/format/sideband64k/helpers_test.go
new file mode 100644
index 00000000..c10e9e71
--- /dev/null
+++ b/format/sideband64k/helpers_test.go
@@ -0,0 +1,44 @@
+package sideband64k_test
+
+import (
+ "bytes"
+ "io"
+)
+
+type limitWriter struct {
+ buf bytes.Buffer
+ maxPerWrite int
+ flushes int
+ shortWrite bool
+}
+
+func (w *limitWriter) Write(p []byte) (int, error) {
+ if w.shortWrite {
+ return 0, nil
+ }
+
+ if w.maxPerWrite > 0 && len(p) > w.maxPerWrite {
+ p = p[:w.maxPerWrite]
+ }
+
+ return w.buf.Write(p)
+}
+
+func (w *limitWriter) Flush() error {
+ w.flushes++
+ return nil
+}
+
+type byteReader struct {
+ data []byte
+}
+
+func (r *byteReader) Read(p []byte) (int, error) {
+ if len(r.data) == 0 {
+ return 0, io.EOF
+ }
+
+ p[0] = r.data[0]
+ r.data = r.data[1:]
+ return 1, nil
+}