MCPcopy Index your code
hub / github.com/rclone/rclone / TestReadFileHandleReadAt

Function TestReadFileHandleReadAt

vfs/read_test.go:126–179  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

124}
125
126func TestReadFileHandleReadAt(t *testing.T) {
127 _, _, fh := readHandleCreate(t)
128
129 // read from start
130 buf := make([]byte, 1)
131 n, err := fh.ReadAt(buf, 0)
132 require.NoError(t, err)
133 assert.Equal(t, 1, n)
134 assert.Equal(t, "0", string(buf[:n]))
135
136 // seek forwards
137 n, err = fh.ReadAt(buf, 5)
138 require.NoError(t, err)
139 assert.Equal(t, 1, n)
140 assert.Equal(t, "5", string(buf[:n]))
141
142 // seek backwards
143 n, err = fh.ReadAt(buf, 1)
144 require.NoError(t, err)
145 assert.Equal(t, 1, n)
146 assert.Equal(t, "1", string(buf[:n]))
147
148 // read exactly to the end
149 buf = make([]byte, 6)
150 n, err = fh.ReadAt(buf, 10)
151 require.NoError(t, err)
152 assert.Equal(t, 6, n)
153 assert.Equal(t, "abcdef", string(buf[:n]))
154
155 // read off the end
156 buf = make([]byte, 256)
157 n, err = fh.ReadAt(buf, 10)
158 assert.Equal(t, io.EOF, err)
159 assert.Equal(t, 6, n)
160 assert.Equal(t, "abcdef", string(buf[:n]))
161
162 // read starting off the end
163 n, err = fh.ReadAt(buf, 100)
164 assert.Equal(t, io.EOF, err)
165 assert.Equal(t, 0, n)
166
167 // check noSeek gives an error
168 fh.noSeek = true
169 _, err = fh.ReadAt(buf, 100)
170 assert.Equal(t, ESPIPE, err)
171
172 // Properly close the file
173 assert.NoError(t, fh.Close())
174
175 // check reading on closed file
176 fh.noSeek = true
177 _, err = fh.ReadAt(buf, 100)
178 assert.Equal(t, ECLOSED, err)
179}
180
181func TestReadFileHandleFlush(t *testing.T) {
182 _, _, fh := readHandleCreate(t)

Callers

nothing calls this directly

Calls 4

readHandleCreateFunction · 0.85
ReadAtMethod · 0.65
CloseMethod · 0.65
EqualMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…