MCPcopy
hub / github.com/dgraph-io/badger / TestDropAllDropPrefix

Function TestDropAllDropPrefix

db2_test.go:780–833  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

778}
779
780func TestDropAllDropPrefix(t *testing.T) {
781 key := func(i int) []byte {
782 return []byte(fmt.Sprintf("%10d", i))
783 }
784 val := func(i int) []byte {
785 return []byte(fmt.Sprintf("%128d", i))
786 }
787 runBadgerTest(t, nil, func(t *testing.T, db *DB) {
788 wb := db.NewWriteBatch()
789 defer wb.Cancel()
790
791 N := 50000
792
793 for i := 0; i < N; i++ {
794 require.NoError(t, wb.Set(key(i), val(i)))
795 }
796 require.NoError(t, wb.Flush())
797
798 var wg sync.WaitGroup
799 wg.Add(3)
800 go func() {
801 defer wg.Done()
802 err := db.DropPrefix([]byte("000"))
803 for err == ErrBlockedWrites {
804 fmt.Printf("DropPrefix 000 err: %v", err)
805 err = db.DropPrefix([]byte("000"))
806 time.Sleep(time.Millisecond * 500)
807 }
808 require.NoError(t, err)
809 }()
810 go func() {
811 defer wg.Done()
812 err := db.DropPrefix([]byte("111"))
813 for err == ErrBlockedWrites {
814 fmt.Printf("DropPrefix 111 err: %v", err)
815 err = db.DropPrefix([]byte("111"))
816 time.Sleep(time.Millisecond * 500)
817 }
818 require.NoError(t, err)
819 }()
820 go func() {
821 time.Sleep(time.Millisecond) // Let drop prefix run first.
822 defer wg.Done()
823 err := db.DropAll()
824 for err == ErrBlockedWrites {
825 fmt.Printf("dropAll err: %v", err)
826 err = db.DropAll()
827 time.Sleep(time.Millisecond * 300)
828 }
829 require.NoError(t, err)
830 }()
831 wg.Wait()
832 })
833}

Callers

nothing calls this directly

Calls 13

CancelMethod · 0.95
SetMethod · 0.95
FlushMethod · 0.95
runBadgerTestFunction · 0.85
valFunction · 0.85
NewWriteBatchMethod · 0.80
DropPrefixMethod · 0.80
PrintfMethod · 0.80
DropAllMethod · 0.80
keyFunction · 0.70
AddMethod · 0.45
DoneMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…