MCPcopy
hub / github.com/perkeep/perkeep / TestDoubleReceive

Function TestDoubleReceive

pkg/blobserver/diskpacked/diskpacked_test.go:84–119  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

82}
83
84func TestDoubleReceive(t *testing.T) {
85 sto := newTempDiskpacked(t)
86
87 size := func(n int) int64 {
88 path := sto.(*storage).filename(n)
89 fi, err := os.Stat(path)
90 if err != nil {
91 t.Fatal(err)
92 }
93 return fi.Size()
94 }
95
96 const blobSize = 5 << 10
97 b := &test.Blob{Contents: strings.Repeat("a", blobSize)}
98 br := b.BlobRef()
99
100 _, err := blobserver.Receive(ctxbg, sto, br, b.Reader())
101 if err != nil {
102 t.Fatal(err)
103 }
104 if size(0) < blobSize {
105 t.Fatalf("size = %d; want at least %d", size(0), blobSize)
106 }
107 if err = sto.(*storage).nextPack(); err != nil {
108 t.Fatal(err)
109 }
110
111 _, err = blobserver.Receive(ctxbg, sto, br, b.Reader())
112 if err != nil {
113 t.Fatal(err)
114 }
115 sizePostDup := size(1)
116 if sizePostDup >= blobSize {
117 t.Fatalf("size(pack1) = %d; appeared to double-write.", sizePostDup)
118 }
119}
120
121func TestDelete(t *testing.T) {
122 ctx := context.Background()

Callers

nothing calls this directly

Calls 11

BlobRefMethod · 0.95
ReaderMethod · 0.95
ReceiveFunction · 0.92
newTempDiskpackedFunction · 0.85
sizeFunction · 0.85
FatalMethod · 0.80
nextPackMethod · 0.80
StatMethod · 0.65
SizeMethod · 0.65
FatalfMethod · 0.65
filenameMethod · 0.45

Tested by

no test coverage detected