MCPcopy Create free account
hub / github.com/bufbuild/buf / testRoundTripLocalFile

Function testRoundTripLocalFile

private/buf/buffetch/buffetch_test.go:96–134  ·  view source on GitHub ↗
(
	t *testing.T,
	filename string,
	expectedData []byte,
	expectedFormat string,
	expectedCompressionType internal.CompressionType,
)

Source from the content-addressed store, hash-verified

94}
95
96func testRoundTripLocalFile(
97 t *testing.T,
98 filename string,
99 expectedData []byte,
100 expectedFormat string,
101 expectedCompressionType internal.CompressionType,
102) {
103 logger := slogtestext.NewLogger(t)
104 refParser := newRefParser(logger)
105 reader := testNewFetchReader(logger)
106 writer := testNewFetchWriter(logger)
107
108 ctx := t.Context()
109 container := app.NewContainer(nil, nil, nil, nil)
110
111 tmpDir := t.TempDir()
112 filePath := filepath.Join(tmpDir, filename)
113
114 parsedRef, err := refParser.getParsedRef(ctx, filePath, allFormats)
115 require.NoError(t, err)
116 require.Equal(t, expectedFormat, parsedRef.Format())
117 fileRef, ok := parsedRef.(internal.FileRef)
118 require.True(t, ok)
119 require.Equal(t, expectedCompressionType, fileRef.CompressionType())
120
121 writeCloser, err := writer.PutFile(ctx, container, fileRef)
122 require.NoError(t, err)
123 _, err = writeCloser.Write(expectedData)
124 require.NoError(t, err)
125 require.NoError(t, writeCloser.Close())
126
127 readCloser, err := reader.GetFile(ctx, container, fileRef)
128 require.NoError(t, err)
129 actualData, err := io.ReadAll(readCloser)
130 require.NoError(t, err)
131 require.NoError(t, readCloser.Close())
132
133 require.Equal(t, string(expectedData), string(actualData))
134}
135
136func testNewFetchReader(logger *slog.Logger) internal.Reader {
137 storageosProvider := storageos.NewProvider(storageos.ProviderWithSymlinks())

Callers 6

TestRoundTripBinFunction · 0.85
TestRoundTripBinGzFunction · 0.85
TestRoundTripBinZstFunction · 0.85
TestRoundTripBinpbFunction · 0.85
TestRoundTripBinpbGzFunction · 0.85
TestRoundTripBinpbZstFunction · 0.85

Calls 11

NewLoggerFunction · 0.92
testNewFetchReaderFunction · 0.85
testNewFetchWriterFunction · 0.85
newRefParserFunction · 0.70
FormatMethod · 0.65
CompressionTypeMethod · 0.65
PutFileMethod · 0.65
WriteMethod · 0.65
CloseMethod · 0.65
GetFileMethod · 0.65
getParsedRefMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…