MCPcopy
hub / github.com/rclone/rclone / TestInternalNotifyCreatesEmptyParts

Function TestInternalNotifyCreatesEmptyParts

backend/cache/cache_internal_test.go:535–619  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

533}
534
535func TestInternalNotifyCreatesEmptyParts(t *testing.T) {
536 id := fmt.Sprintf("tincep%v", time.Now().Unix())
537 rootFs, boltDb := runInstance.newCacheFs(t, remoteName, id, false, true, nil)
538 if !runInstance.wrappedIsExternal {
539 t.Skipf("Not external")
540 }
541 cfs, err := runInstance.getCacheFs(rootFs)
542 require.NoError(t, err)
543
544 srcName := runInstance.encryptRemoteIfNeeded(t, "test") + "/" + runInstance.encryptRemoteIfNeeded(t, "one") + "/" + runInstance.encryptRemoteIfNeeded(t, "test")
545 dstName := runInstance.encryptRemoteIfNeeded(t, "test") + "/" + runInstance.encryptRemoteIfNeeded(t, "one") + "/" + runInstance.encryptRemoteIfNeeded(t, "test2")
546 // create some rand test data
547 var testData []byte
548 if runInstance.rootIsCrypt {
549 testData, err = base64.StdEncoding.DecodeString(cryptedTextBase64)
550 require.NoError(t, err)
551 } else {
552 testData = []byte("test content")
553 }
554 err = rootFs.Mkdir(context.Background(), "test")
555 require.NoError(t, err)
556 err = rootFs.Mkdir(context.Background(), "test/one")
557 require.NoError(t, err)
558 srcObj := runInstance.writeObjectBytes(t, cfs.UnWrap(), srcName, testData)
559
560 // list in mount
561 _, err = runInstance.list(t, rootFs, "test")
562 require.NoError(t, err)
563 _, err = runInstance.list(t, rootFs, "test/one")
564 require.NoError(t, err)
565
566 found := boltDb.HasEntry(path.Join(cfs.Root(), runInstance.encryptRemoteIfNeeded(t, "test")))
567 require.True(t, found)
568 boltDb.Purge()
569 found = boltDb.HasEntry(path.Join(cfs.Root(), runInstance.encryptRemoteIfNeeded(t, "test")))
570 require.False(t, found)
571
572 // move file
573 _, err = cfs.UnWrap().Features().Move(context.Background(), srcObj, dstName)
574 require.NoError(t, err)
575
576 err = runInstance.retryBlock(func() error {
577 found = boltDb.HasEntry(path.Join(cfs.Root(), runInstance.encryptRemoteIfNeeded(t, "test")))
578 if !found {
579 fs.Logf(nil, "not found /test")
580 return fmt.Errorf("not found /test")
581 }
582 found = boltDb.HasEntry(path.Join(cfs.Root(), runInstance.encryptRemoteIfNeeded(t, "test"), runInstance.encryptRemoteIfNeeded(t, "one")))
583 if !found {
584 fs.Logf(nil, "not found /test/one")
585 return fmt.Errorf("not found /test/one")
586 }
587 found = boltDb.HasEntry(path.Join(cfs.Root(), runInstance.encryptRemoteIfNeeded(t, "test"), runInstance.encryptRemoteIfNeeded(t, "one"), runInstance.encryptRemoteIfNeeded(t, "test2")))
588 if !found {
589 fs.Logf(nil, "not found /test/one/test2")
590 return fmt.Errorf("not found /test/one/test2")
591 }
592 li, err := runInstance.list(t, rootFs, "test/one")

Callers

nothing calls this directly

Calls 15

LogfFunction · 0.92
newCacheFsMethod · 0.80
getCacheFsMethod · 0.80
encryptRemoteIfNeededMethod · 0.80
writeObjectBytesMethod · 0.80
HasEntryMethod · 0.80
JoinMethod · 0.80
retryBlockMethod · 0.80
DecodeStringMethod · 0.65
MkdirMethod · 0.65
UnWrapMethod · 0.65
RootMethod · 0.65

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…