MCPcopy
hub / github.com/rclone/rclone / TestRWFileHandleMethodsWrite

Function TestRWFileHandleMethodsWrite

vfs/read_write_test.go:265–338  ·  view source on GitHub ↗

------------------------------------------------------------

(t *testing.T)

Source from the content-addressed store, hash-verified

263/// ------------------------------------------------------------
264
265func TestRWFileHandleMethodsWrite(t *testing.T) {
266 r, vfs, fh := rwHandleCreateWriteOnly(t)
267
268 // String
269 assert.Equal(t, "file1 (rw)", fh.String())
270 assert.Equal(t, "<nil *RWFileHandle>", (*RWFileHandle)(nil).String())
271 assert.Equal(t, "<nil *RWFileHandle.file>", new(RWFileHandle).String())
272
273 // Node
274 node := fh.Node()
275 assert.Equal(t, "file1", node.Name())
276
277 offset := func() int64 {
278 n, err := fh.Seek(0, io.SeekCurrent)
279 require.NoError(t, err)
280 return n
281 }
282
283 // Offset #1
284 assert.Equal(t, int64(0), offset())
285 assert.Equal(t, int64(0), node.Size())
286
287 // Size #1
288 assert.Equal(t, int64(0), fh.Size())
289
290 // Write
291 n, err := fh.Write([]byte("hello"))
292 assert.NoError(t, err)
293 assert.Equal(t, 5, n)
294
295 // Offset #2
296 assert.Equal(t, int64(5), offset())
297 assert.Equal(t, int64(5), node.Size())
298
299 // Size #2
300 assert.Equal(t, int64(5), fh.Size())
301
302 // WriteString
303 n, err = fh.WriteString(" world!")
304 assert.NoError(t, err)
305 assert.Equal(t, 7, n)
306
307 // Sync
308 err = fh.Sync()
309 assert.NoError(t, err)
310
311 // Stat
312 var fi os.FileInfo
313 fi, err = fh.Stat()
314 assert.NoError(t, err)
315 assert.Equal(t, int64(12), fi.Size())
316 assert.Equal(t, "file1", fi.Name())
317
318 // Truncate
319 err = fh.Truncate(11)
320 assert.NoError(t, err)
321
322 // Close

Callers

nothing calls this directly

Calls 15

SizeMethod · 0.95
NameMethod · 0.95
NewItemFunction · 0.92
rwHandleCreateWriteOnlyFunction · 0.85
WaitForWritersMethod · 0.80
checkListingFunction · 0.70
StringMethod · 0.65
NodeMethod · 0.65
NameMethod · 0.65
SeekMethod · 0.65
SizeMethod · 0.65

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…